モブプログラミングをチームでやってみた。
最近会社で外人さんと一緒にモブプロやってるんで情報、知識、経験共有の為記事を書きます。
メンバー
僕・・・社会人4年目。チームに新しく入った。
A・・・チームの先輩。一番プロダクト&技術の知識がある。
B・・・ハワイ出身のプログラマー。同じく新しく入った。
基本的には新しく入った僕とBさんにAさんが教える形で進んでいる。
プロダクトとチームについての知識の共有をする目的でモブプロを始めた。
やり方
基本的にはこちらのやり方にしたがってやってみた
これに加えて、
- ドライバーを交代する度にコードをプッシュして、ドライバーはそれぞれ自分のマシンを使った。(メンバーにMac or Winの片方しか使えないメンバーがそれぞれいたため)
- 基本的には時間でドライバーを交代していたが、必要に応じてキリのいいところで交代するようにした
- 始めた瞬間から全てのタスクをモブで行った。
僕のチームはスクラムを開発手法としていて、2週間1スプリントです。
モブ始めてから現在4スプリント完了しました。
分かったこと
- 1、2時間くらい毎に休憩取ったほうがいい。
集中力切れる、疲れる、パフォーマンス落ちるでいいことない。
- 全員が同じ課題に集中し続けること
モブプロは会議ではない。全員が同じ課題に向かって集中し続けることで
モブプロのメリットである知識の共有、レビューの撤廃が初めて可能になる。
誰か一人でも内職しだす、話を聞いていない等そこにいるのに参加していない状態になるとモブをやる意味がない。つまり、全員が意識をもって集中し続けないといけない。
モブに新しいメンバーを加える場合、こういう認識共有することがとても大事。
- 違う視点から物が見づらい
レビューが撤廃できるのはモブの良い点、だけどモブが終了した後一人でPR見直したら実は抜けてるところが見つかることがあった。全員が同じ課題、同じ画面を見るのでモブ中に別の視点から成果物を見ることが難しい。外の視点から得られるフィードバックが無くなってしまうので、翌日に先日の成果物を確認するとかしたほうがいいかも。
- 一番知識がある人はあまりドライバーをするべきではない
思考の過程で他の人がついていけなくなる場合があったし、僕の場合「この人がドライバーしてるなら安心だな」とちょっと気が緩んで集中が切れてしまう時があった。(僕が集中力ないだけかも)ただ、モブプロを続けていけば理論上知識と実力は平均化するはずなのでそこまで気にしなくていいとも言える。
- 発言しやすい空気を保つ
モブが順調に進んでいる内は気にしなくていいが、バグに詰まったり、議論が熱くなって空気が悪くなったり、すると、いわゆる「心理的安全性」が無くなっていく。
空気良くないな~と感じたら、ドライバー交代、ちょっと雑談を挟む等一旦空気をリセットしたほうがいい。
- 分からない時は必ず質問する
ドライバーのやっていることが分からない時、チームの議論に置いてけぼりになっている時、コードの意味、意図が理解できない時は必ず質問する。そうしないと「知識の共有」という利点が無くなってしまう。
「こんなこと質問していいのかな、、、」と思ってはダメ。質問することに躊躇しない。
始める過程でいろいろモブのプラクティスを調べた。休憩はどの頻度でとるべきか、ドライバーはどの程度の頻度で交代すべきか、何人でやるのがベストか、、、、
けど数か月間モブを続けて、本当に守らなきゃいけないと思った点は
「全員が同じ課題に集中し続けること」
ここを守っていればモブの良さは保たれるし、逆に守っていなければいくらやり方を変えてもやる意味がないと感じた。