こんにちは。HRBrainでアプリケーション開発をしている坂口です。
この記事は HRBrain AdventCalender 19日目の記事です。
2020年後期からチーム編成を一部変更したためチームメンバーの人数が減り、サーバーサイドが得意なメンバーもフロントエンドを実装する必要がありそうだったのでモブプロを開始しました。
チームでモブプロに挑戦するのは2度目なのですが、今回はうまくいっているのでそのやり方について紹介したいと思います。
モブプロをやるメンバー構成
- フロントエンドの知識が浅いサーバーサイドが得意なメンバー2名
- サーバーサイドもできるフロントエンドの熟知者1名(コードオーナー)
参考資料
以下を参考にさせていただきました🙏
使うツール
- VSCodeのLive Share
- Discord(zoomでもGoogle Meetでも大丈夫です)
- Googleカレンダー
- スマホのタイマー
前準備
- チーム全員のモブプロをやることに対しての合意を取る
- モブプロで作業することをタスクに分解し、チケットを作成しておく
- googleカレンダーにモブプロの予定を入れて時間の確保と覚悟を決める
- 開発中のブランチにチェックアウトする
- 誰か1人がVSCodeのLive shareを開始し、URLの共有をする
- タイピストの順番を決める
- スマホのタイマーを10分間にセットする
モブプロ開始
モブは話し合いながら次に実装する内容を話し合って決定し、タイピストに指示します。
※タイピストは自分で考えてコードを書いてはいけません。
熟知者がタイピストのときは、他2人がフロントの経験が浅いため考える時間が多くなってしまい、指示待ちの時間が長くなってしまいがちですが、知識が浅いもの同士でコードジャンプをしながら他のコードを真似してみたり、試行錯誤していくのはとても勉強になります。
熟知者がモブの場合は、モブのもうひとりに対して答えだけを教えるのではなく、質問に答えたり、おおまかに「こういう手順が必要です」という投げかけをするだけでとどまってくれていると、もう1人の思考が働きます。
スピードとしては、最初は遅いスタートになるのですが、徐々にあたりがつくようになっていくのでチケットの消化スピードは早くなっていきます。
モブプロ終了
今回作業したタスクチケットをDONEに移動します。チームメンバー全員で「ありがとうございました」を言い合って終了します。 モブプロをやってみた振り返りも行うと良いです。
大事にすること
- 休憩
- 1時間ほどで頭と体はだいぶ疲れるので休憩をとることが長くつづけるコツです。集中したり、もう少しで完成する目処が立ってくると休憩を忘れがちになりますが、適度な休憩が大事です。
- 音声だけでなく、顔を見せるとより心理的安全性を保ってモブプロができる
- 「モブの声が聞こえないな...、どうしたんだろう」、タイピストはたまに心配になります。しかし、顔が見れる状態だと、笑顔で考えていたり悩んでいる顔が見えて安心感につながります。
- 自分の血肉にするぞというスタンス
- タイピストの立場であってもモブの立場であっても次は熟知者がいなくても1人で実装できるように、吸収しようとするスタンスは一番大事です。
メリット、デメリット
メリット
- 長期的目線で見たときに、属人化しない
- チームのメンバー全員がサーバーサイドもフロントエンドも実装することができるようになればバス係数を低くすることができます。
- 他の人が使っているツールややり方などを知ることができる
- 今回やってみただけでも他メンバーはgitのブランチの予測変換ができるようにしていたり、エディターの予測変換にショートカットキーをセットしていたりと発見が多かったです。
デメリット
- 熟知者はつまらないかも
- 熟知者がタイピストのターンは、熟知者はたとえ実装方法がわかっていたり、モブが言っていることが間違えていても従わなければいけないので、もどかしさを感じるかもしれません。
- 短期的見ると、一定期間、開発速度が落ちる
- 最初の1ヶ月ほどは、全員で悩みながら同じ作業をするのでタスクの消化スピードは落ちてしまいます。しかし、モブプロを続けていくとだんだんと感覚をつかみ、実装のあたりがつくようになります。
筆者から
「リモートになってチームメンバーと話す機会が減ってしまった...さみしい...」
「あの技術に詳しい人に実装の仕方を教えてほしい...!習得したい!!!」
そんな人はいませんか?
短期的なスピードダウンのコストを許容すれば自分の技術の幅も広げることができるし、コミュニケーション手段としてもモブプロは活用できると思います。
ぜひやってみてください!