エンジニアを育成するということ
この数カ月間、技術的なアウトプットがあまりなくてソワソワしているytnobodyです。
近頃はマネージャー的なポジションとして、日々汗だくになりながら色々試行錯誤を繰り返しているのですが、今回は「エンジニア不足」という事象にフォーカスしてポエムを書いてみますね。
なお、色々と思うことがあって書いていて、しかも思ったことをそのまま書きだしたエントリなので、いつも以上に「散文的」かもしれないです。
※このエントリは「完全」にytnobodyの「個人的見解」です。・・・まぁ個人ブログなんて、どのエントリもそういうモンだと思いますが。
「エンジニアが足りない」とは
人々はよく「エンジニアが足りない」と口々に言います。先日のエントリで僕もそういうことを書いておりました。
しかし、「誰が発言しているのか」によって、この言葉の意味は大きく変わるもんだなあ、と最近思うわけです。
そんなわけで、僕の「経験則」に基づいて、この言葉の真意を紐解いてみようと思います。
ちなみに「エンジニア」を「デザイナー」に変えても、だいたい同じようなことが言えるんじゃないですかね。
企画サイドの人が言うと・・・
僕は企画をする人ではない(一枚噛むことはあるけど・・・)ので完全に予測でしかないのですが、「仕事を振る相手がいなくて困る」というコンテキストで「エンジニアが足りない」というケースが多いように感じます。
要するに、彼らが求めているのは「仕事を振って、ソツなくこなしてくれるソルジャー」ということになるんではないかと。
ただし人によっては、「どんな無茶な」という接頭辞がつくケースも時折あるようですね。
エンジニアが言うと・・・
これは一見わかりやすいようですが、かなり多岐にわたったコンテキストを含んでいることが多いです。掻い摘んでいくつか挙げると、
自分のタスクを肩代わりしてくれる仲間(あるいは部下)がほしい
一緒に成長できる仲間が欲しい
似たような立場の人間に精神的な支えになって欲しい
などがあるかと思います。とにかく一言でまとめると、「いまよりもエンジニアが増えると、もっと楽ができる」ということではないでしょうか。
マネージャーが言うと・・・
さて、今の僕のようなポジションの人間がここに当てはまるわけですが、概ね企画の人とエンジニアの人の中間のような考え方をしているわけです(僕だけかもしれませんが)。
そんなもんで、だいたい「仕事をソツ無くこなすレベルの、これから成長が見込めるエンジニア」が欲しいって思うことが多いですね。
ちなみに、いわゆる「スーパーエンジニア」が来てくれるなら嬉しいのですが、そういった方には相応の報酬をお支払いする必要があるでしょうし、見合った活躍の場をセッティングしないと、「やる気がでない」「僕の仕事ではない」なんてことになったりするので、別の意味の難しさがあると思っています。
経営層の人が言うと・・・
で、僕ですね。最近ココらへんが見えてきた気がするんです。
経営層の人は「コスト」「売上」について、非常にシビアな視点を持ち合わせています。なもんで、基本的にはエンジニアに対しても「スキル」より「どれだけ稼ぐか」を求める傾向にあるなぁ、と。
彼らがいう「エンジニアが足りない」はおそらく「給料以上に稼いでくれるエンジニアが足りない」だと思うんです。そりゃまあそうですよね。エンジニアも雇われれば「社員」ですし。
それぞれの主張に齟齬がないか
各位、それぞれの立場から、以下のような主張をしているっぽい、ということでした。
企画:「仕事を振って、ソツ無くこなしてくれるエンジニアが欲しい」
エンジニア:「エンジニアを増やしてくれ!そうすればもっと楽ができる!」
マネージャー:「これからの成長が期待できて、今ある仕事をこなせるエンジニアが欲しい」
経営層:「給料以上に稼ぐエンジニアが欲しい」
これを見るに、確かにどの立場の人も「エンジニア欲しい」って思っているようです。ただし、それぞれ思惑が異なるので、このまま新しくエンジニアがjoinしたところで、これはなかなかうまく行かない結果になるんじゃないでしょうか。
意外なことに、企画とマネージャー、マネージャーとエンジニアは、そこまで意見に相違がなさそうでした。
しかし、経営層とエンジニア、経営層と企画は、「コスト」というキーワードを念頭において見てみると、かなり真っ向から相反している意見です。
そして、「スーパーエンジニアには相応の報酬を」ということを書いているように、マネージャーも「コスト」については割と頭を悩ませているわけです。その点において、経営層とマネージャーは考え方が似ているかもしれません。
「今いる人材」こそが鍵を握っている
さて、一旦話は変わって、「使えないレッテルを貼られた社員」という人が世の中には一定数います(いないとは言わせないですよ?w)。僕はこのレッテルについて、「様々な不幸なミスマッチ」によって出来上がってしまったものだと考えています。よくあるものとしては、
スキルのミスマッチ
興味のミスマッチ
メンタルのミスマッチ
報酬のミスマッチ
あたりがあるかと思います。
・・・ここで昔話を一つ。
僕がまだ20代前半の頃、間違いなくこのレッテルを貼られていました。スキルとメンタルがミスマッチだったのです。毎日のように上司から嫌味を言われ、自分のスキルの無さと頭でっかちなプライドを呪っていた頃がありました。
しかし、師匠と呼べる人がその会社にjoinし、社長や上司の協力を得ながら、Linuxの基礎、サーバ構築、ネットワークの基礎、Perlの基礎・応用、CPANの活用方法、UltraMonleyを使ったクラスタリングの構築方法などなど、仕事を通じて様々なスキルを伝授してもらいました(Tcl/TkやexpectやForthみたいな暗黒技術もこの頃に伝授してもらった)。
4年経過したころ、とうとうサーバラック2つの管理をこなすまでになり、Perlプログラマとしても「一応」コードを書くことができるレベルになりました(4年も使ってその程度か、というのもありますがw)。
その後何年か経過して、今やPerl界隈なら知らない人はいないほどの大御所エンジニア(当時の僕は知らなかった)と偶然一緒に仕事をすることになり、「テストを書け」と叱責され、テストの重要性を知ったりしたわけですが、結果的にこれがPerlに深く関わるきっかけとなり、後にYAPC::Asiaに参加することになるわけです。
・・・とまあ、昔話はこのへんにしておきますね。
「エンジニア欲しい」なら、社内のノンスキルな若者を教育してみるのもひとつの手
何が言いたいかというと、
「『使えない』レッテルは、どこかに教育コストを滞納した人間がいる証拠」
だということです。教育しなければ、使えるようになどなるわけがないです。
よく「教育コストは馬鹿にならない」と言われますが、教育コストと人材採用コストを天秤に掛けてみるといいと思います。アドホックに人材採用コストを支払い続けることと、社員ひとりひとりの離職率を下げ教育コストを支払うことのどちらが将来的にお得なのか。
もし、「人材採用コストを支払い続けたほうが、教育なんかするよりも明らかにお得だろ!」という方がいるなら、少なくとも国内のIT企業が「邪悪」であることの証左だと思います。社員の離職率が高いということには、相応の理由がありますからね。
社内で悶々としている若者をエンジニアとして育成することは、長い目で見た場合、コスト効率も比較的良いはずです。
「離職率低下」と「若手の育成」が両輪となって初めて「強いエンジニアチーム」が動く
あと離職率が高いなら、これはかなり問題で、いくらエンジニアを育成しても外に流れ出てしまいます。なおマネージャークラスの頑張りによっては、離職率の低下を一時的に担うことはできますが、これは短期的かつ限定的です。
本当に離職率を低く抑えたいなら、上述のミスマッチに応じたケアが必要です。つまり、
スキル向上のための施策
興味(モチベーション)を向上するための施策
メンタル面のケア
評価方法と報酬帯の明確化
が絶対に不可欠です。どれか一つでも欠けてしまうと、風呂の栓を抜いたかのように人材流出が起こります。それぞれ経営層およびマネージャーが主に行う内容ではありますが、末端の社員としてもこれらの実現を経営層・マネージャーに働きかけることはできるはずです。
まとめ
「エンジニア欲しい」という発言は、その人の立場によって意味がかなり異なる。
エンジニアも人材なので「コスト」を無視できない。
今いる人材を有効活用するために「エンジニアとして育てる」。
「離職率低下」と「若手の育成」が両輪となり「強いエンジニアチーム」が動く
・・・まとまってないかも^^;