モブプログラミングの始め方とチームの育て方
最初に安井氏が、モブプログラミングの始め方について解説した。この時、役に立つのが「モブプログラミングベストプラクティス」という書籍だ。この本では、「モブプログラミングを実験として位置付けよう」「最初は共感から」といった実践的なノウハウを知ることができる。また、本に載っていること以外の実践的なポイントとして、次の6項目を挙げた。
- 目的とゴールを定める
- 進み方を表明する
- 議論と実験のバランスを取る
- その場でフィードバックを得る
- ふりかえりをする
- 個々人のペースとやり方で復習する
ここからはクロストークと題して、同じテーマを2人がそれぞれコメントしていった。まずは、「始める時、ネガティブな反応する人がいたら?」から話を進めた。
安井氏は「まずは、試してみましょうというアプローチがいいと思います。最初は不安や反感があるかも知れません。だから、2時間だけやってみませんかと。その上で、今後どのように取り組んでいくか話し合ってみてください」と語った。
及部氏は「最初は、勉強会をやっている人や他のチームでやっている人を呼んで、よいところを教えてもらうなど、ちょっと入ってもらうのもいいですよね」と付け加えた。
続いて、チームをブーストするモブプログラミングについて、及部氏が解説した。モブプログラミングには、チームメンバーに対する教育的効果が期待できるという。新人や経験値の低い人がコンピュータを操作する「ドライバ」の係になり、経験値の高いベテランが「ナビゲータ」といったコーチ、調整役になるのだ。そうすると、理解に時間のかかるドライバのペースで進めやすくなり、一緒に参加している人たちにもスキルが伝搬しやすくなるそうだ。
また、モブプログラミングはコードレビューとも相乗効果が期待できる。レビューには「コードのチェック」「メンバーの学習」「コード品質の強化」といった3つの側面があるが、そのうちチェックと学習はモブプログラミングでもカバーできる。一方で、強化についてはふりかえりなどこれまでのレビューが効果を発揮する。
クロストークでは、「レビューでどんな会話が出るか? ケンカにならないか?」といった話題を取り上げた。
「初めのうちは、変数の命名や関数の書き方、モデルに何を書くかなどの議論が盛り上がります。それを全員でやって認識がそろえば、バラバラに書いても書き方がそろうようになります。でも、モブプログラミングをしたからといって、チームが仲良くなることはありません。仲の悪いチームであれば爆発します」(及部氏)
それについて安井氏は「コードが読みにくいですねとコメントすればいいのに、『うんコード』って言ってしまう人がたまにいます。感情を逆なでするのではなく、丁寧なコミュニケーションが必要ですよね。建設的になって、そこからチームが強くなっていくのがいいと思います」(安井氏)