エンジニアの採用におけるジレンマ | A Day In The Boy's Life

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

別に採用関連の仕事をしているわけではないのですが、毎年募集する新人とかの選考には多少絡んできたりもして、エンジニアを採用する難しさって結構身にしみるようになってきました。

一緒に仕事をして行く上で人間性も大事だし、ただ仕事を任せる上での技術力や知識というのも大事だしというジレンマがあったりするわけです。

 

 

人を育てる風土を維持できるか

 

新入社員を採用する場合、会社側の立場としては即戦力を求めることはないかと思いますが、入社後の教育というものにどれだけの時間とお金をかけられるのかはその企業文化によってきたりもします。

 

入社後の数ヶ月の研修だけですぐに現場に飛ばされ、現場で仕事を覚えろといういわゆるOJTが一般的で、言ってしまえば人は辞めるもの担当者は代わるものとしてマニュアル化した教育をしているところもあれば、なるべく企業に根付いて欲しいと思い、研修期間を終わってもある程度じっくりと時間をかけて長い眼で人を育てていくところもあります。

 

こういうのも企業の業務形態や戦略的な面にも大きく左右され、下請けを使うなどアウトソースするところやオフショア開発などに傾倒しているところでは、そんなに教育に投資できないというところもあるかもしれませんし、そういった戦略をとって痛い目を見たところはやっぱり自社にちゃんと自分たちのサービスのコアがわかるエンジニアを育てないといけないとして、ちゃんと教育して囲い込むことをやっている企業もあるでしょう。

 

こういうのは企業文化レベルだけでなく、その時々の経営判断なんかでも大きく左右されるので、幾ら自部門で人を育てていこうという戦略を立ててもその風土を維持することが難しかったりもします。

 

そして、誰がその人を育てるのか、というのも大きな問題となります。

 

大きな組織で教育部門がしっかりしていればある程度の基礎レベルまでは引き上げられるでしょうけど、それでもその人がサービスの核となるエンジニアになるためには、より多くの知識と時間が必要になります。

その組織の中にはロールモデルとなる人が存在するかもしれませんが、その人を教育担当者にあてがうには多くの場合ためらわれることだと思います。

その人に教育をさせるよりすべきことが他に多々あるでしょうし、場合によってはその人が多くの時間を教育にとられることを嫌いモチベーションが下がるかもしれません。

 

また、以前に何度か書いていますが現在の業務環境だと失敗できないものが非常に多くなってきており、十分な経験を与えることが難しくなってきたりもしています。

 

経験を経てわかることも、その経験する機会が減少したことにより、幾ら人を育てていきたいと考えていても採用したエンジニアをうまく育てていけない状況にあったりするわけです。

これにはある程度の失敗を許容できる環境が無いといけませんし、周りの人たちもそれに耐えられる、対応できるようになっていなくてはなりません。

 

 

経験者か未経験者か

 

採用する対象者もこういった企業文化やそのときの戦略によって大きく変わってきます。

 

PCやプログラミングに関する知識が皆無でも人となりがよく、素直に聞いて成長していってくれればよいということであればそれほど大学のブランドや学部、何を研究してたのかといったことなんかそれほど気にしなくてもよいでしょうけど、なるべく早く業務に就けるようにするのであれば大学でやってきたレベルとはいえ、基礎知識がその後の教育に大きく左右されたりします。

 

よっぽどの熱意があったり、大きな研究室で時間を費やしていたとしても、エンジニアとして社会に出る多くの人たちの多くは業務で開発する能力として適合しないケースの方が多かったりします。

 

それは、プログラミングのスキルがあるというのと、開発業務が行えるというのは当然違っていて、悲しいかな多くのスキルは企業のルールや体制・役割によって潰されたり適合できない場合があるからです。

個人の趣味でやる分には最先端の技法やツールを使う分には何の問題もありませんが、企業内では酷くレガシー化したシステムも多数残っていたりして、むしろ個人としてやってきたスキルを活かせない持ち腐れ状態になる人もいるかもしれません。

技術一本でやっていきたいという人は、最初から独立するか研究室のようなそれだけをやれる環境を目指した方が良いかもしれませんが、一般的な企業の中ではその人の幾ら強みであろうとも、それだけをやらせるという余裕も無ければ許容もしてくれません。

 

大学で勉強してきたからといって即戦力になるとは企業の中のヒト的に誰も思っては無いけど、基礎レベルとして構造が理解できるかどうかって結構その後の教育にも大きく影響を与えてきたりもします。

 

未経験者は素直で吸収も早いかもしれませんが、根本的に開発における理系脳のようなものについてこれない人もよく見かけます。

暗記ができても応用できないという感じで、プログラミングの構文を覚えても仕様どおりに組み立てるという応用が全然できないという具合に。

 

そういう意味で当然経験者の方を優遇したりもするのですが、必ずしもチームにある空いているポジションというのはバリバリできる開発者ばかりというだけでなく、運用を組み立てたりユーザーとの業務調整や企画をする人など幅広いところで役割があるので採用側もどのポジションに人を入れるかで変わってくるところではあります。

 

全員4番打者で打順を組み立てる必要は無いですし、当然そんなことでチームがうまく回るわけでもなく、フルスタックエンジニアなんて要らない、ミドルだけまたはネットワークだけができれば十分と思っているところもあるわけなので、どのポジションの人を採用するかというのをきちんと考えておかないと、何でもできる人材像を勝手に描いてしまって、入社後のその人の能力とのギャップに組織が苦しむことになります。

 

 

まとめ

 

新卒採用にしろ、中途採用にしろ、社員として雇ってしまったからには日本文化的にその人を急に辞めさせることもできませんし、メンバーとそりが合わない人や期待したスキルを持っていないという状況で現場を混乱させることは避けたいところです。

 

ですが、履歴書や筆記試験や採用面談の少ない情報や短い時間の中でその判別をするのは凄く難しいことですので、ある程度企業側も期待することや許容範囲を決めておく必要はあると思います。

 

そういったときに、ちゃんと人を育てることができるのかや、今の体制の課題からどの役割を埋めて欲しいのかというその人のキャリアも含めてきちんと考えておかないと、何時まで経っても組織の課題は解決されずに無駄に人だけが増えてしまうということになってしまうのだと思います。