HapInS Developers Blog

HapInSが提供するエンジニアリングの情報サイト

システム開発におけるよくある失敗例

システム開発の目的

システム開発のよくある失敗例をあげる前に、そもそもシステム開発とは何か考えてみましょう。

HapInSではシステム開発を何かしらのビジネス価値の創造をシステム(ソフトウェア)を通じて実現するプロセスのことだと考えています。

一方でIT化やシステム導入が目的となってしまい、本質的な目的を見失ってしまうケースが稀ではないのも事実です。

この部分は非常に重要なポイントのため発注者、受注者ともに認識を揃えていくことが大事だと考えています。

システム開発の成功とは

ではシステム開発を成功に導く上で、まずは成功の定義を確認していきましょう。

短期的な狭義の成功と、中長期的な広義の成功に分けて確認していきたいと思います。

短期 / 狭義

  • 想定したシステムの開発がスケジュール通り完了している
  • 開発したシステムでサービス展開が開始できている
  • 開発したシステムが既存業務にフィットした形で利用できている など

中長期 / 広義

  • 導入したシステムを通じてビジネス価値の創造ができている状態

このような状態を実現できることが、システム開発が成功した状態と言えるでしょう。

またシステム開発を行う上で、中長期 / 広義の成功が非常に重要であることも忘れてはいけません。

一方で上記内容に反した状態に陥ることがシステム開発の失敗とも言えるでしょう。

失敗に関する調査結果

では本題のシステム開発の失敗にフォーカスしていきたいと思います。実は国内外問わず、多くのシステム開発が失敗に終わっています。

「ITプロジェクト実態調査 2018」では、国内1745件の調査のうち約50%のプロジェクトが失敗したと回答しています。 (参考)

そのためどんな人でもシステム開発の失敗に遭遇する可能性があります。

また同調査内で、システム開発をした後に「当初の計画通りにシステムが利用されていない」と回答したプロジェクトのうち大半が初期フェーズ(要件定義フェーズ)での失敗だったようです。(参考)

このようにシステム開発は失敗が多く、またプロジェクトの初期フェーズの対応がキモとなってきます。

上記を踏まえてシステム開発のよくある失敗例とその回避策を見ていきたいと思います。

よくある失敗例

プロジェクト開発の失敗例としては主に以下のようなものがあげられます。

  • スケジュール通りにプロジェクトが完遂しない
  • 当初想定していたシステムと乖離したものが納品される
  • 納品されたシステムの品質が悪い
  • 初期の予算を超えて追加開発費用がかかってしまった など

これらは全て、想定していたQCD観点の基準を達成出来なかった結果と言えるでしょう。

また各失敗を深掘り具体的な原因を考察していきましょう。

スケジュール通りにプロジェクトが完遂しない

これは要件定義時に組んでいたスケジュールに不備があったか、進めていく中で発覚した前提条件や必要機能の追加が主な原因となります。

システム開発はプロジェクト初期のフェーズだと不確実性が高く、プロジェクトスコープの見積りも最大4倍ほどのばらつきが発生すると言われています。

そのためシステム開発における不確実性に上手く付き合っていく必要があります。

出典: 「ソフトウェア見積り 人月の暗黙知を解き明かす」

当初想定していたシステムと乖離したものが納品される

この問題はいくつかの理由から発生するのですが、主に以下のような原因が考えられます。

  • 発注者側と受注者側で専門性や知識に非対称性があり、本当に欲しい機能を言語化できない、もしくは上手く伝えることができない
  • 要件定義等の初期フェーズはドキュメントベースでのやり取りが続くため完成したシステムのイメージが掴めない
  • 納品やテストのタイミングまで動くシステムを確認することが出来ない など

具体的な問題点については、こちらの記事をご確認ください。

納品されたシステムの品質が悪い

この問題は、システム開発の予算を削り価格重視で開発ベンダーを選んでしまった際に発生する可能性が高いです。

具体的な理由や問題点については、こちらの記事をご確認ください。

納品されたシステムの品質が悪い場合、利用中にバグが多数発生しビジネス的な損失に繋がったり、改修コストがかかったりと様々な問題を引き起こします。

初期の予算を超えて追加開発費用がかかってしまった

こちらも「スケジュール通りにプロジェクトが完遂しない」と同様に、システム開発における不確実性が関連しています。

予算を取るタイミングで見えてなかった前提条件や機能が、プロジェクトを進めていく中で発覚することで追加発注が必要となります。

