TL;DR

2 人のプログラマが 1 つのコードに一緒に取り組む開発手法。1 人(ドライバ)がコードを入力し、もう 1 人(ナビゲータ)がタイポやエラー、改善点を探す。エクストリームプログラミング(XP)のプラクティスの 1 つである。

なぜ必要か

コードを共同で所有できる。実装した機能に関する知識がチーム全体に共有され、業務の属人化を減らせる。

仕組み

ドライバとナビゲータの役割は頻繁に交代し、1 時間に何度も入れ替わる。ペアそのものも少なくとも 1 日 1 回は組み替えるので、プログラマは毎日 2 人の異なる相手とペアを組むことになる。最近は Live Share や Code With Me のように、リモートでペアプログラミングを行える機能を IDE が備えている。Zed のように、共同編集を特徴に掲げるエディタもある。

注意点

導入するかどうかは時と場合によるが、やってみる価値はある。ただし、自分のエゴを相手に押し付けてはいけない。エゴレスプログラミングの十戒が参考になる。

自分の理解

コードの共同所有のほかにも、次のメリットがあると思う。

  • 複数のプログラマが関わるので、より良い設計を見つけやすい。Design it Twice もやりやすくなる
  • 後からのレビューの手間が省ける

書き終えたコードを指摘されるより、書いている途中で指摘されるほうが気分が良い。個人差はあると思うが、自分はこれに当てはまる。

関連

出典