モブプログラミング もぶぷろぐらみんぐ
モブプログラミングアンサンブルプログラミングドライバーナビゲーターチーム開発ペアプログラミング
モブプログラミングって効率悪くない?みんなで一つのコードを書くって。
簡単に言うとこんな感じ!
一見非効率に見えるけど、レビュー・手戻り・コンテキストスイッチのコストが激減するから、トータルでは速くなることが多いんだ!「1人が8時間かけて作ってレビューで2日待つ」より「5人で2時間で完成させてレビュー不要」の方が速いんだよ。特に難しい問題や、チームの学習に強いんだ。
モブプログラミングとは
モブプログラミング(Mob Programming) とは、チーム全員(3人以上)が1台のコンピューターで、同じ作業を同時に行う開発手法です。近年はアンサンブルプログラミング(Ensemble Programming) とも呼ばれます。
2012年にWoody Zuillが体系化し、「全ての優秀なアイデアを同時に取り込む」という考え方で、難しい問題を解決する際の効果が実証されています。
役割の構成
┌─────────────────────────────────────┐
│ モブ全体 │
│ │
│ ドライバー ナビゲーター × 複数 │
│ (1人) (残り全員) │
│ │
│ ・キーボードを ・方向を指示する │
│ 操作する ・アイデアを出す │
│ ・指示を実装 ・問題を指摘する │
│ ・自分の判断 ・チェックする │
│ では動かない │
└─────────────────────────────────────┘
← 一定時間ごとにドライバーをローテーション →
ペアプログラミングとの違い
| 観点 | ペアプログラミング | モブプログラミング |
|---|---|---|
| 人数 | 2人 | 3人以上 |
| 適した場面 | 個別タスクの品質向上 | 難しい問題・チーム学習 |
| 知識共有 | ペア内 | チーム全体 |
| コスト | 中 | 高(全員の時間) |
モブプログラミングが効果的な場面
- オンボーディング(新メンバーへの知識移転)
- 複雑な設計や技術的な重要な決定
- テスト・コードの品質向上が必要なとき
- チーム全体の技術レベルを底上げしたいとき
歴史と背景
- 2012年:Woody Zuillがモブプログラミングを体系化
- 2017年:Hunter IndustriesでのモブプログラミングのTED講演が話題に
- 現在:リモートワーク環境でのリモートモブプログラミングも普及