kakakakakku blog

Weekly Tech Blog : Keep on Learning 👍

楽しく成長できるモビングを目指そう /「モブプログラミング・ベストプラクティス」を読んだ

2月に出版された「モブプログラミング・ベストプラクティス」をさっそく読んだ.僕はモブプログラミングの経験があり,例えばインフラ構築など,プログラミング以外の場面でも「モブ」のエッセンスを取り入れてタスクを進めることも多いけど,本書の目次を見て興味を持った部分もあり,読むことにした.本書の読者層は非常に多岐にわたると思う.モブプログラミング未経験者は是非読むべきだと思うし,モブプログラミング経験者でも新たな気付きが得られると思う.日本語で読める貴重な1冊!

モブプログラミング・ベストプラクティス ソフトウェアの品質と生産性をチームで高める

モブプログラミング・ベストプラクティス ソフトウェアの品質と生産性をチームで高める

目次

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

モブプログラミング関連本

モブプログラミング関連本だと,過去に「Getting Started with Mob Programming」を読んで,書評を書いた.しかし,現在「Getting Started with Mob Programming」は出版停止になっていて,著者の Mark Pearl 氏は新しく「Code with the Wisdom of the Crowd」を出版している.今回読んだ「モブプログラミング・ベストプラクティス」の原著は「Code with the Wisdom of the Crowd」となる.

pragprog.com

よって,本書は「Getting Started with Mob Programming」と同じ内容もあり,部分的に重複するため,以前の書評記事も合わせて読んでもらえればと思う.今回は新たに学ぶことができた点を中心に書評を書きたいと思う.

kakakakakku.hatenablog.com

成功をどのようにして計測するか

第1章に「成功をどのようにして計測するか」という内容があり,重要なのは「短期的にベロシティは下がる可能性がある」ことを理解することだけど,具体的に定量的な指標が紹介されていた.個人的な経験だと,GitHub の Issue など,開発タスクのリードタイムを計測すると,確実に短くなっていることを可視化できた.さらに定量的な計測は難しいけど,モブプログラミングを導入して,プロジェクトがうまく回るようになると,メンバーの表情も大きく変わると思う.デイリースタンドアップのときにメンバーの表情を見渡して,モチベーションを感じるような雰囲気であれば,ある意味では「成功」と言えると思う.

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

タイムボックス付きの探求

第4章では,新しい技術スタックを採用して,チームにエキスパートがいない状態など,ある程度手探りでモブプログラミングを進める場合に「タイムボックス付きの探求」というテクニックが紹介されていた.今までの経験上,モブプログラミング中に一部のメンバーが調査をすることもあったけど,内容によっては調査が長くなり,モブセッションから離脱したような状況になってしまうこともあった.そこで「モブセッションを調査のために使う」ことにより,全員でドキュメントを読んだり,プロトタイプを実装したりして,気付いた情報を共有することにフォーカスできる.今後「タイムボックス付きの探求」を試してみたいと思う.

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

第7章では,モブプログラミングの価値を理解するために必要な「リソース効率」「フロー効率」の説明もある.フロー効率の重要さを説明している本はあまり見たことがなく,素晴らしいと思う.去年にプロジェクトリードの事例で登壇したときにも話したけど,無理に1人1人にタスクを分割していたり,今すぐ必要ではないタスクに着手していたりすると,もしかしたら「リソース効率」を優先している可能性がある.

f:id:kakku22:20180619124201j:plain

「さぁ!今すぐプロジェクトリーダーに立候補しよう」の登壇資料は以下にある.

kakakakakku.hatenablog.com

さらに第7章には,個人的に考えさせられる以下の記載がある.

リソース効率を重視すると、スペシャリストとボトルネックが作られるのに対し、フロー効率を重視すると、ゼネラリストが作られ、機能を早く市場に送り出すことに力を入れられるようになる。

観点によっては「モブプログラミングだとスペシャリストを目指せなくなる」と言われる可能性もあるけど,必ずしもそうではなく,スペシャリストは目指せると思う.モブセッション中はメンバー全員のスキルをボトムアップで伸ばしつつ,メンバーごとの得意領域をさらに伸ばせるように新しい技術スタックの採用などを任せるなど.過去には「スキルマップ」を運用したことがある.

f:id:kakku22:20190304131511j:plain

「プロジェクトをリードする技術」の登壇資料は以下にある.

kakakakakku.hatenablog.com

デイケアモブ

第8章には「デイケアモブ」の話題も少し入っている.個人的には「デイケアモブ」という表現はあまり好きではないけど,重要なのは「エキスパートがビギナーの教育にフォーカスしすぎていて,本来のスキルを発揮できていないのでは?」ということで,モブプログラミングに限らず,よくある場面だと思う.良し悪しではなくバランスだと思うけど,メンバーが増える場面など,意識しようと思う.

タイマー

第2章にモブプログラミングで使うタイマーアプリが2個紹介されていた.

ただ過去に紹介記事を書いた Mobster もあるし,単純にポモドーロとしてタイムボックスを決めるならウェブタイマーを使えば良いと思う.個人的には複雑なことはせず,ウェブタイマーを使うようにしている.

kakakakakku.hatenablog.com

オススメ YouTube

「A day of Mob Programming」を観ると,モブプログラミングを実施しているチームの1日の流れを知ることができる.2012年に既にモブプログラミングを実施しているなんて素晴らしすぎる!

www.youtube.com

さらに4年後の2016年に公開された「A day of Mob Programming 2016」も観ることができる.モブプログラミング環境の参考にもなるし,オフィスの様々な場所で並行してモブプログラミングが実施されていることがわかる.壁にある物理カンバンも気になる!

www.youtube.com

モブプログラミングで有名な Woody Zuill 氏の講演も非常に刺激になる.なぜ「Working Together」が必要なのか?など,モブプログラミングの解説もあるし,様々な会社でモブプログラミングを実施している風景の紹介もあるし,参加者との質疑応答もある.オススメ!

www.youtube.com

まとめ

  • 2月に出版された「モブプログラミング・ベストプラクティス」を読んだ
  • モブプログラミング未経験者/モブプログラミング経験者など,本書の読者層は非常に多岐にわたる
  • モブプログラミングに興味があるなら是非読んでみると良いのでは!

モブプログラミング・ベストプラクティス ソフトウェアの品質と生産性をチームで高める

モブプログラミング・ベストプラクティス ソフトウェアの品質と生産性をチームで高める

関連記事

モブプログラミングの事例は去年「ランサーズ開発ランチ」でも登壇させて頂き,登壇資料を公開している.

kakakakakku.hatenablog.com