この記事に関連するお役立ち資料

AIを活用した業務自動化 事例BOOK
無料ダウンロード
ソフトウェア開発の成功に向けての基盤は大いに整ってきましたが、それでもなお失敗の可能性があるプロジェクトは存在します。
「ソフトウェア開発を進めているものの、なんだかうまく進まない」
「納期が迫っているのに、まだ要件が固まらない」
などは、ソフトウェア開発における失敗の兆候かもしれません。
ソフトウェア開発は、その複雑さから失敗も多く、リスクは計り知れません。そのため、開発を進める前に、失敗の原因を知り、それを未然に防ぐことが重要です。
そこで、この記事では、ソフトウェア開発の失敗事例とその原因、そしてそれを回避するための具体的な方法を解説します。
また、具体的な失敗事例や成功・失敗の割合、そして失敗を回避するための具体的な手法についても触れるため、ぜひ参考にしてください。


まず、ソフトウェア開発の失敗事例で共通し、課題としてよく取り上げられるのが以下の6つです。
責任者の不在
納期に無理がある
依頼内容が確立されていない
データが足りない
顧客からのレスポンスがない
成果物の明確な規定がない
ソフトウェア開発における最初の課題は、「責任者の不在」です。本来、プロジェクトの成功には全体を統括し、必要なアクションを指示する責任者の存在が不可欠のはずです。
しかし、責任者がいない、もしくは役職だけあって具体的なアクションをとってくれないマネージャーや管理層がついているプロジェクトは、ことごとく失敗に終わります。その理由は、作業の進捗管理がままならないため、プロジェクトが後ろ倒しになり、結果的に納期を守ることができないからです。
例えば、みずほ銀行のシステム障害は、プロジェクトの管理体制の問題が原因とされています(※)。
※…1999〜2019年、日経XTECH:https://xtech.nikkei.com/atcl/nxt/column/18/01972/030300001/
次に、ソフトウェア開発でよく見られる課題が「納期に無理がある」ことです。通常、無理な短期の納期で引き受けることはなく、短いこと自体は問題ではありません。
しかし、短い納期でも成果物を完成させるための工夫がない場合、プロジェクトは遅れるリスクが高まります。
例えば、開発期間が何か月と短期間であっても、アジャイル開発のような手法の導入によって納期を守るといったことが可能です。しかし、そのような工夫がない場合、開発は遅れがちになり、結果的に失敗につながります。
3つ目のソフトウェア開発における問題が「依頼内容が確立されていない」ことです。システム要件が不確定で、クライアント側が開発担当者に何を求めているか不明な場合に発生します。
その多くは、開発内容が右往左往して似たような作業が増えることで無駄な工数も増加し、結果として開発の失敗率を高める大きなリスクともなります。要件を確定せずに開発を進めると、結果的に訴訟に発展することも少なくありません。
4つ目のソフトウェア開発で共通する課題は、「データが足りない」ことです。必要なデータが網羅されていないとテストも十分にできず、リリース後の不具合が頻発してしまいます。
例えば、みずほ銀行のシステム障害は、テストデータの不足が一因とされています(※)。この事例からもわかるように、テストデータの不足は深刻なリスクをはらんでいるものだということです。
※…2019年、日経XTECH:https://xtech.nikkei.com/atcl/nxt/column/18/00867/071600008/
ソフトウェア開発では、「顧客からのレスポンスがない」ことも課題です。この場合、開発が停滞するだけでなく、完成した成果物がクライアントの期待を満たせなくなります。
クライアントは依頼のプロではないため、開発側で相手の要望を適切に聞き出す必要があります。また、レスポンスが遅い場合はきちんと管理し、必要な情報を適切なタイミングで得られる状態にしなければ納期遅れも発生するでしょう。
最後の課題が、「成果物の明確な規定がない」ことです。ソフトウェア開発においては、何を作り、何を完成とするかは契約段階できちんと擦り合わせることが必要です。
これが不十分だと、「思っていたものと違う」という結果になりかねないでしょう。以上、6つの失敗からみる課題をお伝えしました。では、実際にどのようなトラブルに発展するのか、次項で紹介します。
【関連記事】【返済必須】技術的負債とは?意味や実際の事例をわかりやすく解説

