日本のソフトウェア産業の問題は、「多重下請け」と「人月商売」という説があります。
記者の眼 – IT業界の人月商売、多重下請けがもたらす45の害毒:ITpro
しかし、私は、「多重下請け」と「人月商売」ではなく、「受託開発」と「ソフトウェア工場」が問題の根源だと考えます。
多重下請け
多重下請けとは、大手SIer(システムインテグレータ)が請け負った仕事を、2次請け、3次請け、4次請けと下ろしていくことです。
ゼネコンと同じです。そのため、大手SIerはITゼネコンと呼ばれることもあります。
仕事の受注には波があります。ピーク時の仕事量に合わせて社員を抱えておくわけにはいきません。そのため、重要度の低い仕事は、下請け会社に外注することになります。
同じことは、2次請けの会社にも、3次請けの会社にも言えます。そのため、多重下請けとなります。
仕事が少なくなったときに、ピラミッド構造の底辺の会社から切り捨てられるため、下請け構造は良くないと言われます。
しかし、仕事が少なくなった時に、スキルのない会社から仕事をとれなくなることは仕方がありません。どんな構造にしても、仕事が少なくなったときは、スキルの低い会社から仕事を失います。
そんなことのないように、どの会社も独自の技術を身につけたり、社員のスキルを向上したりします。
多重下請けは、大規模なプロジェクトを請け負う業界では避けられないものであり、より良い構造はまだ誰も発明していません。
人月商売
人月商売とは、優秀な人もそうでない人も一律に、1人×1ヶ月の単価で扱うことを言います。さらに、人貸業のように、ソフトウェアエンジニアの派遣を商売としていることを指すこともあります。
ソフトウェアエンジニアを派遣する会社の中には、偽装請負や二重派遣などで法令を犯している会社もあるかもしれません。低賃金で働かされているソフトウェアエンジニアもいるかもしれません。
しかし、ソフトウェアエンジニアの派遣をしている会社だけではありません。受託開発をしている会社もあれば、独自のソフトウェアを開発している会社もあります。
ソフトウェアエンジニアには、自らのスキルを向上し、より良い環境を選択する自由が残されています。スキルの高いエンジニアも低いエンジニアも同じ収入ということはありえません。
ソフトウェアエンジニアの派遣をしている会社ばかりではないということから、「人月商売」は日本のソフトウェア産業の根本問題ではありません。
受託開発
「多重下請け」は、大規模なプロジェクトを受託開発するときには、避けられないものです。下請け会社の中には、エンジニアの派遣を主たる業務とする会社もあります。
受託開発こそが、日本のソフトウェア産業の根本的な問題です。受託開発には次の問題があります。
要件が膨らむ
受託開発の契約時に、システム要件が細部まで決まっていることはありません。概要が決まっていればいい方です。あいまいな条件を含んだまま、見積を行います。
特にソフトウェアは、作ってみないとわからないことがたくさんあります。開発が進むにつれ、発注者側は新たな要求に気づきます。ベンダー側も新たな問題点を見つけます。そのため、要件は膨らみ、見積金額も増加します。
IT業界は過当競争状態にあるため、ベンダー側の見積もりはギリギリで行われます。また、ベンダー側の立場が弱いため、発注者側の理由による仕様変更でも費用追加ができない場合もあります。
これが、システム開発プロジェクトが赤字となり、失敗する一番の理由です。
受け身で消極的になる
ユーザー企業の業務システム開発では、ユーザーの方が業務を詳しく知っています。そのため、ベンダー側は受け身になりがちです。
業務の基幹となるシステムでは、障害時の損害が莫大なものになる可能性があります。そのため、安全性を最優先し、枯れた技術を使うことになります。
受託開発を担当するソフトウェアエンジニアは、古い技術に貼り付けられ、最先端技術の採用に消極的になります。最先端のスキルを身につける機会がなくなります。
ソフトウェア工場
日本の大手ITベンダーは、ソフトウェアの開発をハードウェアの製造と同じように考えています。
そのため、優秀なエンジニアには設計だけをやらせ、プログラミングはスキルの低いエンジニアにやらせるか外注に出すということをやりました。
ところが、ソフトウェアは複雑なため、プログラミングをしてはじめて気づくこともたくさんあります。それは設計にフィードバックしなければなりませんが、設計とプログラミングが分離されているため、フィードバックできません。
大学でコンピュータサイエンスを学んだ優秀な学生は、日本の大手ITベンダーに入ると設計やプロジェクトマネジメントだけをやらされ、プログラミングをしません。そのため、プログラミングのスキルはまったく伸びなくなります。
プログラミングを行うのは、文系の学部を卒業し派遣を主とするソフトウェア会社に入ったプログラマーだったりします。
このため、日本の大手IT企業では、優秀なソフトウェアエンジニアを育成できません。日本では、世界で使われるソフトウェアが開発されていない原因ともなっています。
まとめ
日本のソフトウェア産業の問題点を「多重下請け」「人月商売」と表現するのは不適切です。「受託開発」と「ソフトウェア工場」こそが、問題です。ここを改善しない限り、日本のソフトウェア産業に未来はありません。
【関連記事】
日米のソフトウェア産業の差はソフトウェア技術者の勤務先の違いという不思議