ペアプログラミング

2 人の開発者が 1 台の PC で協力してコードを書く開発手法

開発手法チーム

ペアプログラミングとは

ペアプログラミング (Pair Programming) は、2 人の開発者が 1 台の PC で協力してコードを書く開発手法である。エクストリームプログラミング (XP) のプラクティスの 1 つで、1 人がコードを書き (ドライバー)、もう 1 人が設計やレビューを行う (ナビゲーター)。

ドライバーとナビゲーター

ドライバーがキーボードを操作してコードを書き、ナビゲーターが設計を考えたりバグを指摘したりして全体を俯瞰する。15〜30 分ごとに役割を交代するのが一般的だ。

スタイルには、基本のドライバー/ナビゲーター方式のほか、テストと実装を交互に書く Ping-Pong (TDD 向き)、ナビゲーターが指示しドライバーが実装する Strong-Style (メンタリング向き) がある。

メリットとデメリット

リアルタイムでコードレビューが行われるため、バグが早期に発見される。2 人が同じコードに関わることで知識が共有され、バス係数が向上する。新メンバーのオンボーディングにも効果的で、ベテランとペアを組むことで早く戦力化できる。

一方、2 人分の工数がかかるため、複雑なタスクに限定して適用するのが現実的だ。疲労を避けるために 1 日 2〜4 時間程度にとどめ、ペアのローテーションで相性の問題を緩和する。リモートでは VS Code Live Share や Tuple などの画面共有ツールを活用する。

複雑な設計判断、新メンバーのオンボーディング、難しいバグの調査には効果的だが、単純な CRUD や定型作業にはコストに見合わない。

モブプログラミング

ペアプログラミングの拡張で、チーム全員 (3〜5 人) が 1 台の PC で作業する。1 人がドライバー、残り全員がナビゲーター。知識共有の効果が最大化されるが、コストも高い。

ペアプログラミングの実際

ドライバーがコードを書きながら「ここで何をチェックすべきか」と声に出すと、ナビゲーターが「まず必須フィールドのチェック、次に在庫の確認、最後に金額の整合性チェックが必要」と設計を口頭で整理する。この対話を通じて、1 人では見落としがちなエッジケースや設計上の考慮漏れを未然に防げる。

現場での応用を知るには関連書籍も役立つ。

関連用語