初めまして!エンジニアの落合です。1年ほど前に入社し、現在はTSF新機能開発チームで開発者兼スクラムマスターを担当しています。
今回、私が所属しているチームで初めてモブプロに挑戦してみましたので、ご紹介させていただきます。
モブプロとは?
モブプロ(モブプログラミング)とは、複数人で一緒に協力しながらプログラミングすることです。
参加者はドライバー(タイピングする人)とナビゲーター(指示する人)という2つの役割に分かれて、定期的にドライバーを交代しながら行うのが一般的です。
以下の動画がとても参考になります。 www.youtube.com
モブプロを実施したねらい
一番の目的は「属人化の排除」です。
私たちのチームは、新機能を開発するにあたって知識や作業が属人化しないことを目標にしています。
そのために、今までは「コードレビューを皆で行う」という取り組みをしてきましたが、モブプロを取り入れる事でもっと効率的に知識を共有できるのではないかという狙いがありました。
その他には、以下のような狙いもあります。
- ナレッジを共有しあうことで、お互いにエンジニアとして成長する
- 協力してプログラミングすることで、フロー効率を高める
- バグの発生リスクを減らす
どのように実施したか?
準備したもの
オフィスに集まっていれば1台のモニタを囲んでお手軽にモブプロできますが、我々はフルリモートで仕事をしていますので、それは難しいです。
なので、今回はVSCodeのLiveShareという拡張機能を利用することにしました。
LiveShareを使うと、同じエディタ上で複数人で同時編集する事が可能です。
GithubアカウントかMicrosoftアカウントがあれば利用できます。
実際の流れ
- ホストの人がLiveShareを開始して皆にURLを教える。
- 開発する機能の概要や実装方針を皆で確認する。
- ドライバーとナビゲーターに分かれてコーディング開始!(ナビゲーターが指示して、ドライバーがタイピングする)
- キリが良いところでドライバーを交代。
全員モブプロ初心者ということもあり、あまり厳密にルールを決めず「とりあえずやってみようか」くらいの気持ちで始めました。(ドライバー交代の時間や役割を厳守しませんでした。)
やってみて気づいたこと
Good👍
- 全員で合意しながら実装を行うので、コードレビューの時間が短縮できました。
- 実装中に疑問や考慮すべき点が出てきたとき、その場で議論、合意、情報共有が同時に行えました。
- 熟知者からナレッジ共有してもらって早期に解決策が見つかりました。
- 「自分ひとりでやってたら分からなかったな〜」という場面が何度かありました。
Bad👎
- 集中しすぎて休憩をこまめに挟まなかったので、かなり疲れました。定期的な休憩は必要ですね。
- 内容が簡単すぎて、ドライバーが一巡する前に終わってしまう時がありました。小さすぎるタスクは学びも少ないので、モブプロに向いてないかも・・・?
気づき💡
- リモートでもLiveShareがあれば割と支障なくモブプロできました。
- 最初は少人数で始めるのが良さそうだと思いました。(今回は3人でやりました)
- 気軽に発言・質問できるため。
- 少人数のほうがちゃんと全員がドライバーを試せるため。
まとめ
今回はきちんとルールを決めずに始めたため、あまりテンポよくモブプロが出来なかった時がありました。
なので、次にモブプロをする際は、
- ルールをもう少しちゃんと決めて、しっかり守る。
- ドライバーの10分交代
- 役割の厳守
- 定期的な休憩
- 毎回最後にふりかえりを行ってやり方を改善していく。
といった取り組みで、学びを最大化していきたいです。
ただ、今回「とりあえずやってみる」の精神でモブプロを実践できたのはとても良かったと思っています。
最後に宣伝
そんな我々開発チームで一緒に働いてくれる方を絶賛募集中です!
ご興味のある方は、以下のURLをご覧ください!
recruit.teamspirit.com