日本ではプログラマーが正当な対価を支払われていないと、ネットで話題になっていました。米国と比較して日本のプログラマーの収入は低いですが、米国と日本ではプログラマーのやることが異なりますので単純な比較はできません。
しかし、日本のプログラマーの給与が少ないのは、SI業界が原因というのは正しい指摘です。
なぜ日本のプログラマーの給与は少ないのか
日本のプログラマーの給与が少ないのには、歴史的理由があります。
コンピュータシステムを開発するときは、たくさんのソフトウェアエンジニアを必要とします。しかし、開発が終了し運用だけになるとそれほどたくさんのソフトウェアエンジニアを必要としません。
日本では社員を簡単にやめさせられません。システムの開発時に大勢のソフトウェアエンジニアを社員として雇うと、開発が終了した後にソフトウェアエンジニアの処遇に困ります。
そのため、日本の会社は、ソフトウェア開発をITベンダーに外注するようになりました。ITベンダーはいくつものユーザー企業からシステム開発を請け負うことにより、ソフトウェアエンジニアの使い回しができます。
昔は、システム開発が増える一方だったので、ソフトウェアエンジニアが不足しました。ITベンダーも自社で足りないソフトウェアエンジニアを協力会社から探しました。
ITベンダーは重要な上流工程を自社の社員に担当させ、下流工程を協力会社に外注しました。協力会社でも同様の事情で、自社でまかないきれない部分をさらに外注しました。こうして、SI業界にもゼネコンと同様な多重請負構造ができあがりました。
特にプログラミングは人件費の安い海外でも対応可能なため、プログラミングの費用は低く抑えられ、プログラマーの給与は少なくなりました。
この多重請負構造は、受注に波があったときの調整弁としても使われました。すなわち仕事が減ったときは、ピラミッド構造の底辺から仕事を失っていきました。
さらに多重請負構造には欠点があります。SIerといわれるピラミッド頂上のITベンダーでは、技術力が低下しています。ソフトウェアエンジニアがプロジェクト管理ばかりで、プログラミングを行わないためです。
米国のプログラマー
米国では、システム開発が終われば、不要になったソフトウェアエンジニアは退職します。そのため、優秀なソフトウェアエンジニアは、開発を行っている企業を渡り歩きます。
新規システム開発を予定している企業に採用されるには、プログラミングができるだけでは不足です。プログラマーも上流工程から担当できるスキルが必要です。
そのため、米国のプログラマーは日本のプログラマーよりも高い能力を要求され、高額の報酬を受け取ります。
そして、これが米国と日本のソフトウェア産業に大きな差が開いた原因ともなっています。
日本のWeb業界
日本のWeb業界には、SI業界ほど高い信頼性を要求されるシステムがありません。また、大規模なシステムもありません。
そのため、新しい技術も積極的に採用できます。優秀なソフトウェアエンジニアは、プロジェクト管理だけにわずらわされることなく、上流工程から下流工程まで担当できます。
そのため、SI業界のプログラマーよりも給与は高くなります。
今後、SI業界が現在のWeb業界の技術を利用して、高い信頼性を要求される大規模なシステムを開発するときには、SI業界のソフトウェアエンジニアやプログラマーがなだれ込んできます。
そのときに備えて、さらに新しいシステムを開発できる技術を身につけておく必要があります。
おわりに
SI業界は高い信頼性を要求される大規模なシステムを開発し、既存のシステムの運用・保守も行わなければならないので、今の体制を変えられません。
そこを避けて常に新しい技術を学び身につけていけば、Web業界で生き残っていくことができます。
優秀なエンジニアは、どこの業界でも昔から不足しています。「日本史なんかよりプログラミングを教えてプログラマーを増やせ」というのは、何も知らない人間のたわごとです。
優秀なソフトウェアエンジニアを浪費しているSI業界から、Web業界への移籍を促進すべきです。
業務を効率化すると怒られたから、日本はダメだという話もあります。そんなことは、産業革命でラッダイト運動が起きたように、昔から世界中で見られることです。そんなことでは技術の進歩は止まりません。