新人研修で悩む

4月といえば、出会いの季節です。
14名の新入社員が入ってきました。

うちの会社の技術の人は、ほとんどが客先常駐という勤務形態になっている関係で、新人研修を行うには困難が伴います。

だれか1人が専属で新人研修を行えればいいのですが、それぞれが業務を抱えている中でやらねばならないため、日替わりで別々の人が講師を担当することになります。

研修の期間は、1週間+αといった感じ。
プログラミングに関する研修は、その中で4日間しかありません。

4日という短い期間では、教えられる内容は限られます。
しかも、新人のプログラミングに関する経験値はバラバラです。

この状況下で、最大の学習効率を上げるためには、課題のテーマがとても重要になります。

今年のプログラミング研修の課題は、C言語の基礎学習を2日、用意しておいたソースを解析して機能追加するという課題を2日、という内容です。

私はプログラミング研修の最終日を担当することになりましたが、課題の内容を決める作業にはノータッチでした。

できる人よりも、経験が少ない人を優先的にフォローする目的があったらしく、課題はそれほど難しくありません。

確かにプログラミング未経験者にとっては、これぐらいの難易度でも十分に難しいため、妥当なラインなのかなと思っていたのですが、実際に新人研修が始まってみるとぜんぜんコードが書けないという人は1人もいませんでした。

ささっと終わらせてしまう人と、思うように進まない人の、2つのパターンに分かれました。
ある程度勉強してきた人にとってみれば、復習にもならないぐらい簡単な内容なのでしょう。その人たちは、ぜんぜん余裕だなーと思ったはずです。

でも、業務のプログラムは当然、何十倍、何百倍のコード量があり、課題よりはるかに難しいです。課題をこなせたからといって、余裕だと思われては困るわけです。

危機感をもって、必死に勉強するぐらいの気持ちを持ってもらわないと、客先に出されたときに、きっと失敗するでしょう。

課題のレベルはそれなりに難しくして、良い意味での失敗を経験させることが必要ではないかと考えます。

自社の研修なら、いくらぐっちゃぐちゃのソースコードを書いて、ボロボロのプログラムができあがったとしても、フォローできます。
逆に、実際の業務が始まってからは、そんなぐちゃぐちゃのソースを書かせるわけにはいきません。

かといって、仕事をやっていく自信まで失わせるほどの失敗を経験させてしまっては、かわいそうだし、何のためにもなりません。
また、プログラミングに慣れていない人を、手も足も出ない状態にしてしまっては、意味がありません。

課題のテーマは、業務アプリの体裁を保ったまま、できるだけ簡略化したものを作らせるのが良いのではないでしょうか。
実際の開発工程を、ロールプレイするためです。

システム構成図と詳細設計書を渡し、読んで理解してもらった後で、プログラミングとテストを行い、完了したら報告してもらいます。

とりあえず的でもなんとか動くものができるところまでは、全員が到達できるように、できるだけ簡略化した仕様にします。

プログラミング経験が少ない人にとって、自分で作ったものが動くことは、とてもうれしいことです。ここで、きちんと褒めておき、達成感を感じてもらいます。

しかし、新入社員で、例外系まで意識してプログラムを書ける人は稀なので、不正な入力で簡単に落ちるようなコードになっているはずです。
ある程度できる人には、ここでボッコボコに例外系をつっついてやり、エラー処理や例外処理の組み込みをやってもらいます。

もっとできる人には、一見簡単そうに見えて、そう簡単にはできないような、仕様変更による機能追加をやってもらいます。

これにより、できる人とできない人の差が極端に見えないように仕向けることができるはずです。
80:20の法則で、細かい部分を作りこむ作業は、時間がかかるものなのです。
できる人とできない人の差は、あって当然なのですが、ことにプログラミングに関しては、その差が極端になりがちです。
プログラミング未経験に近い人からすれば、それなりにプログラミングを学んできた人と自分を比べると、とてつもなく大きい差に感じてしまいます。
その差は最初は大きいのですが、経験値をつめば次第に小さくなる性質のものです。最初の時点で差を感じて、挫折感を感じる必要は無いですから。

また、研修の開始時点で、マイルストンを設定して、必ず研修終了時までに、プログラムを完成させるように命じます。残業してでも、必死になって、課題に取り組んでほしいからです。

来年度の新人研修は、こんな感じでやってみたいと提案してみるつもりです。