ペアプログラミングとモブプログラミング
ペアプログラミングとは
ペアプログラミングは、2人で1台の画面に向かい、一緒にコードを書く開発スタイルです。役割は2つに分かれます。
| 役割 | やること |
|---|---|
| ドライバー | キーボードを操作してコードを書く |
| ナビゲーター | 隣で全体を見て、方針の提案・誤りの指摘・先読みをする |
役割は短い間隔で交代します(例: 15〜30分ごと)。片方が書き続けて片方が眺めるだけ、という形にしないことが機能させるコツです。
モブプログラミングとは
モブプログラミングは、ペアを3人以上のチーム全員に拡張したスタイルです。1人がドライバー、残り全員がナビゲーターとなり、これも定期的に交代します。設計判断が難しい課題や、チーム全員が理解しておくべき重要な変更で特に効果を発揮します。
何が得られるのか
- その場でレビューされる — 書いた瞬間に指摘が入るため、[[コードレビュー]] の待ち時間や手戻りが減ります
- 知識が属人化しない — 「この機能はあの人しか分からない」を防ぎ、チームの誰でも触れるコードになります
- 教育効果が高い — 経験者の思考プロセス(調べ方・迷い方・判断の仕方)を隣で見られるのは、初学者にとって最高の学習機会です
- 集中力が続く — 2人だとサボれない、という単純な効果も馬鹿になりません
一方で、2人分の時間を使うのは事実です。単純作業には向かず、設計が難しい部分・重要な部分に絞って使うのが現実的です。
初学者向けポイント
- 初学者がドライバーをやる方が学びが大きいとされます。ナビゲーターの経験者が口で誘導し、手は初学者が動かす形です
- 「分からないことをその場で聞ける」のがペア作業の最大の恩恵です。遠慮せず質問しましょう
- リモートでも画面共有やエディタの共同編集機能で実践できます。[[アジャイル開発]] や [[スクラム]] を実践するチームの日常的な選択肢の1つです
- 近年は [[AIコーディング支援]] を相棒にした「AIとのペアプログラミング」という形も広がっています。提案を鵜呑みにせず対話しながら書く点は、人間とのペアと同じです
関連技術とのつながり
- [[コードレビュー]] — ペア作業は「書きながら行うレビュー」とも言える
- [[アジャイル開発]] — ペア・モブはアジャイルの実践(XP)から広まった
- [[スクラム]] — フレームワーク自体は技術的な進め方を定めないため、ペア・モブはチームが選ぶ実践として組み合わせる
- [[AIコーディング支援]] — AIを相棒にする新しいペアの形
Q: ペアプログラミングの「ナビゲーター」の役割はどれ?
- [ ] キーボードを操作してコードを書く
- [x] 全体を見て方針の提案や誤りの指摘をする
- [ ] 進捗を記録して上司に報告する
解説: コードを書くのはドライバー、隣で全体を見て提案・指摘・先読みをするのがナビゲーターです。
Q: ペアプログラミングを機能させるコツとして本文で挙げられているのはどれ?
- [ ] 経験者が常にドライバーを務める
- [ ] 交代せず役割を固定する
- [x] 役割を短い間隔で交代する
解説: 15〜30分程度で役割を交代し、片方が書き続けて片方が眺めるだけの形にしないことがコツです。
Q: モブプログラミングが特に効果を発揮する場面として本文で挙げられているのはどれ?
- [x] 設計判断が難しい課題やチーム全員が理解すべき重要な変更
- [ ] 1人で黙々と進められる単純作業
- [ ] キーボードの入力速度を競う場面
解説: モブは全員の知恵と理解の共有が価値なので、難しい設計判断や重要な変更で効果が大きくなります。単純作業には向きません。