fbpx

エンジニア育成なら、モブプロが一番

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

エンジニアの育成は永遠の課題・・・

エンジニアの育成は、どんな組織でも悩みの種の1つになっていることですよね。

育成に関する課題は多種多様だと思います。どのような研修でどのようなスキルを身に付ければ良いのか、考えることはたくさんあります。

本ブログでは、筆者が参画したプロジェクトにおける活動の紹介をします。エンジニア育成のヒントになればと思います。

エンジニアは勝手に育つとは限らない

必要なインプットをして、適切なアウトプットをし、そこに対してフィードバックを根気よく与え続けることで、エンジニアは育っていく、と筆者は考えています。
でも、1人でできるのはインプットがほとんどです。コミュニティ活動などでアウトプットしている人はいるかもしれませんが、正直、コミュニティ活動ってハードルが高いですよね。
アウトプットができないと、当然フィードバックも得られません。そのため、エンジニアがなかなか育たない、という結果になると思います。

やる気につながるフィードバックを得られる機会は少ない

コードレビューをやっているチームは数多くあると思います。コードレビューでボコボコにされた経験は誰しもあるでしょう。しかし、ボコボコにされて、やる気が出るのは一握りのドM特殊な考え方の人だけではないでしょうか。
育成を念頭に置くなら、凹ませるのではなく、やる気を出させるフィードバックが必要になります。
仕事をしている中で、嬉しいのはユーザからのフィードバックですよね。そこでユーザとのコミュニケーションパスを増やし、フィードバックの機会を増やすことも育成のためには有効です。
これを実現するために、アジャイル開発に取り組むのも1つの手ではありますが、それで解決するとは限らないのも事実なんですよね・・・

育てるためには、モブプロに巻き込んで、楽しく開発するのが一番

各自で開発、全員でコードレビューでは、フィードバックも少なくなってしまいます。
そこで、モブプログラミングです。たくさんのフィードバックを得ながら、開発できるのがモブプログラミングという手法です。
モブプログラミングのそもそもの目的とは異なりますが、エンジニア教育という観点で見た時に、最適な手法になっていると、筆者は思います。

モブプログラミングとは?

同じ時間に、3人以上のチームメンバー全員が、同じものを見て、わいわい話しながら開発などの作業を行えば、それはモブプロです。リモートでも実施でき、メンバー間のノウハウ共有やチームビルディングに有効です。

詳細はモブプログラミングベストプラクティスyoutubeの動画をご参照ください。

モブプロで得られるもの

効率的なインプット

システム開発に必要なインプットは、その場でモブ役から伝えられます。要件通りにコーディングしてもらうためには、伝え方に工夫が必要になります。ある程度整理され、構造化された、受け取りやすい情報。それを受け取ったドライバー役は、情報の吸収効率が段違いになります。

即座にアウトプット

モブ役が伝えた情報から、ドライバー役はすぐにコードを記述します。

結果として、インプットされた情報を咀嚼し、自分なりに解釈し、コードとしてアウトプットする、という一連のプロセスを高速に実施することになります。アウトプットしたコードをもとに、しっかり理解できているのか、理解した内容が合っているのか検証されます。

効果的なフィードバック

ドライバー役が書いたコードは、書いた側からモブ役が目を通し、意図しないものであったり、コードに改善が必要であれば、即座に修正の指示が出ます。
この時、修正してもらうために、モブ役は「自分が意図した内容が何であるのか」「なぜその書き方だとまずいのか」「直すとして、どう直すのか」といった情報をドライバー役に伝える必要があります。
ドライバー役に理解できるように伝えないといけないわけですから、モブ役は、できるだけわかりやすく、丁寧なフィードバックをする必要があります。

このようにして、モブプロでは、効率的なインプット、即座にアウトプット、効果的なフィードバックのループをどんどん回していくため、エンジニアの育成に適した方法であると筆者は考えています。

モブプロの注意点

育成に使えるモブプロですが、用法には注意が必要です。ここでは、特に大事な3つのポイントをお伝えします。

めっちゃできる人はいなくても良い

他のメンバーに比べ、めちゃめちゃできるエンジニアがモブ役にいる場合、その人の独演会になりがちです。
これは、他のモブ役が考える機会を奪うと共に、チームのパフォーマンスがその人のパフォーマンスに左右されるという状況を生み出します。これでは、チームで開発している意味がなくなってしまいます。
モブプロをやる時には、同じくらいの経験値を持ったエンジニアをアサインするか、飛び抜けてできる人には、意図して黙っていてもらうと良いでしょう

ダメ出しはしない

モブプロでは、モブ役同士、議論が白熱することが多々あります。そんな時でも、冷静に、落ち着いて相手の意見に耳を傾ける、大人な対応を心がけるようにしてください。
雰囲気の悪いモブプロは地獄です。

やる気のない人は伸びない

結局やる気次第かい、ってツッコミがありそうですが、結局やる気次第です。
モブプロは(特にリモートの場合には)サボろうと思うと結構サボれてしまいます。また、ドライバー役で参加した時でも、例えば「何行目に〇〇を書いて」という具体的な指示にのみ従っていれば、何も考えず、何も学ばずとも開発は進みます。(生産性はとても低いですが)
ちなみに、筆者やその周囲でサボっている人がいたわけではありません。

最後に

筆者がモブプロでシステム開発をしていたのは、2020年〜2021年ごろになります。
その時のプロジェクトでは、初めて触るJavaScriptやkubernetesに四苦八苦しました。それでも、データ分析やデータエンジニアをやっていた筆者が、大体半年でWebアプリ開発ができるようになりました。
また、他のチームでも、初めて触る開発言語による開発をモブプロで続けたところ、数ヶ月で各自が自走できるところまでスキルアップしていた、という実績もあります。
ぜひモブプロを気軽に導入できるプロジェクトが増えることを祈念しております。

新規CTA