プロダクト技術本部の川口です。
今回は、新人エンジニア研修にモブプロを導入してワークしてもらったら予想以上に高い満足度を得られた話を紹介します。
まずは弊社の新人エンジニア研修について紹介します。
BIGLOBEでは2020年から新人エンジニアが対象のエンジニア研修を実施しています。
研修内容は、Unix/Linux、Git、ネットワーク演習などどこの企業さんでもやっているような内容です。
2022年までは、教育担当のエンジニアが一人でカリキュラムと研修の講師を担当していました。
去年からは、カリキュラムは従来通り教育担当のエンジニアが考えるものの、研修の講師は育成も兼ねて新卒2〜4年目の若手エンジニアが研修の内容を考えて講師を務めることになりました。
業務の内容から講師の担当を割り振るのですが、私が所属するチームでは内製で開発しており、普段からコーディングも行っているため、TDD研修の担当になりました。
これまでのTDD研修
これまでのTDD研修では、TDD Boot Camp 2020のt-wadaさんのライブコーディングの動画を視聴し、動画を基にしたクイズを解いたり、個人で簡単なユニットテストにちなんだワークを行っていました。
私自身も新人のときにTDD研修を受けましたが、研修後に理解を深めたくて、自主的にTDDに沿ってテストを書いてみました。
この経験から一人でやるのではなく、新人が理解度を確認し合えるように、新人同士でTDDに沿ってテストを書いてみるワークをさせてみたほうがいいかもしれないと思いました。
自分が考えたTDD研修
まずは去年と同様に、t-wadaさんのライブコーディングの動画を視聴して、体系的な知識を得てもらうようにします。
動画を視聴した後にライブコーディングでもやっていたFizzBuzz問題のプロダクトコードとテストコードを新人同士でモブプロで動画と同じようにTDDで書いてみるワークを導入しました。
動画ではJava + JUnitでやっていましたが、環境構築が簡単なJavaScript + Jestでやることにしました。
FizzBuzz問題が終わったあとは、競技プログラミングの簡単なアルゴリズムの問題をTDDで書いてみるワークを導入することにしました。
研修をやる上で心がけたこと
モブプロでは新人全員がドライバーとナビゲーターをローテーションしながら全員参加すること。
モブプロで手を動かす前に、次に何があるか、どういうタスクがあるかを全員に聞き、新人同士で確認し合いながらワークを進めることを心がけました。
新人育成の場でゴールを達成するために必要な仕事を細かなタスクに分解していくタスクばらしを行うことがあると思います。
TDDはプログラミングの世界のタスクばらしに近いものがあると考えているため、視聴した動画の内容を振り返りながら、タスクを確認し合ってワークをしてもらいました。
加えて、手を動かした後は「なぜそう考えたのか」を説明してもらうことにしました。
特に最後のアルゴリズムの問題は、FizzBuzz問題と違い、その場でプロダクトコードとテストコードを考える必要があります。
プロダクトコードの説明とどういったテストケースのパターンが必要か新人同士で議論しながらワークを進めてもらいました。
新人の声
研修では、最後にアンケートをとっています。
感想と満足度を聞いているのですが、新人の感想を1つ紹介します。
<新人>TDDの概要を聞くだけではわからなかったが、動画のデモ、モブプロを通してどういった手法なのかを学べた。
実践的なTDDのワークにモブプロを取り入れたことで、理解が深まったようでした。
研修の満足度は、新人が6名の中、9点が3人、10点が3人と高評価を得ることができました。
準備は大変でしたが、新人に満足してもらえたようでとても嬉しかったです。
おわりに
今回はTDD研修を行った際の紹介でしたが、他の研修の講師も担当していたり、同期のエンジニアが違う研修の講師を担当しています。
皆、研修の資料を作成したり、講師をやる中で理解が足りてなかったと気づくことが意外と多かったようです。
新人だけでなく、講師をする若手エンジニアにとっても学びになるのがよい相乗効果だと感じました。
これからも満足して、現場で実践できるような研修をつくりあげていきたいと思いました。