なぜモブプログラミングは10分交代が良いのか?

アジャイルモブプログラミング

はじめに、なぜモブプログラミングは10分交代が良いのか?

最近はWeb系企業やスタートアップだけではなく、大企業や従来型企業のアジャイルチームでも、モブプログラミング(以下、モブプロ)が大分浸透してきたようです。
私が支援するチームでもモブプロを採用するチームが増えてきました。

ペアプログラミング.jpg

さて、モブプロに関する書籍(『モブプログラミング・ベストプラクティス ソフトウェアの品質と生産性をチームで高める』)Webサイト(Remote Mob Programming)ではナビゲーターとドライバー(モブとタイピストと呼ばれるケースもありますが、ブログではナビゲーターとドライバーに統一しています)の交代間隔として、10分が推奨されています。
今回は、「なぜモブプログラミングは10分交代が良いのか?」を自分なりに考えてみたので、シェアします。

まず、書籍やWebサイトでは、以下のような理由が述べられています。

  • 10分間という短いタイムボックスが集中を促す
  • 多くの人が交代できる

一方、モブプロを始めたばかりのチームが10分交代しようとすると「短すぎる」「何もできなかった」という反応が返ってきます。「モブプロは無意味だ!」と断定する気が短いメンバーもいます。

しかし、逆説的ですが、この「10分では何もできない」ということが、10分で交代すべき理由だと考えています。

経験上、モブプロで10分で成果が上げられない理由は、大抵の場合、共同作業のための準備不足に起因することがほとんどです。
モブプロで10分で交代すべき理由は、10分間という短いタイムボックスが、チームが共同作業のための準備が不足していることを明確化してくれるからです。

モブプロ実施前の必要な準備とは

さて、「共同作業のための準備不足」をより具体的にいえば、以下2点に大別されます。

  1. 環境整備が不十分
  2. 解こうとしている問題に対する理解が不十分

1. 環境整備が不十分

いきなり10分交代のモブプロに取り掛かったチームが最初に突き当たるのが、この壁です。

とりわけ、モブプロでは交代のタイミングでコードを同期する必要がありますが、コード同期の準備がされていないチームのセッションは、非常にストレスに満ちたものになります。

そのため、リモートでのモブプロの事前には必ず、Git Handover簡略化のためのmobコマンドや、コード同期のためのVisual Studio Live Share(エディタがVisual Studio Codeの場合)Code With Me(エディタがJetBrains製品の場合)などのプラグインを導入し、軽くテストをしておきましょう。
また、コードだけではなく、モブタイマー/ターミナル/Webブラウザ/ToDoリスト(後述)なども同期が必要です。

おまけ: リモートでのモブプロTips(その1)

リモートでは一画面しか共有できないため、モブタイマーやターミナルやWebブラウザもできるだけエディタのプラグインで完結させることで、モブプロ中のアプリの移動を最小化することをお勧めしています。

2. 解こうとしている問題への理解が不十分

初心者チームが陥りやすいもう一つの大きな問題は、解こうとしている問題への理解が不十分なまま、モブプロセッションを開始するケースです。

モブプロは、ナビゲーターとドライバーという役割名が示す通り、車の運転に似ています。
多くの初心者チームは、課題が起票されたチケットを一瞥すると、車を急発進させ、しばらくすると霧の中で立ち往生します。

そのため、はじめのうちは、モブプロの事前に、メンバー全員で解くべき問題のゴールを認識し、ゴールまでのステップを凡そ10分単位に区切ったToDoリストを作成しましょう。
もしも問題について馴染みが浅いメンバーが多ければ、問題領域に詳しいメンバーやベテランがToDoリスト作成をリードしても構いません。

もちろん、いくらToDoリストを準備して車を発進させても、ToDoリストの項目不足が見つかったり、ToDoリストそのものが完全に間違っていたと判明することもしょっちゅうです。
それでも、軌道修正ができるのは、最初に厳密にToDoリストを作成したからなのです。

おまけ: リモートでのモブプロTips(その2)

ToDoリストの表現形式としてオフラインでは付箋をお勧めしてきましたが、リモートではオンラインホワイトボードツールとエディタの行き来がストレスになるため、テキストをお勧めしています。

おわりに

今回は、リモートにおけるモブプロのTipsを交えながら、「なぜモブプログラミングは10分交代が良いのか?」を考察してきました。
ちなみに、このブログを書いたきっかけは、実際にモブプロに取り組むチームの観察に加え、アジャイルコーチはなぜ1週間スプリントを勧めるのか(ryuzee氏のブログ)があります。

モブプロもスクラムも、厳しく短いタイムボックスに区切ることで浮き彫りになった課題を、メンバーが苦心して解決していく中で、やがてチームが自由を手にしてゆくという構造がとても似ています。

とはいえ 、最初から無理は禁物です。
最初から細かいルールを押しつけて、チームからモブプロやスクラムへの拒否反応を産んでしまっては元も子もありません。
ですので、スクラムマスターやアジャイルコーチは、ルールはルールとして伝えた上で、楽しみながら課題を一つ一つクリアしていくようにチームに促せれば良いと思います。