およそ一月前くらいに、同僚の id:hitode909 さんとモブプログラミングをやってみようということになった。
hitode909さんとはチームは別なのだけれど、最近週一で別チームに行ってペアプロなどをしつつ、知見の横展開や課題の発見などをやろうという試みをされていて、ではせっかくなので、と自分たちのチームに招いて軽くお試しでモブプロをやってみた。
モブプログラミングとは、ペアプログラミングをチーム全員にまで拡大したようなもので、1つのプログラムをプロダクトオーナーも交えたチーム全員で取り組む形式である。 セミナールームにエンジニア8人ほどで集まって、大画面ディスプレイにソースコードを共有しつつ、「コードを書く人(ドライバ)」と「それ以外の人(ナビゲータ)」とで1つの課題に取り組んでいく。
実装をチーム全員で取り組むため、知見が共有できたり、設計上の課題にプロダクトオーナーがその場で決断を下したり、レビューや仕様確認といったコミュニケーション上のロスタイムが減って素早く課題を実装に落とし込むことができるとされている。
実際に自分たちでやってみたところ、やはり意思決定がとても素早くなされるので、これはいいものだぞ、という実感を得た。
Mackerelチームではじめてモブプロにチャレンジしてみたところ、とても良かった
— だいくしー (@daiksy) 2018年3月9日
そこで、チームとして定期的にモブプロをやっていきましょう、ということになり、週1回1時間の「モブプロ枠」というものを設けた。
レギュレーションは以下のような感じ
- 毎週火曜日の夕方1時間、カレンダーにモブプロ枠を登録
- 他のMTGなどとかぶっている場合は、そちらを優先。その枠内に体が空いているメンバーだけで集まる
- 開発優先度はさほど考慮しない。知見共有が目的なので、チームで「最近あまり触ってる人が少ないのでは」というような機能を取り上げることが多い
- プログラミングネタが見当たらない週は、自分の知らないドメイン知識についての相談会など、なにかしら「チーム全員で」普段やらないような議論をする(とはいえ今のところ毎回プログラミングやっている)
結果として、スプリントの振り返りでも「モブプロで○○の機能の中身について知れたのでよかった」というポジティブな感想が続出して、かなりの手応えを持っている。
巷で良いとされているものは、一度自分たちでも試してみると、その良さをちゃんと知ることができるのだなぁ、と思った。