【もぶぷろぐらみんぐ】
モブプログラミング とは?
最終更新:
💡 一つの作業を、チームで考えながら進める
チームが同時に一つの作業へ取り組む開発手法。共有するコードを一人が入力し、ほかの参加者が方針を考えて伝える。役割を交代しながら、実装・相談・知識共有を進める。
📌 このページのポイント
- 共有するコードを入力担当(Driver)が入力し、ナビゲーターが相談して方針を伝える
- 役割を一定時間で交代する。交代間隔はチームに合わせて調整する
- 実装と相談・知識共有・レビューを同時に進められる
- 品質や効率の改善は自動ではない。参加者が貢献・学習できる進め方を見直す
チーム全員で1つのコード書くの?さすがに非効率じゃない?
入力する人数は一人でも、ほかの人は設計やテストについて考え、方針を伝えるよ。後からの認識合わせを減らせる場合があるけど、必ず速くなるわけではない。作業の性質とチームでの進め方を見て判断するんだ。
ペアプログラミングとどう違うの?
ペアは二人で協働するけど、モブは参加するチームへ広げるよ。実装だけでなく、設計やテストも一緒に考えられる。全員が見ているだけにならず、貢献したり学んだりできることが大切なんだ。
入力担当(Driver)の交代ってどうやるの?
タイマーで一定時間ごとに交代する例があるよ。Zuillのチームでは通常15分、始めた頃は4〜5分だった。全チーム共通の決まりではなく、理解度や疲れ具合に合わせて調整する。入力役は相談で決めた方針をコードにするんだ。
発言力の強い人に引っ張られない?
相互の尊重と、考えを伝え合う進め方が大切だよ。発言や学習の機会が偏っていないか振り返り、必要なら進行役が意見を聞く。入力役を交代するだけで、対話が平等になるとは限らないんだ。
どんな場面で使うのが効果的なの?
難しい問題や、チームで理解を共有したい作業で試す方法があるよ。日常的に使うチームもある。まず実際に試して、待ち時間や手戻り、学びがどう変わるか振り返り、そのチームに合う使い方を選ぶんだ。
まとめ:ざっくりこれだけ覚えればOK!
「モブプログラミング」って出てきたら「一つの作業をチームで考え、入力役を交代して進める開発手法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Mob Programming」 = 集団でのプログラミング
💬 Mobは群衆という意味。Hunter Industriesのチームが2011年に始めた実践として報告され、Woody Zuillらがその経験を紹介しているよ。