発注ラウンジは、システム開発の発注に必要な様々なノウハウや発注ナビで実際に開発された発注者様のインタビューなど、発注担当者様のための情報発信サイトです。

システム開発における失敗事例とその原因について

システムやソフトウェア開発の中には、事前に立てた計画通りに開発が進まず、プロジェクトが失敗してしまうケースも少なくありません。ここでは、システム開発が失敗してしまう原因と、システム開発の失敗しない方法・ポイントについて解説します。

 

目次

 

システム開発会社選びはプロにお任せ完全無料で全国2000社以上からご提案

200x200b

・ベストマッチな発注先が見つかる
・たった1日のスピード紹介
・ITに詳しいコンシェルジュがサポート
・ご相談~ご紹介まで完全無料

 

 

システム開発の失敗とは?

前提として、「システムやソフトウェア開発の失敗」について明確な定義はありません。

あえて失敗を定義付けるならば、システム開発では「成果物の完成」を目指す以上、「納期までに成果物が完成しなかった」のはシステム開発の失敗と呼んでもよいでしょう。とりわけ下記のような状況に陥ると、成果物が完成せずにプロジェクトが失敗する可能性も高くなります。

  • 休日稼働を視野に入れて開発スケジュールを立てても完成の見通しが立たない

  • 開発チームに欠員が出てしまい、エンジニアの不足が続いている

  • 予算不足に伴いシステムに必要な機能が搭載できない

また、成果物が完成したにも関わらず「システム開発の失敗」に至るケースも存在します。それは、開発側が意図を理解しないまま仕様を決めてしまい、結果として発注者の意図をまったく汲んでいない成果物が完成してしまった時です。「目的の成果物が完成しなかった」という点を考慮すれば、これも失敗と呼んでも差し支えないでしょう。

先に挙げたような「納期の破綻」や、「見当違いの成果物の完成」など「システム開発の失敗」と呼べるものは少なくないのです。以下の項では、システム開発の際に発生しやすいリスクについて紹介します。

 

システム開発におけるリスクを知っておこう

名前 詳細
認識的リスク 受注側と開発側で認識がズレたまま開発が進むリスク
金銭的リスク 開発の途中で予算が不足してしまうリスク
技術的リスク 技術的に機能の実装が難しくなるリスク

 

綿密に計画を立てたプロジェクトでも、完成形が見えない状態で「手探りで進めるシステム開発」には、リスクがつきものです。システム開発におけるリスクは、大きく分けて「認識的リスク」、「金銭的リスク」、「技術的リスク」の3種類に分けられます。

 

●認識的リスクについて

システム開発における大きな壁は、コミュニケーションギャップによる「勘違い」のリスクです。

例えば、「業務管理システム」と聞いて思い浮かべるシステムは千差万別。各々のイメージを、明確な形で共有するのは困難です。発注側と開発側でイメージが異なれば、それ以降の認識も齟齬が生まれやすく、誤った方向に進んでしまう可能性が高まります。早期に誤認を正さないと、見当違いの機能実装のために工数を無駄に割いてしまいかねません。完遂後に発覚した「誤認」をリカバリーするためにはコスト・工期を増やさなくてはならず、結果としてプロジェクトを失敗に追い込む要因になります。ダメージが大きい分、優先して回避すべきリスクです。

 

●金銭的リスクについて

システム開発でトラブルになりやすいのが、開発費の算出です。システム開発は「まったく新しいものを作る」という特性上、正確な費用を割り出すのが難しいという問題があります。

例えば、「外部企業にシステム開発を発注しよう」と検討する場合、「詳細が決まらない状態」で開発費を算出しないように注意が必要です。開発が始まった後に「やっぱりこの機能も欲しい」となれば、システムの仕様を変更するたび、開発費や開発期間が雪だるま式に膨らみかねません。加えて、決定事項が二転三転すれば、現場スタッフのモチベーションにも影響するでしょう。

 

●技術的リスクについて

企画段階では開発可能に思われても、技術的に実装が困難なケースに直面することがあります。また令和の現代は、IT技術が高度になるにつれて「システム構築技術の複雑化」が著しい時代です。動作に様々な要因が絡むようになり、新しい技術を採用したシステムがクライアント側で「動かない」と報告されるケースもあります。開発中に「実装が困難」と判断された場合、クライアントと交渉をして機能を調整する必要があります。

ちなみに、先に挙げた3つのリスクは「それぞれ密接に関わっている」という点も留意しておきましょう。例えば、認識的リスクを蔑ろにしたままにすれば、無駄な工数や機能が増えてしまい、金銭と技術それぞれのリスクにも繋がりやすくなるのです。

 

システム開発における失敗の原因とは

プロジェクト失敗の多くは「認識的リスク」を放置したことに起因し、根底にあるのは発注側と開発側のコミュニケーション不足です。ここではもう少し具体的に、システム開発における失敗原因を探っていきましょう。リスクと原因を押さえることで、システム開発の成功率をより高めやすくなります。

 

●目的が曖昧なままシステム開発をスタートさせた

失敗原因の中でも代表的なものが、プロジェクト開始時の準備不足です。関係者の間で「どんなシステムを作りたいのか」、「そのシステムを使ってどんなことをしたいのか」といった情報を共有できなければ、理想とは異なるシステムが完成してしまいます。

このように、発注側と開発側のコミュニケーション不足の根底には、発注側にはシステム開発について高い理解度を有する人がいないこと、開発側は目先の納期やコストに気を取られてしまうことが、大きく影響していると言えるでしょう。

準備の不足で開発が失敗してしまう点を考慮すれば、開発初期は発注側と開発側でコミュニケーションの量を増やすことが重要です。また、発注側もある程度のシステム開発に関係する知識を身に付けておけば、踏み込んだコミュニケーションも取りやすくなります。

 

