SSブログ
ソフトウェア開発と人事戦略 ブログトップ

ソフトウェア開発と人事戦略(2) [ソフトウェア開発と人事戦略]

Java研修を長年続けてきて、近年、非常に進捗が悪くなっています。その理由を考えてみると、基礎的な事柄を知らないままソフトウェア開発に従事している人が増えているためだと思うようになってきました。

ここでの基礎的なこととは、一般的な「データ構造とアルゴリズム」、オペレーティングシステムに関する基礎知識、ハードウェアに関する知識です。それに加えて、デザインパターンに関する知識も欠如しているため、その都度、Javaとは関係ないことを説明しなければならいことが非常に多くなっています。

データ構造とアルゴリズムに関しては、基礎的なことを理解していない人が多く、ハッシュテーブルを説明したりO表記を説明できたりする人は皆無だったりします。オペレーティングシステムに関しても、仮想メモリをサポートするためのページングの仕組みを知らなかったり、Unixでのシステムコールを用いたプログラミング経験が全くなかったりします。デザインパターンにいたっては、全く勉強さえしたことがなかったりする訳です。

このようなレベルの人達が、『プログラミング言語Java第4版』や『Effective Java 第2版』を読んで理解するのは無理な場合が多いです。たとえば、『Effective Java 第2版』の項目6「廃れたオブジェクト参照を取り除く」のp.24の最後に次の一文があります。
極端な場合には、そのようなメモリリークは、ディスクのページングを起こしたり、(以下省略)
ここで、「ディスクのページングとは何か」と質問しても答えられなかったりします。そうなると、説明することになるのですが、このレベルを都度説明していては、全く進まないことになります。

なぜ、基礎的なことを知らないかというと、そもそも、大学での専攻が情報工学ではないということです。全く違う専攻で、就職してからプログラミングをするようになる人が多くなっているからだと思っています。

IT技術者が不足していると言われる今日であれば、大学で情報工学を専攻した方が、就職には全く困らないにも関わらず、情報工学の競争率が高いとは聞きません。大学の専攻とは異なるけど、専攻では職がないためなのか(または別の理由からなのか)、多くの学生がソフトウェア開発に応募してしまうし、企業もそのような学生を採用しないと情報系として採用したい人数を確保できない状況になっているのではないかと思います。

さらにおかしいことは、大学で情報工学を専攻した学生と大学で文系だった学生がソフトウェア開発として採用されたとしても、日本の多くの企業では給与が同じだということです。そして、同じ内容の基礎教育を受講し、情報工学を専攻した人は内容が易しすぎるし、文系だった人には内容が難しすぎるという教育を多くの費用をかけて行っていたりします。

日本の多くの企業(メーカー)でのソフトウェア開発要員の採用およびソフトウェアエンジニアの育成は、大丈夫なのでしょうか?
コメント(0) 

ソフトウェア開発と人事戦略(1) [ソフトウェア開発と人事戦略]

ソフトウェアエンジニアの生産性は、個人差が大きく10倍以上の差となると言われますが、マルチスレッド設計・プログラミングになると数十倍になります。つまり、エンジニアのスキルを上げる方が、圧倒的に組織としての生産性を高めることができるはずです。

日本のメーカーの多くは、新卒新人を採用する段階で、ソフトウェア開発に従事させる予定であっても、大学時代のコンピュータに関する学習やプログラミング経験をあまり問うことなく採用して、社内の研修やOJTで育てれば良いということになっていたりします。さらに、年功序列的制度の弊害により、能力に関係なく、横並びの給与体系となっています。

本来ならば、個人の能力差が非常に大きなソフトウェアエンジニアの採用に関しては、採用時点で米国のソフトウェア会社が行っているような採用面接を行い、ソフトウェア開発に関する能力があるのかを見極める必要があります。しかし、実際には、もう10年以上ソフトウェア開発を実際にしたことがない部長や事業部長が面接して採用する訳です。そして、あとは現場によろしくという次第になります。

日本のメーカーは、横並びの採用ではなく、ソフトウェアエンジニアに特化した採用を行うことで、ソフトウェア開発組織の生産性を向上できるはずです。そして、採用してしまってからソフトウェア開発に興味がない人に興味を持たせるような努力や無駄な集合教育をする必要がなくなります。

もちろん、単に採用を強化しただけではだめで、ソフトウェア開発組織そのものが良いカルチャーを持っていなければなりません(「ソフトウェア開発組織が持つべきカルチャー」)。そして、能力が高く、高い品質のソフトウェアを開発し、組織のカルチャーを良くする活動を行うエンジニアを高く評価する必要があります。

残念ながら新卒の採用は、戦略的に行われているというより、慣例に従って行われている場合が多いのではないのでしょうか。特に、ソフトウェア開発に従事させるのに、大学での学習や経験をほとんど問わないのにはどのような戦略があるのでしょうか。

新卒として就職した1984年に配属された部署には私を含めて20名の新人がいました。そして、当時、情報工学科を卒業した学生は日本でも少なかったのですが、20名のほとんどがコンピュータサイエンスを大学で学んでいたのです。戦略的に採用したのか配属したのかは当時新卒であった私には分かりませんが、今日では大企業であっても、ソフトウェア開発に関しては大学の専攻を問わないような採用が行われているのではないかと思うぐらい文系の学科も含めて様々な学科から採用しています。

(「ソフトウェア開発が好きでないサラリーマンエンジニア」)
ソフトウェア開発と人事戦略 ブログトップ