日本のソフトウェア産業は、米国に大きく差をつけられています。Google、Amazon、Facebookなどに太刀打ちできるソフトウェア会社は日本に存在しません。
40年ほど前、IBMに追いつこうと、当時の通商産業省が国内のコンピュータメーカ―6社を3グループに分け、2社づつ共同開発を促しました。
その結果、一時期は米国に追いついたかに見えました。しかし、インターネットの普及に従い、ソフトウェアでは追いつけそうにないほど引き離されてしまいました。
なぜ、ここまで大きく引き離されてしまったのでしょうか?
日米のソフトウェア産業の違い
米国では、一流と言われる大学でコンピュータサイエンスを学んだ学生が、Google、Amazon、Facebookなどで、自社の事業に関わるプログラムを書いています。
日本では、一流と言われる大学でコンピュータサイエンスを学んだ学生は、ITゼネコンと呼ばれるIT企業で、ユーザー企業向けシステム開発のマネジメントをしています。
ユーザー企業向けシステムのプログラムを書いているのは、ITゼネコンの2次下請け、3次下請けの社員、あるいは派遣社員です。
多くは、発注元企業のエンジニアが書いた仕様書に従ってプログラムを書いています。そこには創意工夫の余地はほとんどありません。プログラマの中には、数学が不得意で文系の学部を卒業した人もいます。
日本の大学でコンピュータサイエンスを学んでも、ITゼネコンに就職すると、一流のプログラマーになることはできません。プロジェクト管理を行う管理者になるしかありません。
ITゼネコンは、この問題を解決できません。なぜならば、既存のユーザーがいるからです。
既存ユーザーの業務システムの運用・保守をしなければなりません。そこから上がる利益は企業を支えています。既存ユーザーの業務システムの運用・保守を捨てることはできません。
既存ユーザーの業務システムの運用・保守を行うためには、優秀な管理者が必要です。管理の優劣が利益を大きく左右します。ここを外注するわけにはいきません。
そのため、ITゼネコンは日本の大学でコンピュータサイエンスを学んだ優秀な学生を管理者にするしかないのです。
ITゼネコンと言われる企業でも、独自の事業に関わるソフトウェアを開発していたこともありました。しかし、そのほとんどは残っていません。
1989年を頂点としたバブルの崩壊、さらにその後のITバブルの崩壊で、選択と集中の結果、捨てられています。
専門職としてのプログラマー
ITゼネコンにも、管理者には向いていないが、プログラマーとしての能力に優れた人はいるはずです。そのような人は管理ができないと切り捨てられています。プログラマーとしての能力を十分に活かす場は、ITゼネコンにはありません。
ITゼネコンの経営者は、皆優秀な管理者です。そのため、管理ができない人は出世させられないと考えます。それもITゼネコンで優秀なプログラマーが生き残る場が与えられない理由のひとつです。
しかし、それだけではありません。
大企業は正社員を管理者として育成したがります。それは、将来、経営者の候補とするためです。しかし、昔から専門職があり、それなりに処遇されていました。
ところがITゼネコンでは、プログラマーは専門職として認められていません。
プログラマーが専門職として処遇されないのは、プログラミングはレベルの低い仕事だと考えられているためです。
ソフトウェア工場という考え方があります。ソフトウェアの開発を工場での大量生産品のように扱う考え方です。
ハードウェアの大量生産では、設計は優秀なエンジニアが行い、生産は自動化するか、単価の安い非熟練労働者にやらせます。
ソフトウェア開発も、設計は優秀なエンジニアが行い、プログラミングは自動化するか、単価の安い非熟練労働者にやらせるという考え方です。
ところが、プログラミングの自動化は簡単ではありません。それどころか、高度な機能のプログラムは、高い創造性が要求されます。高度なプログラムでは、設計とプログラミングを分離することは得策ではありません。
プログラミングしながら、設計変更を思いつくことが当たり前のようにあります。
プログラミングは非熟練労働者にやらせることではなく、研究開発と同様に、優秀な専門家にやらせるべきものだったのです。
ITゼネコンはそこを間違えました。
その結果、米国のソフトウェア企業に大きな差をつけられてしまいました。
ゲームの世界では
ゲームの世界では、日本のソフトウェア会社も世界に通用しています。
それは、日本のゲーム会社が、プログラマーを高く処遇しているからです。優秀なプログラマーがいなくては、良いゲームを作れないことが、経営者がよくわかっているためです。
そこがITゼネコンとの違いです。
ITゼネコンでは、優秀なプログラマーを育て、自社のソフトウェア製品を開発しようとしませんでした。
プログラムを大量生産するハードウェアと同様に考えたところが、ITゼネコンの大失敗でした。