日本のIT業界は泥沼にはまりこんでいます。大型プロジェクトの大多数は失敗しています。
納期が大幅に遅れたプロジェクトや大きな赤字を出したプロジェクトは珍しくありません。途中で打ち切られたプロジェクトもあります。
ソフトウェアエンジニアは、度重なる仕様変更や、いつまでたってもなくならない不具合で疲弊しきっています。
長時間残業、深夜残業は当たり前になっていますが、形だけのワークライフバランスが入り込み、サービス残業を強いられる原因ともなっています。
そんなIT業界に新しいビジネスモデルが誕生しました。それが、『「納品」をなくせばうまくいく ソフトウェア業界の“常識”を変えるビジネスモデル』に書かれている「納品のない受託開発」です。
IT業界の問題点
まず、最初にIT業界の問題点を整理しておきます。
受託開発
受託開発とは、ユーザー企業の業務システムをソフトウェアベンダーが請け負って開発することです。
受託開発の場合、契約の時点で、開発するシステムの仕様を明らかにし、見積もりをしなければなりません。
ところが、ソフトウェアシステムの仕様を開発する前に明らかにすることは困難です。
ここにすべての原因があります。
それでも契約しなければなりませんから、おおよその仕様を定め、おおよその金額で契約します。
開発が進むにつれ、新しいアイデアを思いつきます。しかし、それを実現するためには仕様を変更しなければなりません。
仕様変更のためにスケジュールや見積もり金額を見直します。この時、ユーザー企業とソフトウェアベンダーの間に対立が発生します。
ユーザー企業は、少しでも安くしようとします。ソフトウェアベンダーはリスクもあり、少しでも高くしようとします。
Win-Winの関係ではありません。どちらも不満をかかえたまま妥協します。
開発が進むにつれ、仕様変更は繰り返されます。仕様変更なのか不具合なのか、区別することが難しいものもあります。
こうして、お互いに不満をかかえたまま、システムは複雑になり、費用も膨らみ、スケジュールも伸びていきます。複雑になったシステムは不具合も増えます。
受託開発をする理由
それでは、なぜ、泥沼化しがちな受託開発を行うのでしょうか。
ソフトウェアベンダーの事情
一つ目の理由は、ソフトウェアベンダーができる仕事がそれしかないからです。
大手のソフトウェアベンダーほど過去のシステム開発に携わった大量の要員を抱えています。自社の社員だけでなく、ITゼネコンと呼ばれるピラミッド型の企業集団を形成しています。
日本の雇用流動性がないこともあり、これらの要員の仕事を確保しなければなりません。ユーザー企業のシステムを開発してきたソフトウェアエンジニアですから、ユーザー企業のシステム開発を最も得意としています。
ユーザー企業の事情
二つ目の理由は、ユーザー企業にソフトウェアエンジニアがいないためです。
ユーザー企業に開発できるソフトウェアエンジニアがいないため、外部に発注するしかありません。
請負にする理由
それでは、請負契約にする理由はなんでしょうか。
会社によっては、請負契約ではなく、人材派遣や準委任契約だけでやっている会社もあります。しかし、それでは人貸し業です。大きな利益を期待できません。
請負契約として、契約した仕様で、できるだけ安く開発することで利益を出そうとします。
ところが、上記の通り、ソフトウェアシステムの仕様はそう簡単に決まらないため、うまくいかないのが現状です。
「納品のない受託開発」とは
これらの問題を解決する「納品のない受託開発」とは、どのようなものでしょうか。
納品のない受託開発
「納品のない受託開発」とは、一言でいうと、月額定額の技術顧問契約です。
毎月決まった金額で、顧客のソフトウェアの開発や運用、アドバイスなどを行います。
自社の社員で開発や運用を行う場合に似ています。しかし、優秀なソフトウェアエンジニアを自社で育てる必要がありません。
人材派遣や準委任契約による技術支援とも似ていますが、工数提供ではないところが違います。
週に1回程度、顧客と打ち合わせをして、これまでにやったこととこれからやることを確認します。
顧客のところに行くとは限りません。テレビ会議で済ます場合もあります。
顧客は要件を一度に決めなくてもかまいません。仕様変更も自由にできます。なんでも気軽に相談できます。
初めての顧客には、お試し期間を1ヶ月設けることもやっています。
対象顧客
このビジネスは、自分たちのソフトウェアシステムを開発したい小さな会社を対象にしています。
小さな会社にはソフトウェアエンジニアはいません。ITに詳しい人もいません。ソフトウェアの開発を外注しようにも、仕様を書くこともできません。
仮に外注して作っても、満足いくものになるとは限りません。運用できるかどうかもわかりません。
そんな会社にとって、事業計画から聞いてくれ、最適なシステムを一緒に考えてくれる顧問契約はありがたいものです。
月額定額で、何をシステム化するかを考え、開発から保守・運用までやってくれます。
仕事を頼む側のデメリットは、相手の会社がつぶれたときのことです。エンジニアがいなくなると、システムの運用さえできなくなるかもしれません。
最低限の運用は自分たちで行い、万が一のときは、別の会社に別のシステムを頼むぐらいの気持ちでいた方がいいかもしれません。
まとめ
「納品のない受託開発」は、ゆるいシステムをゆるく開発し、ゆるく運用するには、良い方法です。
ダウンすれば多額の金銭的損失が出たり、人の命がかかわるようなシステムには向きません。大規模システムも難しいと思います。
しかし、ソフトウェアシステムの受託開発は行き詰っています。
小規模な会社の小規模なシステムを計画から開発・運用まで面倒を見ていくビジネスモデルは、ソフトウェアエンジニアの働き方の一つになるかもしれません。
日本のソフトウェア産業の問題点については、次の記事も参考にしてください。