#はじめに
先日、第1回 エンジニアリングマネージャー勉強会と、新卒エンジニア育成カイギに参加させていただきました。
勉強会を通じて、自分が今まで行ってきた新人教育の方向性はそう間違っていないのではと感じました。
そこで、来年入社してくる新卒や、それをフォローするであろう後輩のために、
そして新人教育を担当している方の参考になればと、記述致しました。
#立場
新卒3年目の平社員で、社内の新卒担当みたいなポジション(ただし面接は出れない)
これまで後輩が6人ほど入社して、3人のOJTもしくはメンターを担当致しました。
他の後輩に関しても、研修のフォローを行うなど自発的に関わるようにしてきました。
#育成方式
##基本方針
新人の教育は以下の三要素で完成すると考えています。
・OJT(On the Job Training)
・OFFJT(Off theJob Training)
・SDS(Self Development System)
OFFJTで技術情報に関する、業務を行う上での汎用的で最低限の知識を教えます。
OJTで業務を行う上での、特化した知識を一緒に仕事を行う中で学んでいただきます。
そして、OFFJTとOJTで得た知識や持ち前の技術的好奇心をベースにSDSで
自ら学習する習慣を身につけてもらいます。
これらをバランスよく行わないと、OJT担当者や、新人に負荷がかかってしまうと、私は考えています。
##OJT
私が所属するチームでは、チーム全体でOJTを行う方式をとっています。
これは、1人目のOJTを行なっていた際に、普段通りの業務+OJT+メンターを行ない、だんだんとタスクが積まれていく状態になりました。
これをみかねた上司が、チーム全員でOJTを行うことを提案してくださりました。
2人目のチーム配属者はチーム全員でOJTを行うことで、チームメンバーそれぞれの業務知識を吸収し、いいとこ取りをして下さりました。
おかげで、この取り組みは経営陣にも認められ、3人目以降の配属者もこの方式でOJTを行うことができました。
##OFFJT
弊社では、社外研修を利用することで、プログラミングの基礎的な知識を身につけていただいています。
しかし、社外研修だけでは網羅しきれない部分や、講義形式ゆえの理解漏れが存在していました。
そこで、週一回の帰社日を利用し、研修のフォローを行うようにしました。
また、理解度を確認するために、簡単なテストを用意したり、
新入社員が複数の場合は、理解度に合わせて別々にフォローを行いました。
(その場合は私の同期や、後輩に協力していただきました)
また、チームに配属されてからも「調べ物学習」という課題を、
業務で余裕があるうちに行なっていただきました。
これは、始業開始時に課題を出します。
(例:開発工程を調べる、RDB以外のDBを調べる)
そして、業務終了後に、調査結果を発表していただきます。
発表後は質疑や、調べ方のフォローを行い、エンジニアにとって重要な検索の仕方や、
研修では抜けがちになる業界の知識を身につけてもらうことが狙いです。
##SDS
入社直後と、チーム配属後、OJT終了後の3段階で行うようにしております。
入社直後は、資格取得を目指してもらいます。
幸い弊社には資格報奨金手当が存在し、外部研修ではJavaを行なっているので以下の資格取得を目指してもらっています。
・Oracle Certified Java Programmer, Bronze SE 7 / 8
・Oracle Certified Java Programmer, Silver SE 8
・基本情報技術者試験
上記の外部研修でのフォローでは、上記の資格取得のフォローも行なっております。
チーム配属後は面談を通して、何をやりたいかを考えてもらい、やりたいことに対するフォローを行います。
最初に何をやりたいかよくわからず、答えが出ない時期にはこちらで選択肢を出し、
視野を広げるフォローを行うようにしています。
詳細については下記の面談について記述します。
OJT終了後はできるだけ社外を見てもらうようにしています。
人力キュレーションや、社外の勉強会、自分が読んで良いと感じた本を貸し出すことで様々な刺激を受けてもらえるようにしています。
##面談
OJT中は最低でも1時間の面談を1週間に1回行うようにしています。
面談では、雑談を挟みつつ進捗や、困っていることなどをヒアリングしています。
また、ここで将来についても考えてもらっています。
なぜ数ある職業の中で、エンジニアを選択したのか、エンジニアとなって将来何をしたいのか、そのためには何をしたらいいのか、問いかけることで自ら考えてもらいます。
また、何をしたら良いか分からない時期はとりあえずでこちらから選択肢を提示するようにしています。
ホワイトボードに書いているとすぐにいっぱいになってしまいますが、
自分が思いつくだけの選択肢を出すことで、
将来に対する視野を広げたり、自己学習の学習内容を提案したりします。
新人が複数存在する場合は、面談後にメンター同士でフィードバックを行い、
お互いにアドバイスを行なったりします。
また、社内全体で新人教育に関わって欲しかったこともあり、
このフィードバックで他の社員に参加してもらい、アドバイスを伺ったり情報共有を行いました。
ですが、これに関して2人同時にOJTを行なっていた時期が短かったこともあり、
2回ほどしか実践できませんでした。
##目標
私、個人の目標としては以下を目標に新人教育を行なっています。
新人が、退社したいと感じた時に、
すぐに退社できるだけのメンタル、自己学習の習慣を身につけてもらう。
賛否両論あると思いますが以下の狙いがあります。
可能な限り仕事に関してはポジティブに取り組んでほしと思っています。
それは強制ではなく、自分が今の会社を選んで働いているのだと認識してもらい
会社に対して当事者意識を感じて欲しいからです。
また、いつでも出ていけるという心理的安全があるので、
失敗を恐れず、積極的な提案や改善案を出してくれるのではと期待しています。
ちなみにこの目標については新人にも上司にも共有しています。
#注意していること
##馬を水辺に連れて行くことはできても、水を飲ませることはできない
馬が水を飲むかどうかは馬次第なので、人は他人に対して機会を与えることはできるが、それを実行するかどうかは本人のやる気次第であるという意味
あくまで、大事のなのは本人のやる気です。
新人に対しては、できる限り機会や刺激を与えるようにしています。
しかし、OJT終了段階ではこちらから積極的に与えることはやめます。
一通り、情報収集の仕方や、目標設定の手助けは行なっているので、
続きは本人が求めるなら与えるというスタンスに移行します。
(甘やかし過ぎるのも良くないので)
時たま気が向いた時には、セミナーに誘ったり本を貸したりしますが、
仕事外のことで強制的に行わせるのは、費用対効果が悪く、
悪い時には苦手意識を植えつけてしまうことに繋がるのではと考えているからです。
しかし、水が飲みたいといえば全力で水を用意しようとは考えています。
以前、協力会社の方でプログラミングを勉強したいという方がいらっしゃったので、
終業後に付き合って、その方が契約を満了されるまで勉強を行いました。
さらに、本当にプログラミングをしたいならとキャリアの相談にも乗りました。
##あくまで、本人に決定させる事
自己学習の習慣を身につけてもらうために、あの手この手を尽くしますが、
勉強内容や、方法などは強制や誘導しないようにしています。
これはやはり、自分でなぜその分野を勉強したいかを些細なことでもいいので、
理由を持って勉強してほしいからです。
ですので、面談の中で学習内容の選択肢を出すときなどは、
注意をするようにし、内容に偏りがないか他にキャリアや、学習内容があるのではないかと、
提案できるものは可能な限り提案し、選んだ際も理由をしっかりと確認しています。
#最後に
私のエンジニアとしての目標は、現在のところ以下になります。
世の中のエンジニア人口の増加に貢献する
その第一歩として、会社に入社してくださる新人に対して、
こうしたことを行なっています。
ですので、この記事が参考になったという方がいらっしゃれば、
また一歩目標につながることになります。
これからも目標を達成するために、自己研鑽を積み、
一緒にこれらのことを行なってくれる仲間を増やしていきます。
#参考資料
##記事系
新入社員が来てメンターになれって言われたけど、どうすればいいのかという対話テクニック
ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習
新入社員研修の三つの柱とは? OJT・Off-JT・SDS
##書籍系
新人教育で参考になった書籍 5選
Team Geek ―Googleのギークたちはいかにしてチームを作るのか
伝説の新人 20代でチャンスをつかみ突き抜ける人の10の違い
サーバント・リーダーシップ入門
嫌われる勇気シリーズ
アメリカ海軍に学ぶ「最強のチーム」のつくり方
##その他
私を教育してくださった先輩方