TL;DR
ペアプログラミングの進め方の 1 つ。
なぜ必要か
Open Practice Library によると、ペアプログラミングにテスト駆動開発を組み込める。交代のリズムに乗りやすいので、ペアを組み替えたときもすぐに息が合う。1 回に扱う範囲が小さいので、知識の差が大きいペアでも片方だけが進めてしまうことが起きにくい。ゲームのような形なので、やる気も出やすい。
仕組み
Open Practice Library では、2 人(A と B)で次のように進める。
- A が失敗するテストを書く
- B がそのテストを通す最小限のコードを書く
- B が次の失敗するテストを書く
- A がそのテストを通す最小限のコードを書く
- 今の単位にこれ以上テストが要らないと 2 人が合意するまで繰り返す
リファクタリングはどちらがしてもよいが、すべてのテストが通っているときに限る。
例
1 台のコンピュータに 2 組のキーボードとマウスをつなぎ、並んで座るのが理想とされる。Live Share などのツールを使えば、リモートでもできる。グループに広げた Ping-Pong Mob Programming という形もある。