【もぶぷろぐらみんぐ】

モブプログラミング とは?

最終更新:
💡 一つの作業を、チームで考えながら進める

チームが同時に一つの作業へ取り組む開発手法。共有するコードを一人が入力し、ほかの参加者が方針を考えて伝える。役割を交代しながら、実装・相談・知識共有を進める。

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

参考資料

← 用語集にもどる