ソフトウェア開発の失敗事例に多いトラブルは、以下の3つが代表的です。
機能不備におけるトラブル
開発要件の追加・変更にまつわるトラブル
納期に関するトラブル
ソフトウェア開発の失敗事例としてもっとも多いのが、機能不備によるトラブルです。
指定された要件(機能)が実装されていない
途中段階で追加する予定だった要件が入っていない
などは、典型的な例です。この場合、開発側が「指示されていなかったから」と主張しても、依頼者側は「依頼したものの性質上、付いていて当たり前の機能がないのは不備」とし、訴訟が起こることもあります。
この問題の根本的な原因は、要件定義の不備です。開発側と依頼者側で共有するべき情報が十分に共有されていないため、開発が進むにつれて新たな要件が発生して機能不備も生じるのです。
次に多いトラブルは、開発要件の追加や変更によるものです。開発が進むにつれて新たな要件が追加され、それによって開発内容が膨らみ、結果的に納期が遅れます。この問題は、開発要件が定まらない、追加ばかりで内容がまとまらず訴訟に至ることも少なくありません。
この問題の解決策は、開発要件の確定を早めることです。開発開始前に要件をしっかりと確認し、変更が必要な場合はその都度確認を行うことで、開発要件の変更によるトラブルを回避できます。
最後に、納期に関するトラブルです。ソフトウェア開発では、納期遅延が発生し、開発側が依頼側から訴えられることも少なくありません。納期遅延となった原因は開発側だけではなく、依頼側にもあるとされます。
納期遅延の原因は多岐にわたりますが、その中でも特に多いのが、開発要件の追加や変更によるものです。開発が進むにつれて新たな要件が追加され、それによって開発内容が膨らみ、結果的に納期まで遅れるという問題が起こります。この問題を解決するためには、開発開始前に要件をしっかりと確認し、変更が必要な場合はその都度確認を行うと良いでしょう。
では、実際にソフトウェア開発の失敗率はどの程度なのでしょうか。次項では、失敗率と成功率について解説します。
ソフトウェア開発において、成功に結びつく確率は必ずしも高いとは言えません。むしろ、多くのプロジェクトが何らかの形で失敗に終わるというのが現実です。
では、具体的にどの程度の割合で失敗と成功が生じているのでしょうか。ここでは、その具体的な数値を見ていきましょう。
工期が遵守されているのは3割弱
近年では品質満足を示す成功率も低下傾向に
※グラフはデータを参考にNOVELが作成
ソフトウェア開発において、工期の遵守はプロジェクトを左右する課題の1つです。しかし、実際には工期を遵守したプロジェクトは全体の3割弱に過ぎません。
この割合は、企業IT動向調査報告書2022で、プロジェクト規模を「100 人月未満」「100~500 人月未満」「500 人月以上」の 3 段階に分類し、それぞれの規模について工期の遵守状況を調査した結果です。

年度 | 予定どおり完了 (%) | ある程度は予定どおり完了 (%) | 予定より遅延 (%) |
|---|---|---|---|
21年度 | 34.4 | 49.6 | 16.1 |
20年度 | 39.1 | 43.4 | 17.5 |
19年度 | 45.6 | 39.7 | 14.7 |
18年度 | 41.9 | 42.8 | 15.4 |

年度 | 予定どおり完了 (%) | ある程度は予定どおり完了 (%) | 予定より遅延 (%) |
|---|---|---|---|
21年度 | 17.7 | 50.7 | 31.6 |
20年度 | 22.0 | 44.8 | 33.2 |
19年度 | 29.3 | 42.0 | 28.8 |
18年度 | 25.6 | 44.2 | 30.2 |

