はじめに
今までに何回かモブプロを行なったのですが、その時に得た知見と、有用性を自分なりに考えたものをまとめようと思います。
手記
1回目
1回目は、内輪の勉強会でモブプロを体験してみようといった会で行いました。
その時は、10名弱ほどでドライバーは10分で挙手制で交代するというルールで、全員が知らない言語と簡単な課題を持って挑もうといったものでした。
最初の方は席に座ってエディタが自分好みでないとその使い勝手の悪さに翻弄され、自分担当の目的が明確化されない、もしくはナビゲーターの多方面の観点からの意見に翻弄されグダグダでした。
作業半ばの頃に課題でやりたいことを細分化させ、自分が行うことをコメントないし声出しで周知することを心がけるようになってからは、方向性が見えモブプロ参加者の団結感が生まれスムーズに進むようになりました。
その後何人かが入れ替わり無事課題を達成させ仲間同士で喜び合う有意義な会となりました。
2回目
2回目モブプロを行おうとなったきっかけは、転職して2ヶ月目の時の話です。
簡単なプロフィールは以下です。
- 転職し、2ヶ月目
- なので、業務知識のところはあまり持っていない
- かつモブプロした時は自分が熟知してない言語だったので構文的なところは知識として足りない
- 開発はスクラムで1週間スプリントで個々に看板を割り振って開発を行う
その週はプロダクトの中でもかなり業務知識が複雑な機能部分の改修を行う週で、私がその月、火で業務知識についていけず全然生産性を出せていなかったのがきっかけでした。
水曜日に私含めて3名でモブプロを行いましたが、業務知識を熟知している2人がドライバーとして中心にたち、私は業務仕様の説明を受けて頷きながら、時折仕様とロジックを照らし合わせて意見を出すような会でした。
結果的にうまくハマり、その日は1日で3人分の成果を出すことができました。それを2日間行いました。
3回目
3会目はvscodeを利用して2人で同時にコーディングを行うということを行いました。
これはモブプログラミングとは言い難いかも知れません。
その時は、割と単調に近い実装で数だけが多いような状態だったので、unitテストの作成と、実装作成に別れて行いました。
これも結果として成功でした。あらかじめ2人で作りの認識を合わせる必要がありますが、その最初に認識さえ合えば作られるものは決まっているので、単純作業効率は上がってまあまあ成功を納めました。
感想
上手くいかなかった例が出せなかったので、偏った意見になってしまうと思いますが、、
- モブプロを行うにはまず、常に方向性を定めることが特に重要
- そのために、絶えずドライバーはナビゲーターに今やること、考えていることを伝える義務がある感じます。
- また、ナビゲーターはドライバーを補う役割なので、そのドライバーを尊重し、ドライバーがやろうとしていること以外の発言を抑える必要があると思いました。
- 教育として成果を発揮すると感じました。
- 業務知識であったりアーキテクトであったり、必要な情報はすぐ得られるのでかなり良いものだと思います。
- 教育としてみた時、モブプロが有用である場合というのは、チームとしてレベルに差がある状態であると思います(全員が同じスキル、知識なら個々人で作業を行うのが一番生産性が高いはずだからです)。
とした上で、実際は私は1人で音楽を聴きながら黙々とコーディングをするのが大好きなので、モブプログラミングを強く推すことは考えていないです。
ただし、教育としては有用性を感じているので、自分がウィークポイントだと感じている箇所があれば、教育のためのモブプロというのは行なっていきたいなと思いました。