Through the kaleidscope

プログラミングとかシステム開発とか諸々の思考場所

企業はプログラマを育てるべきか

medium.com

ソニックガーデンの倉貫さんのエントリが話題になってました。そこからMedium上でのやり取りを見て感じたことを書きます。

倉貫さんの主張

タイトルは「量産的」だの「撲滅」だの刺激的ワードがあり、そこに反応する人もいたようです。しかし主張としては以下に集約できるでしょう。

  • 即戦力を求めるあまり、逆に地力の無いプログラマが増えている
  • できないプログラマを使って、システム開発が滞りなく進むのか
  • 時間がかかっても基礎をちゃんと教える教育を行う必要がある

プログラマの教育をしっかりやって、出来ないプログラマが淘汰されるようにしないといけないということですね。成果を与えられる側のユーザにとって、出来ないプログラマたちが作り上げたシステムに価値を置くかどうか?を考えると、至極もっともな結論です。

育てることの問題

ただ育てるとはいえ、今の企業がそういった基礎をみっちり身につけるような教育を施せるかというと疑問が残ります。企業の教育と言っても大抵が新人たちに対する3~4ヶ月ほどの新人教育とそこからのOJTで現場で経験を積む流れです。

キャリアの初めの数ヶ月のみの教育で優れたプログラマを生み出せというのは酷な話です。というか不可能です。その時点で優れたプログラマであっても、日進月歩で新しい技術の話が流れてくるこの業界で、必要な技術を都度キャッチアップできないと、以後40年近く続く自身のキャリアを全うすることは出来ないでしょう。

僕自身の新人たちの教育に携わったことがあります。いくら本を読ませコードを書かせてレビューをして正しい書き方を教えたとしても、適性がない人ややる気の無いような人は伸びません。僕の考えとしては、技術者が伸びるためには常日頃の個人の努力が不可欠である、ということです。

技能は個人に宿る

プログラマ個人の側で考えてみます。今の時代、ひとつの会社で勤め上げるというのはかなりのレアケースではないかと思います。いつ倒産するか分からないし、自分のいる会社の事業内容がいつ時代遅れになりジリ貧になるかも分からない。人にもよりますが、数年いればもう飽きてしまって他の会社に転職したくなる人もいるでしょう。もうその会社のためだけに技術を学ぶというやり方だと、年を取ったときに行き詰まる可能性があります。だからこそ、プログラマは学び続けなればいけないということが言われています。*1

プログラマ自身が何を学び、何を伸ばすのかというのを、好みや市場のニーズにあわせて自身のキャリアを積み上げていく姿が、僕にとっての理想的な姿です。企業は単なる数あわせでリソースを補充するのではなく、技能を持った質の高いプログラマを優先的に採るようにするのが健全ではないでしょうか。一方でプログラマは己自身で技能を磨きそれをアピールする必要があります。

問題点

勝手に僕の理想的なことを書きましたが問題点はあります。

まず新人を採るメリットが薄くなることでしょう。老齢になっても働くことを要求される社会になりつつありますので、新人を採るよりも即戦力の65歳を採用するほうをとる企業もあるかもしれません。新卒の時点で、すでに十分なキャリアを持つプログラマたちと同じ土俵に立つことは不利なのは明白です。

それを承知の上で新人を採用して教育するのが従来のスタイルでした。もしかすると新卒一括採用とともにそういったスタイルが見直されるのかもしれませんね。

*1:それが好きでできるならいいですが、強迫観念になってしまうといささか不健康な気もしますが、また別の機会に書きます