昨年から話題だった「
ソフトウェア受託開発への工事進行基準の適用」ですが、
確かにデスマーチ発生率を減らすことになるかもしれない。
ただし、「お客さんを泣かせる」という形で。
「工事進行基準」って詰まるところ
「年度毎の収支を安定して見せることができる」
という会計上のメリットしか無いように思われます。
そもそも工事進行基準だろうが工事完成基準だろうが、
売り上げが毎年計上されるか最後の年に計上されるかの違いでしかなく、
精度の高い見積や正確な進捗管理が必要なことは変わらないし、
納期遅延が契約上許されないことや、機能追加・変更を仕様変更として追加費用を取るかどうかの交渉が都度都度必要になることも、一切変わらないのではないでしょうか?
だったら、何故「工事進行基準導入によって、デスマーチが減る」というような論調が多いのか。
それはITサービス業界の「要件定義ミスを、契約上お客さん責任とすることで、SIerのリスクを軽減したい」という思惑があるからだと思われます。
どういう事かと言いますと、ソフトウェア開発への工事進行基準導入に関して必ず言われていることが、
「工事進行基準が導入されると、精度の高い費用見積・進捗管理が必要になる」
ということなのですが、もう少し深掘りすると
「費用見積もりの精度を高めるためには、要件定義をちゃんとやらなきゃダメです」
となり、さらには
「要件定義はお客さん主体でやるべき作業なので、お客さん責任でやってください。そして、もし完成したシステムに機能上不備があったとしても、 SIerはお客さんの作った要件定義通りに設計・開発しただけなので、我々SIerは悪くないです。お客さんの責任で改修費用を負担してください。」
となるわけです。
「そんな陰謀めいた馬鹿な話が?」
と思うかもしれませんが、あながち間違いとも言えないでしょう。
事実、ITサービス業界では「要件定義をお客さん責任とするよう、契約上明確にしよう」という動きがあります。
例えば某国内SIerでは、1~2年ほど前からお客さんとの契約内容を見直し、
従来の「開発の全工程一括請負契約」から「開発フェーズ毎の個別契約」に移行させようという方針になっています。
具体的には、システム開発契約を下記3契約に分割します。
- 要件定義フェーズ:準委任契約
- 設計・開発フェーズ:請負契約
- 保守・運用フェーズ:請負契約
ここの「準委任契約」「請負契約」についてですが、両者の決定的な違いは
「最終成果物に対する責任の所在」
です。
「請負契約」は受注した側(=SIer)が成果物(=システム)に対して責任を負いますが、
「準委任契約」では発注側(=お客さん)が成果物に対する責任を負うことになります。
つまり要件定義については「SIerはお手伝いをするだけ」という契約です。
もし、上記のような「工事進行基準導入」→「要件定義のお客さん責任化」の流れがうまくいけば、デスマーチ最大の原因である「要件定義ミス」による負担をSIerがかぶる事は無くなるでしょう。
ただし、あくまでも「お客さんが懐を痛める」か「要望をあきらめる」の何れかによって。
SIerにとっては旨い話のようですが、逆に痛い目を見る展開も可能性としてありそうなので、それについて追々書いてみます。