はじめに
メーカーのコーポレート部門でソフトウェアエンジニアとして働いているモンゴルです。
新人を受け入れるときにやるといいと思ったことがいくつかあったので紹介したいと思います。
アクティビティ
個性によって効果は異なりますが、万人におすすめできるアクティビティを紹介したいと思います。
ペアプロ
言わずもがなですね。
レビューだけでは伝えられない、開発のテクニック、ツールの使い方、開発時の考え方も自然と伝えることできるので非常に効果は高いです。
新規参画者のキャラクターによって、「最初の方にやるか」「ちょっと慣れてきてからやるか」は判断すると良いと思います。新規参画者、チームメンバーと相談して決めると良いでしょう。
一方、ペアプロに抵抗がある人もいます。後述のバディプログラミングから始めるのもおすすめです。
わかったことをメモしてもらう
「わからないことあったら聞いてねー」と受け入れる側はよく言いますが、新規参画者側は「何がわかっていないかわからない」状態であったり、見栄を張ってしまい「わからないことが共有できない」状態であることがよくあります。
わかったことを書いてもらうことで、新規参画者側はわかっている/わかっていないことの意思表示、受け入れ側は何が伝えられていないかの情報収集ができて双方にとって良い活動となります。
メモの方法はSlackでスレッドを作るなり、社内wikiにそういうページを作るなり、何でもいいと思います。新規参画者、チームメンバーと相談して決めると良いでしょう。
視点は異なりますがこちらのブログも参考になります。
また、新規参画者側も受け入れ側も、学ぶときの姿勢について考え直せるとより良いと思っています。
バディプログラミング
「レガシーコードからの脱却」という本で紹介されているアクティビティになります。
やり方ですが、書籍の中では次のように紹介されています。
バディプログラミングではほとんどの時間は1人で仕事をする。 1日の最後のたとえば1時間だけ、バディと一緒に今日それぞれが完成させたコードをレビューする。
このアクティビティにより、ペアプロに抵抗がある新規参画者、忙しいチームメンバーという環境であっても、ペアプロや知の移転を推進するきっかけづくりができるようになります。
受け入れる側の準備
準備も色々ありますが、次のものはしっかりやると、その分効果があると感じています。
プロジェクト、プロダクトの全体像、チームを知るためのリンク集を作る
リンク集を渡してもしっかり理解できないケースが多いですが、新規参画者側から求められることも多いので用意しておくといいでしょう。
受け入れる側の知識の整理になるので、受け入れ側のメリットが大きい活動だと感じています。
割当予定の課題を整理する
時間がなくてあまり深く考えずに決めてしまうことがありましたが、ここはある程度準備していたほうが、新規参画者にとっても受け入れる側にとっても互いにうまくいくと思っています。
次の順番で徐々に難しい課題を割当していくといいと思っています。
- 【開発のフローに慣れる】ドメイン知識が不要で、やり方も確立されていて、1時間以内で対応できる課題。
- 【コードの構造に慣れる・テストの書き方に慣れる】ドメイン知識が不要で、やり方も確立されているもの、特定の数ファイルだけ修正するだけで対応できる課題。できれば、フロント、サーバーサイドをそれぞれ、1,2個ずつできると良い。
- 【ドメイン知識に慣れる】ドメイン知識が少し入ってくる課題。ビジネスロジックの修正等が良い。
- 【コードの全体を把握する】1~2日で対応が完了する、1機能を追加する課題。案外時間がかかる場合もあるので、緊急度が低いものであると良い。
エンジニアのレベルによっては、飛ばしてもいいステップもあると思います。
大事なのは、目的意識を持って段階的に課題をアサインしていくことで、これにより、双方でストレスを抱えずに、ステップアップできると考えています。
おわりに
みなさんも、「こういうのやるとよかったよ!」とかあれば教えていただけると嬉しいです!