システム開発案件なんかでも、いわゆるボロい商売というのはあります。
顧客側がシステムに対して知識が乏しい場合には、ベンダー側の言うとおりのままに操られてしまい、高値での契約なんかがはびこったりします。

そもそもシステム開発において、費用というものの観念が他業界とはちょっと違っているのかもしれません。人月という単位での費用の計算となり、人が男ヶ月働いたかによって値段が決まってきます。

その単価の出し方についても、システム開発においては開発者自体の自由度が高くなかなか画一的に行われるものではありません。
例えば、システム開発は最終的にプログラムを開発し納品するわけですが、そのプログラムのソースコードの行数によって求めるというやり方もありますが、その行数自体が、使う言語によって大きく異なったり、スキルの高い人と低い人でももちろん大きく違ってきたりします。

また、プログラムにはバグがつきものですが、ソースコードの行数が長くなれば長くなるほど当然バグの総数も増え、結果的に高い金額になったりします。

このように不確定要素が大きいため、システム開発の原価の計算には画一的なものがなく、すべてがオーダーメイドという形態になります。このオーダーメイドと言っても、人月単価は出しているもののそのかかる工数というのが結構アバウトだったりするので、いわゆるボロい商売というものができたりします。利益率50%とか、そんなものもじつはあることはあるのです。

そういうボロい商売が長く続くかというと実はそうでもなく、ベンダーの競争相手が現れれば自然と価格競争になり、適正価格に落ち着いていくのが市場原理です。
しかしそこに一つのベンダー側の武器があるのですが、それがベンダーロックインというもの。

システム開発はすべてのソースコードに対して明確な仕様書(いわゆるプログラム仕様書)があるわけでもなく、また、あったとしても全く知らない人が読んでも意味不明というような摩訶不思議な世界だったりするので、ベンダーにしかわからないようなノウハウがあればあるほど、あるベンダーから足のベンダーに乗り換えるのが困難になります。

そうなってくると、ベンダー側は競争相手がいない状態となり、価格決定権を持ち、いわゆるボロい商売というものが発生することになります。

これは顧客にとっても、社会にとっても非常に良くないことで、やはり競争があってこその進歩があるので、あぐらをかいて古い技術で適当に開発する等状況がいつまでも残ります。

最近では、システムもAPI化という流れがあり、コアのエンジンはAPI、それ以外の画面などのビューアはそれぞれライトウエイトに開発とかというのがあり、コアのエンジンのみ死守すればあとは乗り換えるのが簡単になります。
画面部分は数年で技術が変わるので、ここに注力するのは無駄でありここはベンダーに任せるというのが一番いい選択でしょう。

そうなれば、APIだけ公開し、技術のコロコロ変わる画面部分のみベンダーに任せればよく、APIがあれば特にベンダー特有の技術に縛られることもないので、ベンダーロックインからの開放となります。

そういう意味でも、システム開発の内製化は進めていくいつ用があるのですが、何から何まで内製というわけではなく、コアになる技術とそれ以外を明確にしておくことが重要です。