リモートでもモブプログラミング文化が育った話
この記事は アジャイル開発 Advent Calendar 2020 の 20 日目です。
岡田です。なんちゃってスクラムマスターをしています。
現在私のいるチームは、基本リモートワークですが、モブプログラミング(ペアプログラミングも)が盛んです。
今日は、モブプロ文化がどうやって育っていったか、私が意識したこと、育ってどういう効果があったのか、をご紹介します。
なお、モブプロ文化が育ってきた+私がスクラムマスターになったのは、チームがリモートワークに移行したのと、ほぼ同時期のタイミングでした。
それも踏まえてご覧いただけると、良いかもしれません。(「リモートだから、チームとしての連帯感を出すことは無理だ」と諦めないでほしいです!)
概要
モブプロ自体については、Hunter Industries のイベント体験記事(@little_hand_s さんによる記事)に、わかりやすくまとまっています。
2019-01-14 Hunter Industriesの方のモブプロ体験会で教わった、本場のモブプロプラクティス
私たちのモブプロは、シンプルに「ドライバー」「ナビゲーター」という役割にわけておこなっています。ドライバーが Google Meets で画面共有をし、ナビゲーターがそれを見ながらナビゲートする、という形式です。
モブプロチャンスは、「難しいタスク」「慣れていないタスク」。成功体験をつくるのが大事。
モブプロの説明記事で、よく言われてるかもしれませんが、
・難しいタスク
・ドライバーが慣れていないタスク(バックエンドの人がフロントエンドのタスクをやってみる等)
をやるのがおすすめです。
そして、「モブでやるとこんなに速く・良いコードができるなんて!」という成功体験をつくれたことが、やはり今につながっていると思います。
ちなみに私たちのチームの一番最初のモブは、
バックエンドの人が、フロントエンドのちょっとした改修(1日もかからなそうな難易度のもの)をおこなう、というものでした。
ドライバーに対して、フロントエンド・エンジニア2人が、
「それを追加するなら○○っていうファイルですよ」
「それをやるなら、○○って方法が一番良いです」
「それなら、こう書いた方がスマートですよ」
とナビゲートすることで1時間で、タスクをほぼ完了させることができました。
モブで一緒にコーディングしていたので、プルリクのコードレビューが一瞬で終わったのは、言うまでもないですね。👍
初回が成功体験だったので、「おいおいモブプロってなんだよ。最高かよ」というムードができ、そのままモブは当たり前になっていきました。(正直、私もこんなに上手くいくと思ってなかったんですが。。。)
週のゴールと紐付けて、開催する。習慣化する。
週に1回、「モブプロ枠」というものを1時間とっています。
(これはチームのワーキング・アグリーメントにも書いています)
前回の記事で、週の目標を定めていると書きました。
週の開始のデイリーで、司会者はメンバーに「これらの目標の中で、モブプロをしたい人いますか?」と質問して、モブ枠を決めます。
必ず、週の目標に関連したモブプロをします。業務に関係しない息抜きイベント的なモブ枠はつくりません。
こうすることで、モブプロをすることは、日々の仕事の中の当たり前・必然的なことになりました。
個人的に、この時間は「私たちは目標を達成するために、全員で協力するんだ。それがチームなんだ」ということを、認識する時間にもなっているんじゃないかな〜〜、かもしれないかもな〜〜と思っています。(おおげさかも)
モブ文化が育って、起きた良い影響
ペアプロが育ったおかげで、下記のようなことが起こりました。
■ プログラミング以外でも、「モブ○○しよう」という動き
モブ募集要項作りしよう 等
■ わざわざ枠を決定しなくても、自然発生的にモブが起きるように
全員参加じゃないミニモブが、日々自然発生しています。
■ ペアプロも盛んになった
■ だれかの時間のかかってしまっているタスクは、モブプロで解決
たいていモブで解決できています。検査はデイリーでやっています。デイリーの記事も合わせてどうぞ。
■ 障害が起きたときも、Google Meets で集まってモブ解決
■ 属人化解消につながった
事実、「この言語は、○○さんしかできない」という状況が打開され、きちんと結果も出ました。👏
* * *
以上、モブプロ文化が育ったお話でした。まとめると、「モブプロが当たり前」に進化するまでには、成功体験と必然性をもたせるための仕組み設計が大事なのかな、と思います。(もちろん「モブプロとはどういうものか」を説明するために、社内向けに記事を書いたりもしましたが)
私たちのチームは、モブプロでさまざまな課題を解決してきました(あと純粋に楽しい!)。みなさまも楽しいモブライフを!
この記事は、この後のおまけをもって終了です。
私の TIPS が誰かの役に立てれば嬉しいです。それではまた!
岡田
P.S.
私にモブプロを教えてくださった @su_kun_1899 さんに大感謝です。
* * *
おまけ:モブしてよかったな〜って思うこと・ケース集
■ 慣れていないリポジトリでのタスクを、1時間でほぼ完了させられた
これは何度も!
■ 要件の勘違い解消
私よく勘違いするんですよね()
■ タイポの即時発見
タイポ1つで本番環境が壊れたケースもあるので、たかがタイポされどタイポ、です。
■ 要件にかなうライブラリの選定相談
メンバーが悩んでいて「まだモブするまででもないかも...」となっていた状況でも、とりあえずモブったら課題解決しました。たった30分の相談で、数日詰まっていた課題を解決できました。👍
また、ライブラリのスマートな探し方もメンバー間で共有できました。