また契約方法によっては、他の優先度が低い機能への工数を新しく必要になった機能へ移すことが難しい場合もあります。

失敗を回避するには

それでは上記失敗を回避する方法を一緒に見ていきましょう。またHapInSでは、どういった取り組み行っているかも併せて記載していこうと思います。

スケジュール通りにプロジェクトが完遂しない

こちらは見積のフェーズ毎に抱える不確実性を正しく理解し、不確実性を効率的に取り除くことで回避できます。

例えば見積時点で概算見積と詳細見積をフェーズとして分け、詳細な見積に関しては要件定義フェーズを終えた後に行うことでより精度の高いスケジューリングを行うことが可能です。

HapInSでは、プロジェクトを進めていく中で見えてくる機能の優先度や、機能の要不要を常に分析しプロジェクトにフィードバックします。

そのため当初想定していた機能と多少差分があったとしても、本当に必要なものに機能を絞ることでスケジュール内に開発完了する可能性を大幅に高めます。

一方で上記対応については契約方法によって対応できないケースもあるため、HapInSが推奨する契約形態についてこちらの記事をご確認ください。

当初想定していたシステムと乖離したものが生まれる

こちらはドキュメントベースのやりとりでシステムイメージが掴みづらかったり、納品やテストのタイミングまで動くシステムを確認することが出来ないのが主な原因でした。

そのためペーパープロトやデザインプロト等でシステムイメージを事前に確認したり、定期的に動くシステムを確認できる環境を提供することで想定との乖離を小さくすることが可能です。

HapInSでは、プロジェクトの規模に応じて事前に簡単なプロトタイプを作成しイメージの擦り合わせをすることで認識の乖離を軽減しています。

また開発時もアジャイル開発をベースに行うため、常に動くソフトウェアベースでプロジェクト進行の状況確認やディスカッションが可能です。

HapInSがの開発プロセスについてはこちらの記事をご確認ください。

導入したシステムの品質が悪い

こちらは金額の安さを軸に開発ベンダーを選定することが主な原因でした。

一方でシステム導入の頻度が少なかったり導入を初めて行う企業では、開発に予算をかけられない実態や、開発の相場が分からない等の課題感があるのも事実です。

そういった場合には、初期の開発のスコープを絞り小さなシステム開発からお願いすることで開発ベンダーの対応力を確かめたり、セカンドオピニオンサービス等を活用して見積もりの相場と乖離してないか確かめることで失敗する可能性を下げることが可能です。

HapInSでは、クライアント企業との相性だったり弊社の対応力を理解していただくためにラボ型契約での開発をお勧めしています。

契約形態の詳細についてこちらの記事をご確認ください。

またHapInSでは、作成するシステムを本質的に必要な機能に絞ったり、各種支援金の活用をすることで開発予算を適切に圧縮する工夫も行なっております。

そのため初期の予算が少ないお客様においても、その予算内で品質を担保できる最大限の提案を行わせていただきます。

※ ただし予算が少ないと一定の制約が生まれることも事実のため、その点ご了承ください。

他にも弊社に発注予定がないお客様に向けて、無料のセカンドオピニオンサービスも提供しておりますのでお気軽にご相談ください。

初期の予算を超えて追加開発費用がかかってしまった

こちらは「スケジュール通りにプロジェクトが完遂しない」と同様に、プロジェクトの不確実性を効率的に取り除くことで回避できます。

HapInSでは、プロジェクトを進める中で不要と判断した機能は開発しないことを徹底したり、追加要求の上がった機能についてもなぜ必要なのかしっかりと議論することで適切な機能追加を行っております。

また契約形態によっては工数の移動も柔軟に行えるため、プロジェクトの状況に応じて優先度の高い機能の開発に注力することが可能です。

さいごに

このようにシステム開発の失敗には多くの理由が存在し、誰しもが失敗に陥る危険性をはらんでいます。

また世の中の変化も激しくシステム開発の特性によって最適解も異なるため、システム開発の難しさを助長しております。

一方でHapInSではお客様や要求としっかり向きあい、対等な関係でプロジェクトを進めることでシステム開発の不確実性に取り組んでいます。

「まだシステムの要件が決まってない」「お願いしようとしている開発会社で良いのか分からない」「見積を貰ったけど何を基準に選定すれば良いか分からない」など、どんなお悩みでも構いませんので、是非一度HapInSのエンジニアと会話してみませんか?

blog.hapins.net