ITproに『記者の眼 – IT業界の人月商売、多重下請けがもたらす45の害毒:ITpro』という記事がありましたが、因果関係が錯綜し、問題がわかりにくくなっているため、整理します。
1.人月商売
人月とは1人の技術者が1ヶ月に行う作業量のことです。IT業界では、費用の大部分が技術者の作業により発生します。
そのため、人月商売と呼ばれることもありますが、IT業界の人月商売については、ふたつに分けて考えなければなりません。
(1)工数契約
ひとつは、派遣契約や準委任契約のように、実際にかかった工数の費用が発生する契約を結ぶ場合です。
この場合には、作業を効率化するインセンティブが働きません。人手がかかればかかるだけ売り上げが上がる契約だからです。
開発作業を効率化するツールは、仕事を減らし、売り上げも減らすことにつながります。
いわば技術者を貸し出す人貸業です。リスクは小さいですが、大きな利益は見込めません。
この種の契約だけを結ぶ会社もありますが、あまり利益が見込めないため、成果物の納品を完了条件とする請負契約を主とする会社も多数あります。
(2)見積根拠
成果物の納品を完了条件とする請負契約でも、見積根拠として人月を使います。
請負契約では、作業の効率化は利益をもたらします。インセンティブも高く保てます。
日本では、ユーザー企業にシステムを開発できる要員がほとんどいません。そのため、ベンダー企業に開発作業を発注することになります。
IT業界は過当競争の業界です。いかに安く見積もるかが、大きく受注を左右します。
ベンダーはぎりぎりまで安くして、受注しようとします。そのため良い原価率で受注できることはめったにありません。
日本のITベンダーの利益率が低いのはそのためです。
2.真の問題は受託開発
日本のIT業界の問題は、ユーザー企業からの受託開発にあります。
問題があるにもかかわらず、多額の受注が見込めるため、受託開発を続けていることが、問題を何十年も解決できない原因です。
(1)受託開発の問題点
① 契約時点で要件を確定できない
契約時点で開発するシステムの要件が固まっていることはありません。ベンダー企業はあいまいな条件のもとで、見積もりを行います。
開発作業が進むにつれ、要件が固まってきますが、ソフトウェアは作ってみないとわからないことがたくさんあります。想定外の問題も見つかります。
これが、システム開発プロジェクトが失敗する原因のひとつとなります。
② ユーザー企業の要求は膨らむ
ユーザー企業側も開発が進むにつれ、自分たちの新しい要求に気づきます。ユーザー企業は新しい機能を要求します。
こうして、複雑怪奇な基幹系システムや、アドオンのお化けとなったERP(統合基幹業務システム)ができあがります。
新しい機能を実現するときには、費用とスケジュールの見直しが発生しますが、その折衝においてはユーザー企業側が有利になります。
これもシステム開発プロジェクトが失敗する原因のひとつです。
③ 受け身となる
ユーザー企業のシステムは、ユーザー企業の業務に密接に関係します。当然、ユーザー企業の方が詳しく知っています。
ユーザー企業のシステムを受託開発するベンダー企業は、基本的に受け身になります。受け身の体質が染みついてしまう技術者も出てきます。
④ 安定を望む
基幹業務のシステム開発には、安定性を最優先し、枯れ切った技術を使います。世界の最先端技術を使う機会はありません。
技術者は最先端の技術ではなく、付加価値の低い技術に固定されることになります。
(2)受託開発を続けている理由
大規模なシステム開発に対応するため、ITベンダーはITゼネコンと呼ばれるピラミッド構造の企業グループをつくりました。
日本の雇用流動性がないため、IT企業は一度採用した技術者の仕事を継続して確保しなければなりません。
特に景気の悪いときには、ユーザー企業の受託開発があれば、よろこんで飛びつくことになります。
IT企業は、受託開発が諸悪の根源だと気づいていても、雇用の流動性がないため、受託開発を継続することになります。
3.多重下請は問題か?
大規模システムの開発を一社だけで対応することは、どこの会社もできません。どうしても関連会社やその他の会社と協力して、プロジェクトを遂行することになります。
その結果が多重下請けです。不況のときは、雇用の調整弁となる面もあります。しかし、不況時にレイオフが発生するのは米国も同じです。
スキルの低いプロジェクトマネージャーは、外注先に丸投げし、プロジェクト失敗の原因となることもあるかもしれません。
しかし、それはプロジェクトマネージャーの問題です。下請けに出すことが悪いのではありません。外注管理はプロジェクトマネージャーに必須のスキルです。
多重下請そのものが問題ではありません。
4.まとめ
IT業界の問題は、ユーザー企業システムの受託開発に集約されます。ユーザー企業システムの受託開発をやっている限り、IT業界に未来はありません。
IT企業は、付加価値のある自らのソフトウェアやサービスを開発し、販売しなければなりません。
IT技術者は、最先端技術を使った自らのソフトウェアを開発する企業を見つけて、仕事をすることです。
こちらの記事も参考にしてください。
日米のソフトウェア産業の差はソフトウェア技術者の勤務先の違いという不思議