システム開発に関するプロジェクトのなかには、トラブルが発生して失敗に終わる場合もあります。日経コンピュータの2018年度調査では、システム開発に関するプロジェクトの失敗率は47.2%という結果も出ており、およそ2件のうち1件は失敗しているという状態にあります(参考元:ITプロジェクト実態調査 2018|日経XTECH)。
プロジェクトが失敗する原因はケースによってさまざまですが、場合によっては裁判へ発展する可能性もあります。しかし、事前対策を講じておくことで未然防止できることもある上、失敗時の対応についてあらかじめ知っておくことで、トラブル発生時もスムーズに問題対応に移ることができます。
この記事では、システム開発がトラブルで失敗する原因や事例、失敗時の対応や未然防止策などを解説します。
システム開発がトラブルで失敗する原因
システム開発がトラブルで失敗する原因としては、主に以下の3つが挙げられます。ここでは、代表的な失敗原因について解説します。
・要件定義が不十分である ・納期・見積もりが現実的でない ・知識や技術力が不足している |
要件定義が不十分である
システム開発の現場では、要件定義が不十分であったため失敗するというケースが多いようです。要件定義する際は、「発注者がそのシステムで何を実現したいのか」「どのような機能や性能が必要か」などについて、明確かつ簡潔に示さなければなりません。
要件定義が不十分な場合、着手後に漏れや抜けが見つかって仕様変更が必要になるなど、のちのちトラブルへと発展する恐れがあります。また要件定義が過剰な場合は、いつまで経っても要件対応が終わらず、納期の遅延などが発生することも考えられるでしょう。
納期・見積もりが現実的でない
納期や見積もりが甘い場合も、失敗リスクを高める原因となります。例として「納期が短すぎる」という場合、受注者は納期に間に合わせるために急ピッチでの対応が求められ、デスマーチ化して管理が行き届かなくなるなどのトラブルが生じる可能性があります。
そのほか「開発規模に比べて予算が小さ過ぎる」という場合などでは、予算オーバーを理由にプロジェクトが頓挫することも考えられます。
知識や技術力が不足している
システム開発にあたっては、受注者の技術力はもちろん、発注者にもある程度の知識が求められます。
発注者の知識が不十分な場合、受注者の言っていることが理解できずに完成像が共有できなかったり、受注者への情報提供が適切に行えずに作業が遅れたりすることもあるでしょう。また受注者へ的外れな要求をしてしまい、「システム開発してもらったが結局なにも改善しなかった」となる可能性もゼロではありません。
一方、受注者の技術力が不足している場合は、納期までに作業が終わらなかったり、プロジェクトが完成できなかったりすることも考えられます。また受注者については、プロジェクトの責任者であるプロジェクトマネージャーの管理能力なども必要と言えるでしょう。
システム開発がトラブルで失敗した事例
ここでは、システム開発に関するトラブルの事例を解説します。
要件不備をめぐるトラブル
この事例では、「要件定義されていない項目でも対応義務はあるのか」という点が争点となりました。
概要
X弁護士がY法人に対して「集団訴訟管理システム」の開発を委託。しかしY法人が開発したシステムには、事件番号や係属裁判所を入力する欄が設けられておらず、さらにひな形のダウンロード機能も実装されていなかった。
Y法人は、「上記入力欄の設置や機能の実装については要件定義されていなかった」と主張したものの、Xは「集団訴訟管理システムなのだから、定義されていなくても対応するのが当然」と主張。XはY法人に対して、損害賠償として約450万円を請求したという事例です。
判決
裁判所はXの主張について、「日常的に裁判業務に関わるXにとっては当然であっても、それ以外の者にとっては当然とは言えない」との考えを示した上で、あらかじめ要件定義していなかったXに非があるとして、Xの請求を棄却しました(2016年4月東京地裁の判決|文献番号:2016WLJPCA04018001)。
要件追加をめぐるトラブル
この事例では、「発注者による要件変更はいつまで認められるのか」という点が争点となりました。
概要
宝石や貴金属の加工・販売を行うX社が、ソフトウェアの開発・販売を行うY社へ、見積もりシステムと販売システムの開発を発注。しかし、両システムともにY社が納期までに間に合わず、X社は契約解除する旨を通知。
契約解除を受けたY社は「納期が遅延したのは、本稼働1週間前に要件追加・変更があったことや、対応時に必要な情報が提供されなかったことが原因」として、X社に対して、出来高に相当する約700万円を請求したという事例です。
判決
裁判所は、「X社による本稼働直前の要件追加・変更」によって納期が遅れたことに理解を示しつつも、「本稼働直前以外に行われたX社の追加・変更指示については、Y社の都合によって完成が遅れており、納期が遅延した原因はY社にもある」と指摘。
さらに「対応時に必要な情報提供にあたっては、X社へ申入れるべきところを行っていなかった」などを理由に、「Y社は納期遵守にあたって必要な管理義務を十分に果たしていなかった」として、Y社の請求を棄却しました(2007年2月東京地裁の判決|文献番号2007WLJPCA02168022)。
納期遅延をめぐるトラブル
この事例では、「納期遅延の原因はどちらにあるのか」という点が争点となりました。
概要
化学薬品の開発・製造などを行うX社が、ソフトウェアの開発・製造などを行うY社へ、経営情報システムの開発を委託。X社は委託料の一部として約6,800万円を支払ったものの、受け入れテスト時に多数の不具合が見つかった上、Y社が納期を遅延。
X社はY社へ契約解除する旨を通知するとともに、損害賠償として、支払済み代金の返還などを請求。一方Y社は、契約解除の効力を争って、代金残額や作業費用の支払いを求めて約7,000万円を請求したという事例です。
判決
裁判所は「X社は、未完成の設計書を渡すなど作業の混乱を招く行為を行っており、受け入れテスト時の不具合についても、X社のテスト準備や進行手順などに問題があった」として、X社の請求を棄却した上でY社の請求を認容。X社に対して、代金残高と報酬相当額(約3,000万円)を支払うよう命じました(2015年1月大阪高裁の判決|文献番号2015WLJPCA01286004)。
システム開発がトラブルで失敗した場合の対応
システム開発についてトラブルが発生した場合の対応としては、主に以下があります。ここでは、それぞれの対応内容について解説します。
・相手先と交渉する ・ソフトウェア紛争解決センター(ADR)を活用する ・訴訟を提起する ・弁護士に相談する |
相手先と交渉する
まずは相手先と話し合いの場を設けて、トラブルが起きた背景や原因を明らかにした上で、責任の所在や補償について協議するのが通常です。
また、再発予防として、契約内容や仕様を見直すなどすることも必要となるかもしれません。交渉に当たっては、両当事者の認識を明らかにすべく、受注書・発注書・議事録・メール・FAXなど、やり取りの内容が把握できる書類を準備・整理しておく方がベターでしょう。
交渉がまとまるかどうかは、両当事者の交渉に臨むスタンス次第です。もし交渉では問題解決が望めないという場合は、後述するADRや訴訟などにて対応することになります。
システム開発失敗の責任範囲と損害賠償
システム開発についてトラブルが生じた場合、責任の所在や範囲、補償すべき金額などはケースによって異なります。「システム不具合を理由に、発注者が受注者へ損害賠償請求する」というような場合は、不具合の原因を特定し、当該原因についての責任の所在を特定し、当該不具合により発生した損害を特定する必要があります。
また、「受注者が開発したシステムに不具合があり、それがシステムに重大な悪影響を及ぼした結果、委任者の業務に支障が生じ、当該支障を補正するのに相当のコストがかかる」というような場合は、受注者に対して、当該コストについて損害賠償を行う余地があろうかと思われます。
一方、「不具合の原因が、受注者の業務処理とは関係のない、委任者側の運用方法にある」という場合は、受注者へ責任追及は難しい場合が多いかもしれません。
なお、受任者の責任を理由に損害賠償を行う場合、賠償の対象となるのは以下の費用が考えられますが、これもケースバイケースです。また請求にあたっては、損害の有無・内容・金額や損害と受任者の過失行為との間の因果関係を立証する必要があるため、ハードルは低くありません。
・開発費用 ・人件費 ・外注費 ・回線費 ・出張旅費 ・研修費 |
ソフトウェア紛争解決センター(ADR)を活用する
ソフトウェア紛争解決センターとは、一般財団法人ソフトウェア情報センター(SOFTIC)の設置機関を指し、コンピュータ・ソフトウェアに関するトラブル解決の手助けを行っています。
依頼時は、弁護士・弁理士・技術者などによるサポートが受けられ、以下の4つから解決方法を選択できます。
・仲裁…裁判所の代わりに、双方が合意する仲裁人に紛争解決を任せる方法 ・中立評価…中立評価人が、解決策の提示や判断などを行って解決を図る方法 ・単独判定…単独判定人が、申立事項について判定することで解決を図る方法 ・和解あっせん…あっせん人を間に挟んで議論したのち、あっせん案による解決を図る方法 |
ケースにもよりますが、一般的には2~6ヶ月程度で結論が出ることが多いようです。
ただし注意点として、相手先に対して強制的に対応させるだけの効力はありません。したがって、「相手先の対応が消極的・対応に応じない」などの場合は、次に解説する訴訟にて対応することになります。
なお、利用料金や手続きの流れなど、詳細については「ソフトウェア紛争解決センター」より確認できます。
訴訟を提起する
交渉などでは解決が望めない場合は、裁判にて問題解決を図ることになります。訴訟時は、以下の流れで手続きを進めるのが通常です。
・訴状の提出・受領 ・口頭弁論期日の確定 ・答弁書の提出・受領 ・証拠・証人の準備 ・審理 ・和解(双方が和解を受け入れる場合) ・判決(判決内容が不服な場合は「上訴」へ移行) |
上記ADRと比べて手間と時間がかかります。そのため、当事者間での協議やADRでも解決の見込みがない場合に検討するべき手続と言えます。なお、訴訟で請求を認める旨の判決が下されたものの、相手が任意に支払をしない場合は強制執行(差押え)へ移行することもできます。
訴訟対応は、訴訟法の支配する法的手続であり、主張・立証にも法的知識や経験が必須です。したがって、早い内に弁護士に相談することをおすすめします。
弁護士に相談する
冒頭でも解説した通り、システム開発に関するプロジェクトは失敗する事例も多いようです。
特に企業同士のやり取りの場合、トラブル時の損害賠償額が数十億円に及ぶこともあるため、もしプロジェクトが頓挫する危険があり、そのことで相手とトラブルになりそうであれば、できるだけ早い段階で弁護士に相談することをおすすめします。
早期に相談すれば、相手先との交渉段階から的確なサポートが受けられるため、交渉で解決できる可能性もゼロではありません。また訴訟へ発展した場合でも、書類作成や出廷などの訴訟手続きの代理を依頼できるため、対応にかかる負担を大きく軽減できるでしょう。
なお弁護士に依頼する場合は、相談料・着手金・報酬金などの弁護士費用がかかります。
事務所や依頼内容によって費用は異なるため、具体的な費用については直接問い合わせることをおすすめしますが、一般的な相場としては以下の通りです。
・相談料…法律相談時にかかる費用。費用相場は5,000~1万円/時間 ・着手金…案件依頼時にかかる費用。費用相場は請求金額の5~10%程度 ・報酬金…案件終了時に成功程度によりかかる費用。費用相場は請求金額の10~20%程度 |
システム開発がトラブルで失敗しないための対策
システム開発にあたっては、事前に対応策を講じておくことで、今後起こり得るトラブルの未然防止が望めます。ここでは事前対策について解説します。
相手先と十分にコミュニケーションを取る
システム開発で失敗しないためには、発注者と受注者で十分にコミュニケーションを取ることが大切です。特に、システム開発のように「目に見えないモノ」を開発依頼する場合、自動車や機械など「目に見えるモノ」を依頼する場合と比べて、完成イメージを共有するには時間・手間がかかります。
十分にコミュニケーションが取れないまま話を進めてしまうと、「納品物の品質が悪い/いや、こちらは契約通りに作成した」などのトラブルとなることも考えられます。システム開発にあたっては、定例会を開催するなどして、要求内容や進捗状況について逐一共有するべきでしょう。
発注者であれば「そのシステムで何を実現したいのか」「どのような仕様・機能のものを望んでいるのか」など、受注者であれば「発注者の要望は全て出揃っているか」「どこまでであれば対応可能か」などの点について相手先へ伝える必要があるでしょう。
契約書を作成する
システム開発にあたっては、口約束で契約を結ぶことも民法上は可能です。
ただし口約束の場合、「契約時に○○と言った覚えはない/いや、言っていた」などの食い違いが生じる恐れがあります。取引時は、合意内容などについて記載した契約書を作成しておくことで、行き違いによるトラブルの未然防止が望めます。
なお契約書作成にあたっては、以下の事項について記載しておきましょう。
・納品物の機能や仕様 ・対価内容 ・検収手段 ・保証内容 ・瑕疵担保責任 ・契約解除事由 ・損害賠償額の上限・範囲 ・成果物に関する権利取扱い(著作権・所有権など) ・秘密保持 など |
契約書はリーガルチェックを受ける
自力で契約書を作成する場合、検討すべき事項が記載されていなかったり、誤りがあっても気づかなかったりする可能性もあります。契約書が適正に作成されていないと、トラブルが発生しても十分な効力を発揮しない恐れもあるため、作成時は弁護士によるリーガルチェックを受けることをおすすめします。
法律知識・経験に長けた弁護士に依頼することで、「記載内容に漏れはないか」「法的に問題はないか」などのチェックが受けられるため、自力で作成するよりも契約書の実効性を高めることができます。
まとめ
システム開発でトラブルとなる原因としては、不十分な要件定義・非現実的な納期や見積もり・知識や技術力の不足などがあり、これらの対応が不十分な場合は訴訟へと発展する可能性もあります。
契約書を作成してリーガルチェックを受けたり、相手先とコミュニケーションを取ったりするなどして、事前対策を取ることもできますが、もしトラブルとなった場合は早い段階で弁護士に相談するのが有効です。事務所によっては無料相談なども行っているため、少しでも不安を感じている方は相談してみましょう。