●プロジェクトの軸となる認識が不統一だった

認識のすり合わせが必要なのは、プロジェクト準備段階だけではありません。プロジェクト中にも入念なコミュニケーションが取れていないがゆえに、発注側と開発側とでの認識のズレに気付けず、ずるずると先に進んでしまうケースがあります。結果として理想のシステムとは全く異なるものが完成してしまうことになるのです。

 

●工程の優先順位が曖昧だった

システム開発の際に、各工程の優先順位は非常に重要です。例えば、開発工程を1つずつ完了させる「ウォーターフォール型」で開発を進めている場合、問題が起きた時には1度プロジェクト全体を止める必要が出てきます。結果として、スケジュールが大幅に崩れやすくなるのです。作業の手戻りを避けるためには、上流工程の段階で「本当に優先してほしいこと」、「確実にないと困るもの」などを念入りに聞いておき、優先順位を的確に評価することが大切です。

 

●見積もりが不明瞭だった

システム開発が失敗する原因は、「見積もりの曖昧さ」によるものも多くあります。

例えば、スパイラル型の開発手法を採用すると、修正するたびに開発の工程をやり直すことになります。その分、質の高いシステムは出来上がったとしても、想定していた予算を大幅に超えてしまい、結局プロジェクトが破綻することもあるのです。

いわゆる金銭的リスクに該当しますが、これももともとは認識のズレや誤認によるものです。システム開発の性質上、見積もりにズレが生じるのは仕方ないことですが、要望が確定してから見積もりを算出する、追加や上乗せ要望があれば見積もりの再設定を行う、などを行うことでギャップを小さくできます。

システム開発を成功させる方法については、後の項でも紹介しますが、まずは「開発におけるリスク」、「具体的な失敗原因」について覚えておきましょう。なお、原因の項で紹介したウォーターフォールやスパイラルといった開発手法については、別ページでも紹介しています。開発手法の特徴や、適した開発案件などを参考にしたい方であれば、下記ページをご参照ください。

システム開発にはどんな手法がある?それぞれのメリット・デメリットを紹介|発注成功のための知識が身に付く【発注ラウンジ】

 

システム開発の失敗事例

システム開発における失敗例として、「成果物に対して大幅な修正を余儀なくされた」という事例をみてみましょう。期日通りにシステムを受け取ったクライアントから「まともに動かない」というクレームが入ってしまうケースが考えられます。

こうなるとシステムの「作り直し」を余儀なくされます。このように、たとえ納期通りに完遂してもシステムのパフォーマンスが理想とかけ離れているとクレームへと発展しやすく、追加工数が発生してしまいます。この事例の課題をざっくりとまとめると「品質管理不足」ですが、もう少し掘り下げると、プロジェクトを失敗たらしめた原因は2つに分けられます。

 

  • 1つ目は発注側の問題で「開発知識がなく、希望を伝える努力を怠った」こと。

  • 2つ目は開発側の問題で「希望を鵜呑みにし、確認しないまま実装した」したことです。

 

●発注側:開発知識がなく、希望を伝える努力を怠った

システム開発を依頼する際、発注側に「システム開発に関する知識がほとんどない」というケースは往々にしてあります。

ですが、開発の基本をまったく知らない状態で「こちらが言わなくても知識があるなら察してほしい」というスタンスは誤認を生みやすく、意に沿わないシステムを自ら作らせるようなものです。せめて、開発の流れや開発方法については事前に把握しておきましょう。難しければ、希望や妥協点を詳細に伝える努力をすることが、理想のシステムを作ってもらうためには重要です。

 

●開発側:希望を鵜呑みにし、確認しないまま実装した

発注者の意見は「この通りに実装しなくてはいけない」という命令ではなく、単に「実現したい」という要望にすぎません。発注側は伝えた通りの機能を欲しているのではなく、知識不足を開発側に補ってもらいながら、より使いやすいシステムを作り上げることを第一に望んでいます。

しかし、先方の言葉を「命令」として受け取り、ただ要望通りの機能を実装するだけであればどうなるでしょう。無理のある実装で使い勝手が悪い、従来と変わらない使用感であるとなれば、「コストパフォーマンスにまったく見合わない」ということにもなりかねません。わざわざ開発してもらう必要性を感じられないため、結果として仕様の再調整や修正依頼に繋がってしまいます。

 

システム開発を成功させるためには

繰り返しになりますが、システム開発における失敗原因の多くは、発注側と開発側のコミュニケーション不足によるものです。これを改善するためには、まずは意識的にコミュニケーションの量を増やすことが重要です。相手の言っていることを「理解した」と思っても、自分の言葉でまとめてから先方にお伝えし、認識にズレがないか確認することが重要でしょう。

また、発注側がある程度のシステム開発に関する知識を有しておくことも、効果的な対策です。ゼロから開発の知識を身に付けるのは困難ですが、システム開発の流れや開発手法といった基本的な知識を身に付けておくだけでも、より円滑なコミュニケーションを取ることができるでしょう。

これらに注意し、積極的に双方のコミュニケーションを取ることで、システム開発の成功率を高めやすくなるのです。

 

システム開発会社選びはプロにお任せ完全無料で全国2000社以上からご提案

200x200b

・ベストマッチな発注先が見つかる
・たった1日のスピード紹介
・ITに詳しいコンシェルジュがサポート
・ご相談~ご紹介まで完全無料

 

 

■システム開発に関連した記事

東京でおすすめのシステム開発会社12社【最新版】

 

 

システム開発における見積もりって何をチェックすればいい?

 

 

 

関連する記事

PAGETOP