現場でペアプロを実施してみて思ったことや学んだことをアウトプットします。
ペアプロとは
DriverとNavigatorに役割分担して、2人が1台のコンピュータでプログラミングを行います。
Driver
- PGを実装する人
- 何をしているのか(しようとしているのか)、Navigatorに説明しながら作業する
- 戦術的な観点で作業する
Navigator
- Driverの作業を見守る人
- 戦略的な観点でレビューし、考えや指針を伝える
- 作業中に感じた問題をメモしておいて、良いタイミングでDriverにフィードバックする
ペアプロのスタイル
普通のペアプロ以外にもやり方がいくつかあるので紹介します。
Strongスタイル
Strongスタイルは、DriverとNavigatorを交代せずに固定します。
初心者のオンボーディング時に有効な手法です。見て学ぶより手を動かして学ぶことを重視します。
Driver
- Navigatorから指示された通りに作業する
- 取り組むタスクの初心者が担当する
- Navigatorを信頼し、理解が不十分でも作業を進める
- 作業がひと段落したら質問して、疑問を解決する
Navigator
- Driverに指示を出す
- 取り組むタスクの経験者が担当する
注意点
Strongスタイルはマイクロマネジメントに近いため、普通のペアプロが実施できるようになるまでの一時的な利用にとどめましょう。
また、Strongスタイルで進めるのであれば、その旨を事前に伝えると良いかもしれません。
参考リンク
Ping-Pongスタイル
Ping-Pongスタイルは、ペアプロとTDDを組み合わせた手法です。TDDのメリットに加え、問題の早期発見や知識のサイロ化の防止が期待できます。
A、Bという2人の開発者がいるとして、以下の流れを繰り返します。
- Aが失敗するテストを書く
- Bがコードとテストを書く
- Bがリファクタリングする
- Bが失敗するテストを書く
- Aがコードとテストを書く
- Aがリファクタリングする
習慣にすると良いこと
- 最初にゴールを決めましょう
- 解くべき問題を理解する
- いきなりタスクに着手すると、ゴールが曖昧になります
- 解決策を考える
- ペアで一緒に考えても良いし、意見を持ち寄って議論しても良いでしょう
- 解決策を具体化する
- ゴールが明確化され、ペア間の認識齟齬が少なくなります
- ステップに細分化することで、ペアプロでやることが明確になります
- 調査が必要であれば、そのための時間をとりましょう
- 解くべき問題を理解する
- ペアはチーム内で定期的にローテーションしましょう
- 知識のサイロ化を防ぎやすくなります
- ペア間で意見が折り合わない場合は、上長やチームの意見も聞いてみましょう
- 遠慮や妥協で作業を進めると、チーム活動や成果物の品質に良くない影響が出るかもしれません
- 1日の予定を早めに決めましょう
- あらかじめ時間を確保しておくのも良いです
- スケジューリングにハードルがあると、お互いにやりづらいです
- 定期的に休憩しましょう
- ペアプロは疲れます
- 画面共有する際は、相手が見やすい状態で作業しましょう
- Navigatorの負担になります
注意すべきこと
- マイクロマネジメントにならないように気をつけましょう
- ことある度に発言すると、Driverが自身で考える余地がなくなります
- 長時間のペアプロは避けましょう
- 相手が負担に感じてしまうかもしれません。1人で作業する時間があっても良いです
- ペアプロ中に内職は避けましょう
- どうしても他の作業が発生する場合は、一言伝えましょう
- やり取りが淡白になりすぎないように気を付けましょう
- ペアプロをストレスに感じてしまうかもしれません
- 雑談大事
最後に
ペアプロのやり方に正解はありません。
ペアプロ中に感じた違和感やモヤモヤは放置せず、より良い方法がないか常に見直しましょう。