若手エンジニアの育成で大切なこと

young-engineer
young-engineer

2022年7月30日

ここ数ヶ月、未経験を含めた若手エンジニアのチームを率いてプロジェクトを進めています。

ここでいう若手エンジニアとはエンジニア経験が0~2、3年程度で0⇨1開発が初めてのメンバーのことです。

最近になりようやくメンバー一人一人が一人称で実装を進められるようになってきました。

そこで今回は数ヶ月若手エンジニアとプロジェクトを進めていく中で、やってよかったことをまとめてみます。

やってよかったこと

①はじめはルールを決めてしっかり面倒をみる

②答えを教えるのではなく、答えを引き出すようにフォローする

③自身でやらず、とにかく部下に任せる

①はじめはルールを決めてしっかり面倒をみる

基本的に経験がない人はそもそも判断材料がありません。どう実装すればいいのか、どうやって実装するのか、わからないことだらけです。

そのため、まずは開発の流れや方法をしっかりと説明をしてそれ通りにやっていただきます。

しかし、実際にやってみるとはじめは見事に説明通りにやってくれません(笑)。

例えば、コーディング規約(Read Me20行ほど)を見て実装してください。と言っても規約をことごとく破ってきます。

この段階ではしっかりとフォローし、レビューでの問題点は必ず指摘してやり直しをさせます。プルリクが1回で通ることはないでしょうし、何度も同じことを言わなければいけないため確実にウザがられます。

「守・破・離」という言葉がありますが、はじめは徹底的にルールを守らせ、慣れてきたらより良くするためルールを破っていき、最終的によりいい解へ進むため離れていくという修業における段階を示したものです。

はじめに「守」を徹底させることで基礎が出来ていき、いいコードをかけるようになっていきます。

ここで大切なのはとにかくルールを守らせることです。ルールを破るたびに指摘しなければいけません。しかも初めのうちは一度説明しても理解ができていないため、何度も同じ過ちを犯します。すると指導者としては「これ前も教えたはずなんだけどな」と思ってしまうものです。しかしそんな時でも、決して怒ってはいけません。とにかく何度も同じことを言い続けるのです。そうすると自然といい形になっていきます。

指導者としては指摘ばかりする悪者役になるので実はメンタルが一番やられる時期でもあります。ここはぜひ耐えてください。病んだら映画でも観に行きましょう!

指摘し続けると徐々に指摘の回数は自然と減っていきます。コードであれば、どんどんまともなコードになっていきます。

②答えを教えるのではなく、答えを引き出すようにフォローする

①のフェーズを超えたら次は自分で考えて実装できるようにしていきます。何か実装にハマった際にも答えをすぐいうのではなく、若手エンジニア自ら考えて答えを引き出すようにヒントを与えていきます。

例えば答えを教えてしまう例として、「データベースから特定のレコードを取得する方法がわからない」と相談を受けたときに、「それはwhere句を使って、第一引数にカラム名、第二引数に検索したい値で取れるよ」と答えを教えてしまえば簡単に実装が進みます。しかし、「すいません、比較演算子を使う場合はどうすればいいですか」など、教えたこと以外のパターンの時にまた教えなければいけません。

そこで、答えを教えるのではなく、自分で答えを導けるように指導します。先の例でいうと「DBの操作に関しては公式ドキュメントのクエリビルダの説明を見ればわかるよ、ドキュメントの見方としては…」といった具合にあくまで調べ方だけ教えます。すると、次またわからないことが出てきてもまず公式ドキュメントを自分で見て解決しようとします。こうすることで自己解決能力が身につき質問の回数が徐々に減っていき、指導者も楽になっていきます。

これは俗にいうコーチングと言われる手法です。

コーチングとティーチングに関しては別の記事にもしているので興味のある方は読んでみてください。

③自身でやらず、とにかく部下に任せる

経験の浅いメンバーは基本的に実装にとても時間がかかります。ベテランエンジニアが1日でできることも1週間くらいかかります。

そんな時、「自分でやった方が早い」と思ってベテランエンジニアが自らやってしまうと若手エンジニアの成長の機会を奪ってしまい、いつまで経っても若手は若手のままです。

こんな時は思い切って時間を与えてタスクを振ってしまいましょう。

この時大切なことはところどころ進捗の確認をすることです。1日たっても1ミリも進んでいないことなんて当然のように起こります。

ここでフォローせずに1週間待ってしまうと確実に終わりません。途中途中で進捗を確認し、詰まっていたらヒントを指すようにします。

また、この自分でやらせる範囲は広ければ広いほどいいです。
一番いいのは若手エンジニアにプロジェクトリーダーを任せる形です。

ベテランエンジニアはあくまでフォローだけして基本的に自分でプロジェクトを進めてもらうようにします。すると、全て自分がやらなければいけない環境になるので完全に自分事化して一生懸命やります。

しかし、プロジェクトの規模によってはリーダーを任せてしまうと負担が大きい場合があります。
そんな時でもできる限り任せてやってもらうことが大切です。

すぐに自分だけでできるようにはなりませんが、1、2ヶ月ほどすると指示しなくても自分で進めてくれるようになってくれます。

そこまできたら、基本的にアドバイスすることはありません。フォローしなくても自分でタスクを進めてくれるようになります。

ここまでくれば指導者としても「ようやくここまできた」と実感できるでしょう。

まとめ

今回の記事は私の見解です。一般的に正しいかどうかはわかりませんし、結果的によかったのかどうかは定かではありません。

チームによっても色々な方がいるので全て同じやり方でうまくいくとも限りません。

ただ1つ言えることは「リーダーの仕事は若手の成長を待つこと」です。

色々なやり方を試して、忍耐強く育成をしていきましょう!

今回の記事で1つでも参考になることがあれば幸いです。