そこに仁義はあるのか(仮)

略してそこ仁!

モブプログラミングのやり方がぎゅっと詰まった「モブプログラミング・ベストプラクティス」を読んだ

「モブプログラミング・ベストプラクティス」を読みました。

"モブプログラミング"とは、3人以上の人々が1台のコンピューターの前に座って協力しながら問題を解決していくことです。
モブプロをチームで実践したことがないまま、「みんなが集まって一つのコードを修正するって非効率じゃない?」寄りの考え方だったんですが、この本ではそんな考え方に対する回答も書いてくれていて、納得しつつ読み進められました!

モブプロというテーマだけで一冊の本になっちゃうほど色々とプラクティスが詰まっていましたが、どれも丁寧に解説されていてわかりやすい+モブプロを始めるイメージがつきやすい本でした。
サラッと読めるし、手元に置いておきたい。

📖 目次

  • 1章 なぜモブプログラミングなのか
  • 2章 モビングの始め方
  • 3章 モビングと人
  • 4章 モビングの軌道修正
  • 5章 定期的なモビングのための仕事場の改造
  • 6章 モビングを定着させるためのチームへの働きかけ
  • 7章 フロー重視の考え方
  • 8章 モビング定着後の長期的な展望

リソース効率とフロー効率

冒頭で書いた「みんなが集まって一つのコードを修正するって非効率じゃない?」という考え方をしている人は7章「フロー重視の考え方」がオススメです。
リソース効率とフロー効率という言葉は先日取得した認定スクラムマスターのトレーニングでもサービスの改善(ビジネスの俊敏性)を上げていくために重要な考え方として解説がありました。

書籍ではリソース効率・フロー効率のそれぞれについて次のように解説されています。

リソース効率

リソースを最大限使おうとする考え方。
例えばフロントエンドの仕事があるたびに、それを早くこなせる人に仕事を振る。
リソース効率を重視するとスペシャリストとボトルネックが作られていく。(スペシャリストの作業待ち、キャパオーバーなど)
新機能の開発コストを下げる

フロー効率

機能全体を早く市場に送り出すことを重視する考え方。
チームは一丸となって新機能に取り組む。
フロー効率を重視するとゼネラリスト(広範囲で知識・技術がある人)が作られ、機能を早く市場に送り出すことに力を入れられるようになる。
新機能を早く市場に送り出して利益を得る

リソース効率・フロー効率についてはこのスライドもわかりやすく解説されていて参考になります。

www.slideshare.net

モブプログラミングはフロー効率をあげるためにコストパフォーマンスの良い方法です。

モブプログラミングの成功をどのようにして計測するか

新しい取り組みを進めていくときにはちゃんと効果を出せているのか不安になると思います。
そこで最初に期待値を設定しておくことが重要と「1.3.2 成功をどのようにして計測するか」に書かれていました。
モブプログラミングが解決する問題は複雑なので計測が難しく、チームが直面する課題によっても変わるという前提で、計測方法として検討する価値があるものとして以下が挙げられています。
上2つは定量的で計測可能なもの、下2つは定性的でメンバーにヒアリングしていくものです。

  • マージコンフリクトの解決にかかる時間の短縮
  • 本番システムに入り込む欠陥の数の減少
  • チーム内の経験の浅いメンバーの学習度の上昇
  • チームがモブプログラミングの導入を改善と感じているかどうか

モブプログラミングのタイムテーブル

効果的にモブプログラミングをしていくためには「準備としてのお膳立て」や「モブプログラミングの振り返り」というのもタイムテーブルに組み込んで、モブプログラミングをやる意義の理解や改善をしていくことが大切です。
(モブプログラミングって、人が集まって急に始めていくものかと思っていました…。)
「2.3 お膳立て」のコラムに書かれているモブプログラミングのタイムテーブルがこちらです。

  • 準備:お膳立て(30分前後)
    • モブという形でひとつの仕事に取り組むことの意義を説明する(10分)
    • モビングでの役割分担を説明する(8分)
    • モブが解決する問題の概要を説明する(10分)
    • タイピストの順番を決める(2分)
  • 本体:モビングインターバル(1時間30分前後)
    • 最初のタイピストにキーボードを渡す
    • タイマーを10分にセットして開始する
    • モブ全員が協力して問題の解決のために努力する
    • 10分経過したら、タイピストは作業を中止して次の人に交代する
    • セッション終了の20分前まで、タイマーをセットし直して、インターバルを繰り返す
  • 締めくくり:経験からの学習(20分前後)
    • それまでのセッションを振り返り、うまくいったこと、うまくいかなかったことを挙げ、次回の改善方法を議論する

英語のスライドですが、冒頭のモブプロの説明を補うために使えるオンラインスライドも提供されています。
モブプロの進め方の動画も差し込まれているので、使いやすそうなスライドだと思います。
Introduction to Mob Programming

💬 まとめ

他にもモブプロを進めていく上でのチームとしての課題に対するアプローチや、モブプロを取り組みやすくするためのアプローチ(席やホワイトボード・ディスプレイの配置なども含めて)など、幅広くしっかりと解説されていました。
モブプロを始めたくなる一冊ですし、始めた時に手元に置いておきたくなる本だと思いました!