本記事の目的
筆者は現在プログラミングスクールDIVE_INTO_CODEに通っており
現場で必須なコミュニケーション能力を育む目的で
ペアプログラミングとペア学習の時間が設けられている。
しかし、私個人として
1.現場のペアプログラミングって具体的になぜやっているのか?
2.ペアを組む意義?
という疑問が生じたため調査を実施し整理することにしたため
本記事の執筆に至った。
対象読者
1.DIVE_INTO_CODOに通学中、または入校を検討している方
2.エンジニア未経験でエンジニアへの転職を検討している方
歴史的背景
Githubの進化
Githubのプルリクエスト機能が発達した影響で、
細分化したタスク分割で業務可能な状態に進化した反面、
習熟者がコードレビューに追われるという問題が生じてきた。
この問題を抜本的に解決するためにペアプログラミングを取り入れる企業が増えてきている。
※こちらの企業は基本ペアで業務しているようです
私が理解したところでは、
❌習熟者は管轄作業者のプルリクエストが来たら、レビューする
Lこの形式では、修正がとても多かった
⭕️習熟者はなるべく管轄作業者のオブザーバーとなる
Lとすることで、短期的には修正が減らせ、長期的には作業者の習熟度向上になる
と理解しました。
エンジニアは自然と実施する
エンジニアであれば詰まった際や技術議論の過程で
自然とペアプログラミング形式で業務することが多々ある。
具体例
・パターンA
一人ではどうもできなくなり、
同僚に相談した際、状況を説明するために相談者はドライバーとなり状況を説明し
同僚は画面をみて一緒に考える(オブザーバーになる)。
・パターンB
新しい技術を試していて実装を同僚と相談する際、
片方がドライバー、片方がオブザーバーとなり議論する。
といった動作が自然に起きる業務である。
スクールでのペアプロ時に心がけるべきこと
1.最初に実装要件についてコンセンサスを取るレベルまでコミュニケーションを取ること
2.ドライバーは何をやるか宣言してから動作すること
3.ドライバーは悩んだらすぐにオブザーバーに相談し頭を借りること
4.オブザーバーは一挙手一投足見逃さないよう心がけること
スクールでのペア学習時に心がけること
1.わからなくなったらペアに聞く
2.聞かれた側は一緒に考える
※積極的にペアプロ状況を発生させる
最後に
やはり、エンジニアという業界は
学習方法や業務方法どれをとっても時代の先端を進んでいると実感した!
参考
上記の参考記事がとても分かりやすかったので是非一読して下さい!