はじめに
こんにちは。私はN予備校のバックエンド開発に携わっています。
N予備校バックエンドでは2021年度に1名の新卒エンジニアが配属となりました。 ドワンゴの新卒エンジニアはエンジニア研修を受けたあと、配属された部署で個別研修や実際の業務を通じてOJTを受けます。 本記事では、メンターとして2021年度新卒エンジニアが入社してから1年のあいだに行ったフォローアップについてまとめます。
メンティーの len さんが執筆した記事は こちら になります。
新卒エンジニア研修の内容については、別の方がまとめた記事を公開しています。
メンティー入社前
メンティーが入社するまでは、パーソナリティの把握に務めました。 パーソナリティを把握しておくことで、苦手な部分をメンターが迅速にサポートでき、目標に向かって成長を促せるようになります。
事前に人事からエントリーシートや一次面接〜最終面接までの評価結果をもらい、当時の面接官がメンティーをどのように感じたのか、どのように評価したのかを確認します。 また、弊社では1次試験を受験する前に適性検査を受験することになってます。メンティーのパーソナリティを把握する上では、その結果も非常に役に立ちました。
具体的には以下の項目を確認するようにしました。
- 価値観
- 仕事に対して
- 技術に対して
- ライフワークバランス
- 計画性やチームワーク力
-自ら計画できる人なのか
- リスク管理ができるか
- 複数人で仕事ができるか
- 成長意欲 -モチベーションや目標
- ストレス耐性
- モチベーション維持
- 苦手なことへの対処
しかし、この時点では実際に顔を合わせて話をしていないので、大まかに確認する程度に留め、実際に顔を合わせて話をするようになってから自分の想像とすり合わせるようにしました。
全社エンジニア研修
新卒エンジニアは、入社後にビジネスマナー研修などを経て、エンジニア研修を受けます。4月から6月までの3ヶ月間です。 具体的な研修内容については、以下の記事をご覧ください。
4月にはメンターとメンティーの顔合わせがあり、自己紹介や今後のメンタリング予定などを共有します。 メンタリングとして具体的には、毎日15分の 1on1 を実施しました。
1on1
1on1を通して以下のことを行いました。
- パーソナリティの把握
- 研修課題の相談・助言
- 個人的な相談・悩みなど、業務内外問わずのサポート
予め想像していたパーソナリティを 1on1 ですり合わせを行いました。 1on1 では自分だけが見られる議事録をGoogleドキュメントで用意し、1on1の内容をまとめました。 どのような助言をしたか、その助言の結果メンティーの行動がどのように変わったか、助言が適切だったか、を振り返るためです。
また、準備に用いたエントリーシートなどからある程度の技術経験はわかりますが、1on1序盤では特にエンジニアとして以下の経験を確認しました。
- 言語、フレームワーク、ミドルウェア
- OS
- 開発手法
- 一人/複数人
- ウォーターフォール開発/アジャイル開発
- これまでの開発経験における主な役割
- エンジニア/リーダーなどのまとめ役/企画立案
1on1 は1年間続きましたが、一貫して以下の点について考慮しました。
- 観察
- 例えば表情などから、少し疲れているようであれば疲れている原因をそれとなく聞く
- 業務負荷がかかっているようなら研修のやり方や働き方の改善を促す
- 傾聴
- リモート環境下では実際に合う以上にノンバーバルコミュニケーションが重要
- カメラ越しだと意外と伝わらない、少しオーバーなアクションくらいが丁度よい
- 頷きなども交えて相手の話を聞く姿勢を崩さない
- リモート環境下では実際に合う以上にノンバーバルコミュニケーションが重要
- コミュニケーション
- 否定しすぎず、まずは肯定する
- 助言
- 最初から答えを教えず、ヒントや考え方を小出しにしつつ、自ら考えさせる
N予備校キャッチアップ
エンジニア研修が終わると、新卒エンジニアは配属部署にて配属後研修やOJTなどを経験します。N予備校バックエンド開発ではプロダクトコードを読んでもらい、サービス理解を進めてもらいました。 N予備校ではマイクロサービスアーキテクチャを採用しており、特に重要なマイクロサービスを中心に理解をしてもらいました。 バックエンドのアーキテクチャについては別記事にまとめてあります。
また、チーム内で歓迎会を行いました。
スキルマップ
スキルマップをGoogle スプレッドシートで作成し、各スキルに対して習熟度を記入してもらいました。 メンティーの現時点のスキルと習熟度を確認して、未習熟なスキルを伸ばしていくことが目的です。 スキルマップには、N予備校バックエンドエンジニアとして理解していて欲しいスキルを記載しました。
新卒エンジニアは入社後の一定期間、フレックスタイム制での就業となります。1日8時間のうち、勉強2時間・タスク6時間などに分配して、未習熟なスキルについて勉強する時間を設けるようにしました。 勉強するための教材・本の提案や、勉強方法についての適切なアドバイスを行いました。
習熟度と言っても、様々なレイヤーがあると考えます。
- 知識として知っている
- 自分で手を動かせる
- 人に教えられる
勉強した結果を資料に残してもらったりチーム内で勉強成果を発表させると、知識として深く定着すると考え、勉強成果の発表会も行いました。 今回メンティーには習熟度が低かった kubernetes, 認証・認可の2点について学んでもらいました。成果発表会の参加者からもフィードバックをもらうことができ、メンティーの成長に繋がったと考えます。
配属後研修の計画
メンティーにはN予備校のキャッチアップをしてもらいつつ、メンターは配属後研修の計画を練っていきます。 個人によって配属時のスキルセットは様々です。配属後研修は、メンティーの現状のスキルを見定めて、OJT開始までに習得して欲しいスキルを習得してもらうことが目的です。 日々の 1on1 やスキルマップでメンティーの現状のスキルを見定めていますので、配属後研修を終えてOJTまでにメンティーにはどうなってほしいかをイメージしながら計画しました。 今回はメンティーのスキルと照らし合わせて、主に以下の軸で計画してきました。 重要なことは、メンティーに合った課題を考えることです。
- 技術力を向上してもらう
- 仕事の仕方を覚えてもらう
- 品質向上の視点を養ってもらう
- 新規機能開発の経験をしてもらう
配属後研修
簡単すぎず、難しすぎず、N予備校バックエンドエンジニアとして最低限知っていてほしい・体験してほしいことを課題に盛り込みました。 特に、品質向上という点においては、以下の2点について考えてもらいました。
- 改善できそうなポイントを洗い出す
- 対応策が複数考えられる場合はpros/consを考える
- コスト・効果を定量的に表してROI(Return On Investment, 費用対効果)が高い改善から着手する
計画した研修内容を以下の要領にまとめて、メンティーに共有した後、配属後研修を開始しました。
- 概要
- 研修課題を通して体験してもらうこと
- 進め方
- 改善点抽出・工数見積・設計・開発・リリース・振り返り
- 体制
研修内容についてはメンティーの len さんが執筆した記事にまとまっています。
配属後研修が終わった後に、KPT(Keep, Problem, Try)に沿って振り返りを行いました。 今回良かったことは今後の開発に引き続き生かしてもらいつつ、今回悪かったことは今後の開発に持ち越さないようにできたと考えます。
ペアプロ
スキルマップにおいて習熟度が低かった認証・認可の仕組みを勉強してもらったので、ライブラリを使わずOAuthを実装することをペアプロのテーマに選びました。 また、一般的なペアプロの手法に沿って実施しました。 言語・フレームワークは、これまでメンティーの開発経験のないTypeScript, Express.jsを用いることにしました。
実はメンターは、メンティーと顔を合わせる前に研修を受けます。その研修で学んだことを日々のメンタリングの中で実践していくのですが、その研修の中で共感した名言があるので紹介します。 それは、人材育成論で有名な山本五十六の名言です。
やってみせ、言って聞かせてさせてみせ、ほめてやらねば、人は動かじ。 話し合い、耳を傾け承認し、任せてやらねば、人は育たず。 やっている、姿を感謝で見守って、信頼せねば、人は実らず。
ペアプロでは上記の指針を軸に実施しました。ペアプロが山本五十六の名言を実行する良い手法だと考えたからです。
- やってみせ、言って聞かせてさせてみせ、ほめてやらねば、人は動かじ。
- どのようなことを考えてプログラムを書くか、まずは自分がやって見せる
- なぜそのようにプログラムを書いたかなどを説明し、やってもらう
- よく書けたら肯定する
- 話し合い、耳を傾け承認し、任せてやらねば、人は育たず。
- うまく動かないことや設計方針に困ったときは、なぜ動かないのか、どうしたいのかをよく話し合う
- メンターは答えを分かってもすぐには教えず、メンティーに考えてもらう
- メンティーが考えた意見に耳を傾けて、実際にやってみる・やってもらう
- うまく行った場合は褒める、うまく行かなかった場合はなぜなのかを一緒に考える
- やっている、姿を感謝で見守って、信頼せねば、人は実らず。
- メンティーにプログラムを書いてもらっているときは信用して見守る(なるべく口出しをしない)
実践した結果、ペアプロの本来の目的である開発文化の共有・スキル向上・チームワーク向上をスムーズに行えました。 それだけでなく、以下のことも身についたと考えます。
- 複数の手法を考えて、話し合いによって物事を決められる
- トライアンドエラーを繰り返し、失敗した原因を自ら追求できる
- メンターはすべてを教えないため自分で考える癖がつく
OJT
配属後研修が終わると、実際の開発案件に参画してもらいました。 ドワンゴでは各デバイスに通知を送信できるPush通知基盤が存在します。 N予備校もユーザへの通知にPush通知基盤を利用しています。 その基盤のAPIがv1からv2へ移行するとのことで、N予備校もv2 APIへの呼び替えなど、移行対応を行いました。 ちょうどこの頃1名中途で入社された方がおり、主にその方とメンティーの2名で設計・開発してもらいました。
v2 APIとの通信でgRPCを用いることになったので、メンティーにはgRPCのキャッチアップを行ってもらいつつ、実際にチケットに沿って開発してもらいました。 配属後研修では仕事の進め方や、対応策が複数ある場合の考え方などを身に着けてもらったので、その実践として適した案件でした。メンターの私も設計レビューを行いました。
本番環境へのリリースも経験してもらいましたが、偶然にもリリース後動作確認で不具合が出たので、ロールバックを行ってもらいました。 影響はかなり軽微でしたが、リリースの緊張感・責任などを感じてもらうことができたと考えます。
おわりに
私は1年を通してメンティーの助言者・相談者として、キャリア形成上の課題解決をサポートし、個人の成長を支えました。 また、職場内での悩みや問題解決をサポートしました。 振り返ってみると、一人前のエンジニアに育てるだけでなく、精神的な部分まで及ぶ助言・支援ができました。
大事なことは、人の成長速度は人それぞれということです。 課題設定の際にはメンティーの現在のスキルに合わせて、ゴールをどこに設定するか、いつまでにゴールを達成してもらいたいかを具体的にイメージしました。 特に、山本五十六の名言をペアプロで実施したことによって、メンター・メンティー共に大きく成長できました。
今回のケースが広く一般に適応できるとは限りませんが、今後エンジニアのメンターをされる方の一助になれば幸いです。
We are hiring!
株式会社ドワンゴの教育事業では、一緒に未来の当たり前の教育をつくるメンバーを募集しています。 カジュアル面談も行っています。 お気軽にご連絡ください!
開発チームの取り組み、教育事業の今後については、他の記事や採用資料をご覧ください。
また、新卒採用も積極的に行っていますので、エントリーをお待ちしております!