年度 | 予定どおり完了 (%) | ある程度は予定どおり完了 (%) | 予定より遅延 (%) |
|---|---|---|---|
21年度 | 13.9 | 40.1 | 46.0 |
20年度 | 15.8 | 33.5 | 50.6 |
19年度 | 21.4 | 32.8 | 45.8 |
18年度 | 23.4 | 32.6 | 43.9 |
この結果は、ソフトウェア開発におけるリスクの1つである「納期遅れ」がいかに現実的な問題であるかを浮き彫りにしているとも言えるでしょう。
出典:https://juas.or.jp/cms/media/2022/04/JUAS_IT2022.pdf
ソフトウェア開発の成功とは、単に工期や予算が遵守されただけでなく、その成果物に対する品質満足度も指標です。しかし、近年では開発した成果物に対して満足であると回答した企業は年々減り、20%をきっています。

年度 | 満足 (%) | ある程度は満足 (%) | 不満 (%) |
|---|---|---|---|
21年度 | 23.0 | 68.1 | 8.9 |
20年度 | 28.9 | 62.6 | 8.5 |
19年度 | 39.7 | 52.0 | 8.3 |
18年度 | 34.3 | 59.3 | 6.4 |

年度 | 満足 (%) | ある程度は満足 (%) | 不満 (%) |
|---|---|---|---|
21年度 | 15.0 | 66.8 | 18.1 |
20年度 | 22.2 | 64.5 | 13.3 |
19年度 | 31.7 | 52.8 | 15.5 |
18年度 | 25.2 | 61.7 | 13.1 |

年度 | 満足 (%) | ある程度は満足 (%) | 不満 (%) |
|---|---|---|---|
21年度 | 10.6 | 65.9 | 23.5 |
20年度 | 18.1 | 56.3 | 25.6 |
19年度 | 24.6 | 54.2 | 21.2 |
18年度 | 23.0 | 53.3 | 23.8 |
この傾向は、ソフトウェア開発におけるもう1つのリスクである「品質への不満」が増えていることを示しています。開発したソフトウェアがビジネスのニーズを満たせなかったり、ユーザーの期待に応えられなかったりすると、そのソフトウェアは成功とは言えません。
このような品質不満が生じる原因としては、開発前の要件定義の不備や、開発途中での仕様変更などが考えられます。


ソフトウェア開発は、その規模や複雑さから失敗事例も多いことがお分かりいただけたはずです。しかし、ここまでお伝えした事例を事前に把握し、対策を講じることで、開発の成功率を大幅に向上させることが可能です。
以下に、ソフトウェア開発での失敗を未然に回避する6つの方法を紹介します。
責任者の明確化
リアルな納期設定
要件の確定
十分なデータの確保
コミュニケーションの確保
成果物の規定の明確化
ソフトウェア開発では、プロジェクトの責任者を明確にします。この責任者は、全体の進行管理を担当し、各メンバーに対して「誰が何をどのように行うか」を具体的に指示します。
結果として、各メンバーの役割が明確化できれば、作業の効率化も図れるでしょう。
次に、現実的なスケジュールを立て、余裕を持った納期を設定することも必要です。例えば、開発期間を何か月にするかに加えて、その中で各フェーズの期間も具体的に設定します。
また、不確定要素が多い場合、バッファーを設けておくことも時には求められるでしょう。余裕のあるスケジュールは、開発の進行状況を把握しやすくし、必要に応じてスケジュールの調整を行える基盤を作る基本です。
要件定義が曖昧な場合、プロジェクト開始前にクライアントと十分な打ち合わせを行い、依頼内容を具体的かつ詳細に確立します。
機能
性能
デバイス
OS
言語
フレームワーク
など、開発に関するすべての要素を明確にします。細かく決める際には時間がかかるものの、開発中に発生するトラブルを未然に防ぐことができます。
そして、開発に必要なデータを事前に集め、不足がないようにすることも開発の成功に不可欠です。プロジェクトリーダーやデータアナリストが、開発に必要なデータをあらかじめリストアップし、その収集を行いましょう。
例えば、ユーザーの行動データや市場の動向データなど、開発するソフトウェアの性質に応じたデータを集めることで、より適切な開発計画を立てられます。
開発チームと顧客とのコミュニケーションは、開発の進行をスムーズに進めるために欠かせません。プロジェクトマネージャーやコミュニケーション担当者が、顧客と定期的に連絡を取り、進捗報告やフィードバックの収集を行います。
顧客のニーズや要望を正確に把握し、それを開発に反映できれば、総じて満足度も高くなりやすいです。また、問題が発生した際には、早期に対応して大きなトラブルも防げます。
最後に、開発する製品やサービスの仕様を明確にし、文書化します。プロジェクトマネージャーや設計担当者が、開発するソフトウェアの機能や性能、インターフェースなどを詳細に定義したものを文書に残すだけでも構いません。
この際、丁寧に網羅するのではなく、わかりやすくを意識します。誰が見てもわかる状態で開発チーム全体で共有できれば、開発の進行に伴う誤解や齟齬を防げるでしょう。

