この記事は モブプログラミング Advent Calendar 2018 14日目の記事です。
もっと読みたい!という方は去年のカレンダーも是非どうぞ。

はじめに

モブプロをすると必ず「生産性悪そう」という声が聞こえてきます。
体験してみると「効率悪くない!むしろ良い!」と思えるのですが、証明するための根拠がない。。
そこで今回、ソロプロ(いつもの分担作業)との比較を行ってみました!

検証方法

チームでモブプロとソロプロをそれぞれ複数回行い、制限時間内にどれだけのタスクを消化できるかを比較しました。

開発フロー

実装 → コミット → プルリク → レビュー → マージ です。一般的ですね。
モブプロでもソロプロでも同じです。違いはみんなでやるか、各自でやるかだけ。

チーム

下記3名構成のチームで検証しました。
結成して3ヶ月、普段はソロプロたまにペアプロといった感じです。

  • 新人(1年目)
  • 中堅(4年目)
  • ベテラン(10年戦士。私)

タスク

タスクはプランニングポーカーを使ってメンバー全員で見積もっています。

着手するタスクの選定は、公平を期すためにもモブ用、ソロ用といった選別は行わず、その時の優先度の高い順から着手しています。

Doneの定義

マージするまでです。

実装途中やレビュー中で制限時間が来てしまった場合、そのタスクは0ポイントとして加算しません。終わってないので。

検証結果

お待ちかねの検証結果です。

数日間に分けて計測し、下記の様になりました。

    モブプロ   ソロプロ
実施日 時間 消化タスク 時間 消化タスク
1日目 6h 14.5pt    
2日目 3h 9pt    
3日目     3h 6pt
4日目 3h 12pt    
5日目 2h 9pt 2h 4pt
6日目 3h 5.5pt 3h 7.5pt
合計 17h 50pt 8h 17.5pt
1時間あたり   2.94pt   2.19pt

※2日目と6日目はリモート

実施時間がバラバラで比較にならないじゃねーかという声もあるかと思いますが、せっかく計測したので全データ載せてます。

1時間あたりの平均消化タスクはモブプロ:ソロプロ=2.94pt:2.19ptとなり、モブプロのほうが約1.3倍タスクを消化できたという結果となりました。

考察1:モブプロとソロプロの違い

開発フローの中でプルリクとレビューにかかる時間が決定的に違いました。
いわゆる同期の時間ですね。

  • プルリク
    • ソロ:仕様を知らない人にも理解してもらうために、わかりやすく丁寧に書く。故に時間がかかる。
    • モブ:全員理解しているので説明不要(コミットログだけでOK)。ボタンポチで完成。
  • レビュー
    • ソロ:複雑な仕様だと読み解くだけで時間がかかる。指摘や修正、時には大きな手戻りが発生したりする。
    • モブ:一応全員で行う。見つかるのはコメント忘れなど軽微な修正のみ。ほぼ承認ポチ。

今回の結果でいうと、分担作業のメリットをモブプロが上回ったということになります。

考察2:モブプロの3つの利点

比較したことて改めて気づいた利点が3つあります。

レビューのつらみがない

ソロプロでよくあるレビューのつらみがありません。

  • プルリク書くのが億劫(レビューイ)
  • 数日待たないとレビューしてくれない(レビューイ)
  • プルリクの説明がよくわからない(レビュアー)
  • 無駄な処理やバグがある(レビュアー)
  • 変数名や関数名がイケてない(レビュアー)
  • 大どんでん返しな指摘をする必要がある…(レビュアー)
  • 指摘内容がよくわからない(レビューイ)
  • 今更そんな指摘されても…もっと早く言ってほしかった(レビューイ)

レビューは、する側もされる側も精神的にやられることがあるので、個人的には少しでもレビューが必要なタスクならモブプロしようぜって感じです。

確実に前進する

ソロプロでは上記のようにレビューで待ちや手戻りが発生する可能性があります。

数日かけて実装したコードがレビューで根本的な指摘を受けて、イチから実装し直さなければならなくなったなんて事、みなさん一度や二度、というか何度も経験してきているのではないでしょうか。昨日まで進捗80%だったものが突然0%になるのです。

これは実装に限った話ではなく、ドキュメント作成だったりもそうですね。イメージと違うとか。字が小さすぎて読めない!とか。ソロプロ(分担作業)にはこうしたリスクが常にあります。

モブプロは待ちや手戻りは発生しないので日々確実に前進します。

パーキンソンの法則にかからない

パーキンソンの法則とは「仕事の量は、完成のために与えられた時間をすべて満たすまで膨張する」というあれです。

ソロプロでは、(サボっているわけではありませんが)

  • 無意識にゆっくりやってしまったり
  • 調べものをしてみたり
  • slackやメールをチェックしてみたり

して見積もり時間を使い切ってしまうことが多いです。(サボっているわけではありません)

モブプロはみんなに見られているからなのか、集中力は100%。常に全員で最良、最速を目指します。気づいたらタスクが終わり、そしてすぐに次のタスクへ着手、となるのでサボっている暇がありません。

例えるなら、徒競走はたまに手を抜くけど、リレーは常に全力って感じでしょうか。…違うか。

おわりに

今回はモブプロのほうが良い結果となりましたが、タスクの内容やチームによって当然結果は変わってくると思うので、全部が全部モブのほうが良いという結論ではないよ、とだけは言っておきます。

とはいえ、モブプロを躊躇している方、疑問に思っている方は、ぜひこの結果を参考にして挑戦していただければと思います。
あと去年のアドベントカレンダーで書いた渾身のQiitaも参考にしていただければ。。(2018/12/14現在 いいねゼロ…)

それではステキなモブプロライフを!