開発プロセス

モブプログラミング もぶぷろぐらみんぐ

モブプログラミングアンサンブルプログラミングドライバーナビゲーターチーム開発ペアプログラミング
モブプログラミングって効率悪くない?みんなで一つのコードを書くって。

簡単に言うとこんな感じ!

一見非効率に見えるけど、レビュー・手戻り・コンテキストスイッチのコストが激減するから、トータルでは速くなることが多いんだ!「1人が8時間かけて作ってレビューで2日待つ」より「5人で2時間で完成させてレビュー不要」の方が速いんだよ。特に難しい問題や、チームの学習に強いんだ。


モブプログラミングとは

モブプログラミング(Mob Programming) とは、チーム全員(3人以上)が1台のコンピューターで、同じ作業を同時に行う開発手法です。近年はアンサンブルプログラミング(Ensemble Programming) とも呼ばれます。

2012年にWoody Zuillが体系化し、「全ての優秀なアイデアを同時に取り込む」という考え方で、難しい問題を解決する際の効果が実証されています。


役割の構成

┌─────────────────────────────────────┐
│           モブ全体                   │
│                                     │
│  ドライバー    ナビゲーター × 複数    │
│  (1人)      (残り全員)            │
│                                     │
│  ・キーボードを  ・方向を指示する     │
│    操作する     ・アイデアを出す      │
│  ・指示を実装   ・問題を指摘する      │
│  ・自分の判断   ・チェックする        │
│    では動かない                      │
└─────────────────────────────────────┘
   ← 一定時間ごとにドライバーをローテーション →

ペアプログラミングとの違い

観点ペアプログラミングモブプログラミング
人数2人3人以上
適した場面個別タスクの品質向上難しい問題・チーム学習
知識共有ペア内チーム全体
コスト高(全員の時間)

モブプログラミングが効果的な場面

  • オンボーディング(新メンバーへの知識移転)
  • 複雑な設計や技術的な重要な決定
  • テスト・コードの品質向上が必要なとき
  • チーム全体の技術レベルを底上げしたいとき

歴史と背景

  • 2012年:Woody Zuillがモブプログラミングを体系化
  • 2017年:Hunter IndustriesでのモブプログラミングのTED講演が話題に
  • 現在:リモートワーク環境でのリモートモブプログラミングも普及

関連用語