ソフトウェア開発は、その複雑性と多岐にわたる要求事項から、失敗のリスクが常に存在します。成功へ導くためには、過去の失敗事例から得られる教訓を活かし、計画段階から細心の注意を払うことが不可欠です。
開発プロジェクトを成功に導くためのポイントをまとめると、以下のとおりです。
対策 | 説明 |
|---|---|
責任者の明確化 | プロジェクトごとに明確な責任者を設け、全体の進行管理を徹底する。 |
リアルな納期設定 | 現実的なスケジュールを立て、余裕を持たせた納期を設定する。 |
要件の確定 | プロジェクト開始前にクライアントとの十分な打ち合わせを行い、要件を具体的かつ詳細に確立する。 |
十分なデータの確保 | 開発に必要なデータを事前に集め、品質を確保する。 |
コミュニケーションの確保 | 開発者とクライアント間の定期的なコミュニケーションを保ち、進捗報告やフィードバックを活用する。 |
成果物の規定の明確化 | 開発する製品やサービスの仕様を明確にし、文書化する。 |
ただ技術的な問題を解決するだけでなく、計画、管理、コミュニケーションの各面で優れた能力が求められるため、この要素をバランス良く管理することが、最終的な成果物の品質を左右するでしょう。
ソフトウェア開発の期間は、その規模や要件により大きく異なります。小規模な開発であれば、1~3か月程度で完成することもあります。一方、中規模の開発では、3か月から半年程度、大規模な開発では半年以上の期間が必要です。
しかし、あくまで目安であり、開発の進行状況や問題点の発生により、納期が遅れることも珍しくありません。
ソフトウェア開発が失敗する根本原因は、開発担当者と依頼者側のコミュニケーション不足や、要件定義の不備などが挙げられます。依頼者側は、自身の要望を具体的に伝えることが求められますが、その一方で、開発担当者側も、依頼者の要望を正確に理解し、それを形にする能力が求められます。
また、開発担当者が依頼者や納期をコントロールする術を持たない場合、開発が遅れたり、要望通りの成果物ができあがらないといった問題も生じます。
みずほ銀行のソフトウェア開発失敗事例は、開発担当者と依頼者の間で起こるトラブルが、社内で起こった典型的な例です。この事例では、管理・経営者層がシステム開発について無理解であったことが原因とされています。
年度 | トラブルの種類 |
|---|---|
2002年4月 | 大規模システム障害 |
2011年3月 | 大規模システム障害 |
1999~2019年 | システム刷新プロジェクトの遅延 |
2021~2022年 | 連続システム障害 |
この事例から学べることは、ソフトウェア開発におけるコミュニケーションの重要性と、開発担当者のマネジメント能力の必要性です。また、開発を依頼する側としては、自身の要望を具体的に伝え、開発の進捗状況を確認することが重要であるということも再認識させられます。
出典:https://xtech.nikkei.com/atcl/nxt/column/18/01972/030300001/
この記事に関連するお役立ち資料を無料ダウンロード

AIを活用した業務自動化 事例BOOK
AI技術を活用した社内業務効率化の基本から、実際の導入ステップまでをわかりやすく解説しています。
下記フォームにご記入下さい。(30秒)
テックユニットは、下記のような方におすすめできるサービスです。
お気軽にご相談ください。
・開発リソースの確保に困っている方
・企業の新規事業ご担当者様
・保守運用を移管したい方
・開発の引き継ぎを依頼したい方


