未経験エンジニア2名をコーチング型で育てた方法

答えを教えないコーチング型の指導で未経験エンジニア2名を育成した実践記録。タスクアサインの設計・質問への返し方・段階的なコードレビューの変化まで具体的に解説します。

「幼稚園じゃないんだよ」と、心の中で毎日思っている。

口には出さない。でも3人体制で回しているチームの現実は、なかなかそういうものだ。未経験から育てた2人と、自分の話を書いておく。

2人の部下——正反対のタイプ

1人目は、自分とほぼ同じ時期に入社した、当時アルバイトの新卒だった。完全に未経験。

最初に気になったのは会話だった。相手が喜ぶような言葉を選ぶ、変に丁寧に振る舞おうとする——でも実態が伴っていない。YesかNoで答えられるように質問しても、聞いていないことまで話し足してくる。要領を得ない。これが今も日常茶飯事だ。

ただ、根性はあった。どれだけ厳しく言ってもへこたれない。技術的には着実に伸びてきて、今では後輩の指導も任せている。会話が成立しない問題は、まだ悩みの種のままだが。

2人目は、自分が一次面接に関わって採用した人間だ。入社後、居眠りが始まった。やる気が見えない。他のメンバーが指導したが「お手上げ」と言ってきた。

自分で呼び出して面談した。次やったら上層部に報告すると伝えた。また居眠りした。本部長と人事部長に報告して、三者面談になった。本部長から「病院に行け」と言われ、今ナルコレプシーの疑いで受診している。

採用に関わった人間が問題を起こすのは、こたえる。

コーチング哲学——誰かに教わったわけじゃない

「答えを教えない。自分で考えさせる。相談にはいつでも乗るが、答えはこちらから出さない。」

これは誰かに教わったわけじゃない。自分が行き着いた方法だ。

教えられたことより、自分で考えて至ったことの方がはるかに定着すると気づいたから。自分がそういうタイプだった、というだけかもしれない。でも、それが今の指導の軸になっている。

質問が来たときの返し方はこうだ。

「どこで詰まってる?」
「エラーメッセージは何と言ってる?」
「自分ではどう解決しようとした?」

答えを渡さない。問題を言語化させる。言語化できた瞬間、自分で解決策が見えることが多い。それでも進めないときは、ドキュメントのリンクだけ渡す。方向性だけ示す。コードの一部だけ見せて「残りは自分で」と言う。

詰まる体験が、一番の成長だと思っている。

タスクアサインは「失敗できる設計」で

最初のタスクは影響範囲を限定する。

× 「このAPIを実装して」(範囲が広すぎる)
○ 「このエンドポイントのバリデーション処理だけ書いて」

最初の1ヶ月は、本番に影響しない・他の機能と独立している・1〜2日で完了できる、この3つを基準にした。失敗しても大丈夫な環境を用意した上で、あえて詰まらせる。

コードレビューは段階的に手を離した

フェーズレビューのスタイル
0〜3ヶ月全行コメント。理由を必ず説明
3〜6ヶ月重要な箇所のみ。「なぜ?」を質問形式で
6ヶ月〜大枠のアーキテクチャのみ。細部は任せる

「こうしてください」ではなく「なぜこう書いた?」と聞く。説明できれば通す。説明できなければ一緒に考える。

接客業からの接続

小売業で主任をしていたとき、新人にレジ操作を教えていた。手順だけ教えると、イレギュラーな場面で動けない。「なぜこの手順なのか」を理解させることで、応用が効く。

エンジニア育成も同じだ。コードの書き方を教えるのではなく、「どう考えるか」を育てる。本質は変わらない。

育てながら、全部一人で回している

2人を育てながら、自分はコード管理・要件定義・技術管理・プロジェクト管理・タスク管理・採用・チーム設計まで全部やっている。

コーチングの話を書いていて思うのは、「育てる余裕がある状態でやっていたわけじゃない」ということだ。余裕がないまま、それでもやるしかなかった。

「幼稚園じゃないんだよ」と思いながら、明日もまた1on1をする。


関連記事: テックリードとして3年間、仮面を被り続けた話