モブプログラミングとコードレビュー

モブプログラミング(モブプロ)という言葉を聞いたことがあるでしょうか?

最近、Web+DB Pressで、「はじめてのペアプロ/モブプロ」という特集が組まれていたので、買って読んでみました。

この中で、モブプロは

モブプログラミングの「モブ」とは群衆のことです。モブプログラミングでは、ペア(2人)ではなく、モブ(チーム全体)でプログラミングを行います。モブの人数は3人から5人くらいを想定しています。ペアプログラミングと同様に、コードを書くだけでなく、すべてをモブで行います。

と説明されています。

私がモブプログラミングという言葉を初めて聞いたのは、現マイクロソフト牛尾氏の以下のブログ投稿だったように思います。

このブログで特に興味深かったのが、モブプロが「心理的に安全を感じる」というくだりです。「わしPHP一秒も書いたことないねん」という牛尾氏が、モブプロでPHPのコードを書いた感想を以下のように綴っています。

結局私もその日Mobに参加して、コードを書いて帰って来た。コードを書いている時も、不安が何もなかった。だって、自分が知らないこと、遅いことも、他の人がカバーしてくれるし、わからなかったら全員で調べてくれるので早いし、たとえつまづいたとしても、「あー、わからないの俺だけじゃないんだー」と言うことがわかる。つまりむっちゃくちゃ安心感があるのだ。だから、1日終わると、しっかりバリューもでるけど、すごく幸せて楽しい気分で帰ることができた。

これを読んでいて思い出したのが、最近話題になった、コードレビューに対するレビューイ(レビューを受ける側)の心理的負担について書かれた、別の方のブログ投稿です。

これを読むと、場合によってレビューイの心理的負担は相当なものということが伝わってきますが、モブプロが心理的安全性を担保するのであれば、レビューイの心理的負担を低減・解消する手段になりうるのではと感じました。

先のWeb+DB Pressの特集に話を戻すと、コードレビューが開発プロセスの中でボトルネックになってきているという指摘もあります。

雑に要約すると、GitやGitHubの普及により、分散開発環境やコードレビュー環境は大きく改善されたものの、レビューの在庫(レビュー待ちのPull Request)や手戻り(Pull Requestの差し戻し)が発生し、その結果として(Pull Requestの)レビューがシステム開発上のボトルネックになっているというのです。

そのボトルネックを解消する手段のひとつとしてモブプログラミングが提示されているのですが、実際に導入するには、マネージメントの生産性に対する捉え方を変える必要がありそうです。この文を書いていてふと、システム開発の仕事を始めた頃(確か1994年頃)にいた会社で、開発者2人が今でいうペアプロでデバッグをしていた時のことを思い出しました。デバッグを終えてその効率の良さに手応えを感じている開発者に対して、社長が「でも、生産性は半分ですよね」といった感じの冷ややかな言葉を投げかけていたのが印象に残っています。

モブプロがどの程度広まるのかはまだ未知数ですが、現在のチーム開発が抱える課題を低減・解消する方法のひとつとして、徐々に広まっていくいく可能性はあるのではと感じました。

Like what you read? Give ymoto a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.