こんにちは!むらってぃー(@canon1ky)です。
今日は僕が最近知って、ものすごく生産性が上がった開発手法 “モブプログラミング” を紹介します!
なかなか解決できない「1人開発」の悩み
大学生時代にも、エンジニアになってからも、開発する中での悩みがいくつかありました。
それも、PC対自分の1人でひたすら開発していく上での悩みです。
特に、開発スタイルが我流で突き進んでしまうことが一番の悩みで、
効率よく開発したかった僕はググることがほとんどでした…
全ての悩みを解決した開発手法「モブプログラミング」
僕はある日、フリーランスの常駐案件でお手伝いを行うベンチャー企業で、モブプログラミングという開発手法に出会いました。
その企業ではモブプログラミングは見渡せば当たり前のようにオフィス内で行われている手法でした。
画面を2〜3人で見つめながらプログラミングをしているグループがいくつも。とにかくその光景を見た僕は違和感を感じたのです。
モブプログラミングとは
2人以上で同じPCで、同じ課題に取り組む手法です。
僕がいるプロジェクトでは、5分ごとに交代しながら1人が必要に応じて話しながらコードを書き、それ以外の人はコーディングを見て話たり、ヒントを与えたりする。
というものでした。
エンジニア界隈では、略してモブプロと言われたりします。
やってみた結果
初めてながらもモブプログラミングをやってみたのですが、何度自分の悩みが殆ど解消されていてかなり驚きました…笑
大きなメリットは下記の点です。
そして上記メリットが生まれる理由を説明します。
アウトプットの質が上がる
複数人で同じPCで課題に取り組むため、各々の開発者が1人で開発した時より全体的なアウトプットの量は一見減りがちに感じます。
しかし、質としては非常に濃密なものができ、各々1人で開発した時と比べて最終的に成果として大きいアウトプットになります。
これには、
- PCに対してのみでなく、他の開発者に対してもアウトプットすることで、自分の知識をさらに深められる
- 仕様や技術的な漏れを指摘し合うことができ、バグが潜む可能性と出戻りが圧倒的に減る
- 関係者が別々に同じコードのレビューをする時間、コードを読んで処理を理解する必要がないため、各々が個別で行う重複した作業の時間削減につながる
といった理由があります。
自分のアウトプットが他の開発者のインプットになるのは非常に嬉しいですよね!
得られる知識・知見が圧倒的に大きい
1人で開発するスタイルよりも、得られる知識や知見の量が圧倒的に増えます。
これには、
- 話しながらコードを書くので、聞いている人は受動的に知識をいくつも吸収できる
- ショートカットをどう駆使して開発を進めるか、実装のどのレベルの部分から手をつけていくかなど、他の開発者の開発の進め方に関して良いところを吸収できる
- 1つの知見をその場にいる全員で共有できるので、3人でモブプロをした場合、1人でインプットした時に比べて全体のインプット量が3倍になる
といった理由があります。
他の人の開発スタイルの良い部分を取り入れることは、1人で開発しているとなかなか変化を起こせない部分なので大きいメリットですね!
モチベーションが維持されてとにかく楽しい
最後に、モブプログラミングをすることでその時のモチベーションがずっと維持されていてとにかく楽しいです!
これには、
- つまづいた時に他の開発者と一緒に対処できるので、協力プレイのような心強さがある
- 自分が他の開発者がつまづいた時に助けになれるとすごく嬉しい
- 5〜10分の超短時間で交代するので、ずっと集中しつずける必要がない
- 他の開発者と言葉を交わしながら作業を進めるので、頭がとにかく働く
エラーは開発にはつきものですよね….そこに積極的に立ち向かえるってだけでも非常に楽しいですよね!
結論: モブプログラミングはメリットがとにかく多い
モブプログラミングをやってみて、とにかくメリットが多いことを体感しました。
全員が楽しく、スピード感を持って成長できることは企業にとっても非常に良いことだと思います!
僕も自社の開発スタイルにモブプログラミングをどんどん使用して、みんなが楽しく仕事をできる環境を作ることを目指します!!
モブプログラミングや生産性をあげる方法をもっと知りたい方は
僕が最近読んだ本で、Joy.incという本があります。
こちらに著者であるリチャード・シェリダンという方が、米国で最も幸せな職場と言われるメンロー・イノベーションズ社という会社を立ち上げ成長させたお話と、それを事業に取り入れ、喜びにあふれる職場を作る手法を紹介しています。
その中の手法としてモブプログラミングやスクラム開発が実際の事例とともに取り上げられています。
Joy.incを読んで僕はモブプログラミングの活用法や、トラブルが起きても嫌な思いをしない方法を学びました。
それを自社に取り入れることで、すごく楽しく未来にワクワクしながら開発をできています!
開発に楽しさを見出せない方、それ以外にもマネジメントに壁を感じているディレクターやマネージャーの方に、Joy.incは非常におすすめですので、ぜひ読んでみてください。