おすすめの記事
関連する記事はこちら
優秀なエンジニアの見極め方がわかる!採用面接で聞くべき質問例15選
優秀なエンジニアを見極めるのは、企業にとって大きな課題です。人材不足が深刻化する中、優秀な人材を見逃すわけにはいきません。優秀なエンジニアを見極めるのが難しい採用面接でどのような質問をすべきかわからない採用後のミスマッチを避けたいなどは、多...
エンジニア面接の技術質問で優秀なエンジニアを見極める方法
多くの企業が抱える課題の1つに、優秀なエンジニアの採用があります。優秀なエンジニアを見つけるのは簡単ではありません。履歴書やポートフォリオだけでは、実際の技術力や問題解決能力、コミュニケーション力などを把握するのは難しいのが現状です。そのた...
どちらが上?AWSとAzureの性能・特徴の違いを徹底比較
「AWSとAzureの性能はどちらが上なのか知りたい」とお考えではないでしょうか。クラウドサービスは、物理的なインフラを自社で設置・管理する必要がなくなり、導入コストや運用負担を削減できます。その一方で、どのクラウドサービスを選べばいいのか...
AWSのCDN「Amazon CloudFront」とは?メリットやユースケースを紹介
CDNとはどのようなものなのかAWSのCDNであるAmazon CloudFrontにはどのような特徴があるのかAmazon CloudFrontを利用するメリットは何かAmazon CloudFrontの利用方法は?このような疑問を持って...
開発生産性とは?高める理由や注意点、フレームワークを解説
開発現場では、生産性の向上が喫緊の課題となっている開発リソースの有効活用や、スピーディーな製品リリースが求められている開発コストの削減や、人材不足への対応も重要な課題とお悩みではないでしょうか。開発現場では、常に効率化を意識しながら、限られ...
エンハンス開発とは?仕事内容や業務を円滑に進めるためのポイントを解説
「エンハンス開発って何?」「仕事内容は?」「円滑に進めるためのポイントは?」と気になりお調べですね。また、エンハンス開発の概要や新規開発との違い、またその使い方については、なかなか明確に理解できていない方も多いのではないでしょうか。そこで、...
エンジニアの外注費の相場は?見極めるポイントと費用を抑える3つのコツ
「エンジニアの確保が追いついていない」「予算の制約に悩んでいる」というお悩みはありませんか?新しいプロジェクトが増加する一方で、社内のエンジニアの採用やトレーニングが追いついていない。そのギャップを埋めるために、外注を検討している企業も少な...
増加続く…派遣エンジニアの単価相場は?推移と過剰なコストを避ける方法
「予算内で最大限の成果を得たい」「過剰なコストを避けて利益を最大化したい」とお考えではないでしょうか。近年、IT業界では人材不足が深刻化しており、企業はエンジニアの確保に苦戦しています。一方で、エンジニアの単価は上昇傾向にあり、採用コストの...
給与以上の理由でエンジニアが辞める - 10の理由と改善ポイント
「優秀なエンジニアが次々と辞めていく」という悩みはありませんか?優秀なエンジニアの確保は、企業にとって大きな課題です。実際にエンジニアの離職は意外に多く、優秀な人材の確保と定着が難しくなっています。このエンジニアが辞める理由は給与以外にも様...
AWSのCloud9とは?できることやメリット・デメリットについて解説
開発環境としてのAWSのCloud9について、その魅力とともに注意点も含めて詳しく知りたいという方も多いのではないでしょうか。AWSのCloud9は、低コストでチームで開発を行いたい、新規事業としてなるべく低予算で開発したいという場合に重宝...
業務システムとは?大別や種類、メリットとデメリットをプロが解説
企業の成長を支えるために、効率的な業務システムの導入を検討することはしばしばあります。しかし、どのように始めれば良いのか、どのシステムが最適なのか、悩むことも多いでしょう。また、業務システムの自作には多くのメリットがありますが、同時に注意す...
システム保守とは?業務内容やメリット・デメリット、費用相場まで解説
「システム保守運用の費用が高すぎるのでは?」と感じたことはありませんか?システムの安定運用は企業の業務効率やセキュリティに直結するため、適切な保守運用が欠かせません。しかし、具体的な費用相場や業務内容を知らないままでは、適切な判断が難しいは...
人気記事ランキング
おすすめ記事