SSブログ

違和感 [プログラマー現役続行]

今日、多くの製品でハードウェア開発だけでなく、ソフトウェア開発が製品開発に占める比重が高くなっています。ソフトウェア開発もマイコンを使用し始めて、最初はアセンブリ言語から始まり、C言語やC++言語へ移ってきた歴史を持つメーカーも多いかと思います。つまり、日本ではアナログなハードウェアからデジタルなハードウェアへ発展する過程でソフトウェア開発の比重が高まっている企業も珍しくはありません。

ソフトウェア業界をリーディングしている米国のソフトウェア企業(マイクロソフト、Google、Oracle、Facebook等々)は、そのほとんどがベンチャー企業としての歴史を持ち、そこではソフトウェア開発が重要であり、そのためソフトウェアエンジニアは企業の中でも重要な役割を持ちます。当然のことながら、優秀なエンジニアを採用する必要があるため、採用面接にしても、日本とは全く異なる面接方式が取られている訳です。

一方、日本ではソフトウェア開発は、労働集約型の開発であると思われている、あるいは、思っているため、きちんとしたソフトウェアエンジニアを育成することが行われなかったりします。たとえば、新卒新人で採用した集団に対して、決められた教育スケジュールで決められた内容の教育を行ったりします。

普通に考えても、大学を出てきた時点で、大学時代に何を学んだかで大きく差があるのは当然です。そのため、情報工学と全く関係の無い学科の卒業生と、情報工学を専攻した学生とで同じ教育を行うことは、労働集約型開発の現れかもしれません。基礎知識やプログラミング経験が十分ではない新卒新人に対する教育と大学で学んできた新卒新人とでは異なった教育を行う必要があります。

このような集合教育が行われる背景には、一人前のソフトウェアエンジニアを育成するには年月を要するという認識の欠如と、そのためにはどのように指導・育成していくべきかという開発現場の思いが存在しないことが挙げられます。言い換えると、徒弟制度的にソフトウェアエンジニアを育てていく必要が日本企業こそ必要なのですが、その視点が全く欠けていて、頭数を揃えればソフトウェアが開発できるという発想で、単価が安いということでオフショア開発を推進したり、ソフトウェア開発は給与が安い若い人が行うものだという思っている人達が組織のトップにいたりします。

その結果、ソフトウェアエンジニアのキャリアパスを真剣に考えている日本企業は非常に少ないのが現状ではないかと思います。20年以上、自分自身でソフトウェア開発を続けながら、同時に、若手を育成していくということを同時に行ってきた人達が開発組織の中にほとんどいないのが日本企業の現状だと思います。その結果、実際のソフトウェア開発経験と言ってもほとんど無いか、若い頃に5,6年程度あったという人達が人事制度を設計するのですから、ソフトウェアエンジニアとしてのキャリアパスを考えるには無理がある訳です。

そのような人事制度の中で私がどう評価されるかということはあまり気にしていません。しかし、長期的な技術者の育成活動そのものが理解されなかったり、育成活動に対する分かりやすい成果指標を求められることには違和感を感じてしまいます。どんな違和感かというと、人事制度の役割には項目としてもともと書かれていても行っている人がいないため実質的な評価軸が存在しないということです。そのため、評価軸を求められることに違和感を感じる訳です。逆に言えば、組織としてもともと重要視されていない活動、あるいは、重要だとは分かっていても今まで行えていない活動だということかもしれません。