モブプログラミング
プログラミングの やり方だよ
みんなで1台のコンピュータを使うよ
1人がコードを書いて、残りの人たちが口出しするよ
簡単に書くよ
モブプログラミング(英:mob programming)とは
プログラミングの やり方のひとつ
であり
みんなで1台のコンピュータを使い、あーだこーだと相談しながら1つのソースコード
(人間語で書いたプログラムの元ネタ)を書いていく やり方
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「ペアプログラミング」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
ペアプログラミングは「2人一組でやりますよ!」なプログラミングのやり方です。
二人羽織みたいなものですね。
まずは2人一組になって、1台のコンピュータの前に座ります。
今回はピヨ太君とピヨ子さんが組んでコンピュータの前に座りました。
2人のうち、片方は手を動かす係です。
ソースコード(プログラムの元ネタ)を書く役割を担います。
もちろん自分でも考えますけどね。
今回はピヨ太君が手を動かす係になりました。
もう一方はサポート役です。
手を動かす係と一緒に考えて、必要に応じて口出しする役割を担います。
今回はピヨ子さんが口出しする係になりました。
2人の役割分担は
・手を動かす係
・口出しする係
です。
ピヨ太君とピヨ子さんは、あーでもない、こーでもない、と言い合いながら、1つのソースコードに手を入れていきます。
このように2人で協力しながら1つのソースコードを作っていくプログラミングのやり方がペアプログラミングです。
単純に考えれば、ペアプログラミングの作業効率は1人でやる半分です。
実際にソースコードを書くのはピヨ太君だけですからね。
ピヨ太君とピヨ子さんが、それぞれソースコードを書けば、2倍のスピードで作業が進むはずです。
ただし、それは「単純に考えれば」です。
ピヨ太君は1人でやっていると、お昼寝してしまうかもしれません。
2人でやっていれば、サボりにくいでしょう。
ピヨ子さんが見ていますからね。
あるいは、上手く進まないときの状況も違います。
1人で考えていると、煮詰まってしまうかもしれません。
2人でやっていれば、あーだこーだと相談できます。
2人の意見をぶつけあうことで画期的な解決策が思い浮かぶかもしれません。
他にも、教育面で良い効果が期待できます。
へぼプログラマのピヨ太君がスーパーエンジニアのピヨ子さんと一緒にプログラミングをするのです。
ピヨ太君はピヨ子さんの仕事のやり方を間近で学べます。
ピヨ子さんも、ピヨ太君をアゴで使えば少しは気分転換になるかもしれません。
このように、ペアプログラミングにはペアプログラミングなりのメリットがあります。
もちろん、デメリット(状況によっては1人でやった方が速い、など)もありますけどね。
なお、今回の説明では「手を動かす係」と「口出しする係」で役割分担しましたが
・実際のプログラムを作る係
・作ったプログラムをテストするためのプログラム(テストコード)を作る係
のように役割分担する場合もあるようです。
以上を踏まえて
ペアプログラミングの大人数版
が「モブプログラミング」です。
モブプログラミングでは、みんなでワイワイ言いながら1つのソースコードを作り上げていきます。
モブプログラミングの「モブ」は「群衆」を意味する英語の「mob(モブ)」です。
「群衆プログラミング」と読み替えればイメージしやすいかもしれませんね。
ペアプログラミングにおける役割分担は
・手を動かす係:1人
・口出しする係:1人
でした。
これがモブプログラミングでは
・手を動かす係:1人
・口出しする係:いっぱい
に なります。
手を動かす係は途中で交代したりするかもしれませんけどね。
いずれにせよ、書くソースコードは1つです。
モブプログラミングのメリット・デメリットは、基本的にはペアプログラミングと同じだと思います。
……が私はモブプログラミングをやったことがないので断言できません。
具体的なことは他のところで勉強してください。
一言でまとめるよ
まぁ「モブプログラミング」って単語が出てきたら「みんなで1台のコンピュータを使ってワイワイ言いながら一緒にやるプログラミングのやり方なんだな~」と お考えください。
おまけ
■訳してみるよ
「mob(モブ)」の意味は「群衆」とか「暴徒」とか「大衆」とかです。
「programming(プログラミング)」は「program(プログラム)」+「ing」です。
「program(プログラム)」の意味は「計画」とか「演目」とか「(コンピュータの)プログラム」とかです。
何となく くっつけると
群衆でプログラムを作る
となります。
■検索してみる?






