効果を特徴づけるキーコンセプトは9つ
モブプログラミングのコンセプトについて、ルーシャン氏は9つのトピックを挙げて解説する。
まず、モブプログラミングは、「コードを書くこと、プロダクツをつくることだけではない」とする。グループで議論しながら共同作業を行うことで、メンバーの教育やトレーニングにもなるし、チームワークを育てることになるからだ。ルーシャン氏は優しさ(Kindness)、熟慮(Consideration)、尊重(Respect)、またお互いの弱点を知り、信頼し、感謝する心が生まれると、メンタル面でのメリットを主張する。
開発過程がコードレビューにもなっているため「クリーンコード」にもつながる。ユニットのチェックやテストもパイプラインで流れるので効率もよい。もちろん「バグなし(Zarro Boogs)」も期待できる。結果として製品の品質も向上し「価値あるソフトウェアをユーザーに届ける」ことができる。
また、メンバーは特定の業務や作業専任になるわけではないので、休みが自由にとれる。議論と作業を通じて「グループ内の風通しがよくなる」ので、いわゆる縦割り型の「サイロができない」こともメリットだ。
グループの力を合わせることで、「継続した高いゴール設定」が実現できる。
モブプログラミングといっても常に会議室で作業をしているわけではない。カンファレンスの参加や調査といった「実験を繰り返す」ことも重要なコンセプトのひとつだという。そして、モブプログラミングの活動や業務を通じて「ソフトウェアコミュニティを作る」ことにもなる。これもコンセプトのひとつだという。
組織になじむ工夫で導入を定着
他にも、全体の技術スキルが高まること。組織構造がフラットになること。などの効果も期待できる。グループ作業で、役割は持ち回りなので組織内に細かい役職や階層構造は生まれない。開発チームごとマネージャがいるだけで、チームの上はすぐに部長や役員ということになる。
メンバーの評価については、人事部の要望により年2回の評価を面接ベースで行っているという。
これらの特徴は、モブプログラミング固有のものというより、Hunter Industriesにおけるモブプログラミングの特徴というべきものも含まれている。同社は今後もモブプログラミングの適用拡大をどうするか、割り込み業務をどう処理するか、品質管理などにも取り組むとしている。
採用面では、インターンにもモブプログラミングを実践しているという。面接で希望を確認しつつ、候補をユニットテストに参加させたりしているそうだ。中にはグループワークを好まないエンジニアもいるので、2人、3人といった少数のモブやペアプログラミングといった対応もとっている。
日本に向いているかもしれないモブプログラミング
最後にルーシャン氏は、モブプログラミングによる開発風景がどうなっているのか、オフィスの定点カメラでタイムラプス撮影した動画を上映しながら解説した。
動画は午前8時からの映像からスタートする。モブプログラミングの開始時間が決まっているわけではないが、8時からは1時間のスキル習得ミーティングが行われていた。9時には作業が始まっている。しかし、映る画像は巨大ディスプレイの前で数人のエンジニアが議論しながら作業をしているだけだ。映像では、午前10時にひとつのCI/CDコードがプロダクトオーナーの元に届けられていた。
この動画はYouTubeにも上がっており、類似の動画は他にもある。実際の開発作業の様子はこれらを見て確認するとよいだろう。
講演は以上だが、モブプログラミングと同様に、この講演も非常にカジュアルな雰囲気で進行した。日本における従来型のSIerでは、ここまで自由な方式で開発業務を実施するのは難しいかもしれない。また、あまり大規模なソフトウェアの開発には向かない可能性もある。ビジネスモデルが人月モデルとウォーターフォールを前提としている場合、柔軟な開発体制をとりにくいからだ(これはDevOpsの適用にもいえるが)。
しかし、日本は、個人プレーよりチームワークを重視する傾向があり、集団の力によって成功した国でもある。モブプログラミングのポリシーやコンセプトはむしろ日本向けともいえる。働き方改革の動きと合わせてモブプログラミングの導入を検討してみるのもいいだろう。
