モブプログラミングとは?やり方やそのメリットは?
こんにちは!CODE CLUB965のKです!
2人で1つの機能開発をやるのがペアプログラミングですが、3人以上の複数人で1つの開発をする手法としてモブプログラミングというものがあります。
今回は、モブプログラミングについて紹介します。
モブプログラミングとは
ペアプログラミングのさらに人数が増えた版です。
3人以上の複数人数で1つの機能開発に取り組みます。
やったことが無いと、非常に効率が悪い開発方法に思いますよね。
私もやってみる前はそう思いました。
しかし、モブプログラミングには、モブプログラミングの良さ・メリットがあります。
モブプログラミングのやり方
モブプログラミングでは、1名をドライバー、他の人をナビゲーターとして、役割を交代しながら開発をしていきます。
ドライバーがコードを書いていって、他のナビゲーターがドライバーのサポートをします。
ドライバーの交代方法としては、「時間を一定にする」「順番を決めておく」のがおすすめです。
例えば、「20分交代」「Aさん→Bさん→Cさん→Dさん→Aさんを繰り返す」といったような形です。
「ナビゲーターが複数人いても、そんなにやることあるの?」と思われるかもしれませんが、
「先々の技術調査をしておく」
「エラーの原因を複数人が複数方向から調査する」
など、結構やることはあります。
ドライバーは、ナビゲーターの力を借りて、開発をどんどん前に進めることができるので、気持ち良いと思います。笑
モブプログラミングのメリット
全員で1つの機能を開発と聞くと、「開発効率が悪いのでは」というところが1番気になりますよね。
4人いるのであれば、4人がそれぞれ別の機能を開発した方が効率が良さそうです。
以下の2つが、モブプログラミングの代表的なメリットです。
1. 機能提供のリードタイムが短くなる
2. 効率的に技術共有ができる
1つずつ見ていきましょう。
1. 機能提供のリードタイムが短くなる
リードタイムとは、機能の開発に着手してから、その機能をリリースできるようになるまでの時間です。
モブプログラミングだと、1人で開発するとき、またはペアプログラミングをする時と比べて、圧倒的にリードタイムが短くなります。
複数人で1つの機能を開発しているので、リードタイムが短くなるのはイメージしやすいかと思います。
プロジェクトによっては、企画した機能をいかに早くリリースするかが重要になるものがあります。
そのようなプロジェクトでは、モブプログラミングは非常に有用です。
2. 効率的に技術共有ができる
モブプログラミングは、技術・知見の共有効率が非常に良いです。
みんなで考えて、みんなで実装をしているので、その技術が常にみんなに共有されるので、こちらも当たり前と言えば、当たり前ですね。笑
1人で機能を開発した時と比べてみます。
仮に4人チームだったとすると、誰か1人が開発した機能についてしっかりと理解をするためには、他の3人がそれぞれ開発以外に情報キャッチアップの時間を取る必要があります。
キャッチアップの効率は、自身が開発に参加した時と比べると悪くなります。
つまり、開発だけで考えずに技術情報をチームで共有するところまでを範囲と考えると、1人で開発するよりも、モブプログラミングをやる方が効率が良いのです。
最後に
いかがでしょうか?
なんとなくモブプログラミングのメリットが伝わりましたか?
良さを理解するには、体験するのが1番なので体験会とかできたらいいなーとか思ってます!
それでは、また!