モブプロとソロプロの生産性を比較してみた
この記事は モブプログラミング 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現在 いいねゼロ…)
それではステキなモブプロライフを!