ペアプログラミングは、二人が同じコードを眺めるだけの時間ではありません。役割を分け、短い間隔で交代しながら考えを共有する開発方法です。
二つの役割
| 役割 | 主な仕事 |
|---|---|
| ドライバー | 今必要なコードを入力し、直近の一手に集中する |
| ナビゲーター | 全体の方向、仕様、見落とし、次の一手を考える |
ナビゲーターが命令し、ドライバーが作業する上下関係ではありません。二人で同じ問題を異なる距離から見ます。
声に出す内容
ドライバーは、操作を実況するのではなく意図を話します。
この条件を先に返して、正常系の入れ子を浅くします。
ナビゲーターは、答えを奪わず確認します。
nullの場合もこの関数へ来ますか?
この名前から戻り値の単位は分かりますか?
「なぜそうするか」が言葉になるため、一人では気づかなかった前提が見えます。
交代のルール
10〜20分ほどで役割を交代します。難しい場面だけ詳しい人がずっと入力すると、もう一人が観客になります。
交代時には次を共有します。
- 今どこまで分かったか
- 次に試すこと
- 保留している疑問
- テストの状態
うまくいかない兆候
- 一人だけが話し続ける
- ドライバーが指示どおり入力するだけ
- 分からなくても進行を止められない
- 速さを競っている
- 休憩せず長時間続ける
ペア作業は集中力を使います。時間を区切り、一人で調べる時間も組み合わせます。
一人でも使える考え方
AIと作業する時にも役割分担を応用できます。自分がドライバーなら、AIには設計上の見落としやテスト観点を尋ねます。AIに実装案を出させる時は、自分がナビゲーターとして目的と制約を確認します。