システム開発の現場において「成功するシステム開発は3割、残りの7割はシステム開発に失敗する」という言葉が存在します。
なぜ7割もの企業がシステム開発に失敗してしまうのでしょうか。
システム開発は企業にとって大きな投資であり、部署単位のシステムならまだしも、社内全体の基幹システムの開発でシステム開発失敗に陥ると取り返しのつかない事態に陥ってしまいます。
これからシステム開発を行う方は、他社のシステム開発失敗事例から失敗原因を理解し、同じ失敗を繰り返さない対策とったうえで、システム開発に取り組む必要があります。
そこで、この記事では、ノーコード・ローコード開発に特化したシステム開発サービスを運営し、数多くのシステム開発を成功させてきたBOLTが、企業がシステム開発失敗に陥る原因を説明すると共に、システム開発を成功させるポイントを解説します。
これからシステム開発に取り組む方は必見です。
よくあるシステム開発失敗例
7割の会社がシステム開発に失敗していると冒頭で説明しましたが、システム開発失敗の内容はどの企業にも共通しています。
ここでは企業のシステム開発失敗例を紹介していきます。
いつまで経ってもシステムが完成しない
システム開発プロジェクトは開発前に発注者と開発者の間でスケジュールを策定します。
経営層はプロジェクト責任者から報告を受けた期日にシステムが完成し、現場でシステムが稼働して、業務が効率化することを期待します。
しかし、完成予定日になってもシステム完成の報告はなく、気が付くとシステムが完成予定日から数カ月経っても完成していない失敗例です。
システムが予定通りに完成しない原因は多く存在しますが、最も多い原因は開発中に想定外の必要機能が発覚し、機能追加しないとシステムが動かないために開発期間が伸びるパターンです。
この失敗は開発段階前の要件定義で業務要件や必要機能を洗い出せていないために生じる問題です。
開発期間が伸びるということは、予定していたシステム開発費用に加え、開発会社のエンジニアやプロジェクトマネージャーが稼働をするための追加費用が発生し、当初の開発予算とは別の追加開発費用が必要になります。
社内で利用する業務システムならまだしも、顧客に利用してもらうことを目的としたシステムの場合、開発期間の延長はチャンスロスに繋がり、ビジネスに大きな影響を与えます。
完成したシステムがイメージしたものと違う
システムが予定通りに完成したが、完成品を確認すると要望していたシステムと全く違うシステムになっている失敗パターンです。
納期通りに完成したとしても、完成品が要望とするシステムと異なる場合は全く意味のないシステムになってしまいます。
このケースは要件定義段階は発注者と開発会社が密なコミュニケーションをとっていましたが、開発フェーズに入った途端、コミュニケーションが希薄になり、発注者が成果物を確認することなく開発が進んでしまった場合に起こります。
要望通りのシステムにならなかった原因が開発会社にある場合は、無償で修正できますが、多くの場合は発注者側にも責任があるケースが多く、その場合は当初の開発予算相当の追加費用と時間をかけて、再度システムを開発しなおすことになります。
開発したシステムが現場で利用されなかった
計画したスケジュール通りにシステムが完成し、開発会社も要望通りのシステムを作り上げたことで、安心して現場に届けたが、誰もシステムを利用してくれない失敗パターンです。
これは開発プロジェクトチームにシステムを利用するメンバーが入っていないもしくは利用者の声が反映されていない場合に起こるケースです。
失敗するシステム開発は「この機能があれば便利だろう」、「この画面であれば使いやすいだろう」とプロジェクトメンバーの思い込みでシステム構想が決定してしまいます。
そのため、システムを利用する側の意見や要望が反映されず、プロジェクトメンバーが勝手に考えた一方通行なシステムが完成します。
利用者の意見が反映されていないため、本来の業務方法に即していない、使い勝手が悪いなどの声が上がり、結果として現場は開発したシステムを使わずに、従来の非効率な業務のまま仕事をしてしまいます。
スケジュール通りに要望通りのシステムが開発できても、現場が利用しなければ、何の価値もないシステムになるため、せっかくのシステム投資が無駄になります。
なぜシステム開発が失敗するのか
なぜ、システム開発は7割の企業が失敗してしまうのでしょうか。
システム開発失敗の原因は依頼した開発会社にあるのではなく、多くの場合は発注者側に問題がある場合が多いです。
失敗する企業には共通点があり、多くの会社が過去のシステム開発失敗に学ぶことなく、同じ失敗を繰り返しています。
ここでは、企業がシステム開発に失敗する原因を紹介していきます。
発注者側の開発するシステム要件が固まっていない
開発会社はあくまでも要望されたシステムを開発するのが仕事であり、どんなシステムにしたいか、どんな機能が必要になるのかは発注者側が明確にする必要があります。
開発するシステム要件が発注者側で明確に固まっていないまま開発が進んだ場合には、システム開発は失敗します。
発注者は曖昧な説明をしても、「開発会社が補ってくれるだろう」と考えているかもしれませんが、開発会社は与えられた情報や要件以外はシステムに反映してくれません。
そのため、開発者側はシステムを開発する目的と目的を達成するためにどんな機能が必要なのかを明確にして、開発会社に情報提供する必要があります。
システム投資を判断する経営層も事前に課題を解決するシステム要件であるかを確認したうえで投資判断をする必要があります。
システム投資判断においては「PoC(概念実証)」という判断方法が用いられています。
プロジェクトメンバ-が多すぎる
失敗するシステム開発は、システム開発プロジェクトに関わる人数が多いです。
多くの意見をシステム開発に取り込むことを目的として、プロジェクトメンバーを増やすあまり、優先度の低い意見や機能要望が溢れてしまい、結果として、社内で要件をまとめきれなくなることがあります。
人数が多ければ多いほど、メンバー全員の合意をとるにも時間が必要になるので、予定していたスケジュール内での発注者側の決定が遅れ、開発スケジュールが遅延することもあり得ます。
プロジェクトメンバーが多いほうが、いいシステムができると思われがちですが、人数が多ければ多いほど、プロジェクトに弊害をもたらすことになります。
開発会社との認識のずれ
発注者と開発会社に認識のずれがある場合、システム開発失敗に直結します。
開発会社はシステム開発は得意ですが、発注者側の業務や企業文化に関しては知識を持っていない素人同然です。
そのため、「分かっているだろう」、「言わなくても通じている」と十分な認識合わせをせずに、開発を進めてしまうと、完成後に大きな後悔をすることになります。
手間がかかる作業ですが、発注者は懇切丁寧に業務要件や要望を開発会社に伝えることが重要です。
開発会社からシステム要件に対して質問がないから認識がとれたと思うのは大きな間違いです。
開発フェーズを管理していない
要件定義が終わった後に開発会社任せにすると、システム開発は失敗します。
多くの場合、発注者は要件定義フェーズが終わると安心してしまい、開発フェーズを全て開発会社に任せて、進捗報告だけ聞いて満足してしまいがちです。
しかし、要件定義が終わった後も発注者はシステムの開発進捗を詳細まで管理する必要があります。
開発期間中の成果物の確認など怠った結果、完成後に開発ミスや認識間違いに気づきますが、時すでに遅しです。
システム開発成功のポイント
これまで、システム開発失敗事例と失敗する原因を紹介してきましたが、具体的に何をすればシステム開発を成功させられるのか、気になるのではないでしょうか。
システム開発を成功させるためには、システム開発前の発注者側の入念な準備が必要になります。
ここでは企業がシステム開発を成功させるための準備するべきポイントを4つ紹介していきます。
システムの目的を明確にする
システム化を成功させるには開発するシステムの目的が明確であることが必須です。
目的が明確でない場合は、必要とする機能や要件を洗い出すことができず、結果としてプロジェクトの遅延や完成後の追加機能開発が発生します。
開発するシステムで社内の課題をどのように解決するのかを、プロジェクト開始前に明確に設定することが大切です。
システム開発の目的が明確であれば、必要な機能とそうでない機能の切り分けがはっきりするので、作り忘れていたという事態にはなりません。
優先順位を明確にする
発注者は優先順位を明確にしたうえで、システム開発に臨むことが重要です。
システム開発は要件定義を行う中で、「こんな機能があればもっと便利に」「この画面があれば使いやすくなる」と様々なアイディアが生まれるものです。
大半のプロジェクトは見積依頼した時点で開発要件に入っていない機能や仕様が追加で浮かびあがりますが、これらを全てシステムに追加しようとすると、システム開発の遅延を生み、追加予算も必要になります。
新しく出てきた要望を全てシステムに追加しようとするのではなく、システム開発の目的と照らし合わせて、本当に今追加しなければならない機能なのか、後でもいいのかの優先順位を付けることが重要です。
優先順位をつけることは開発会社にとっても開発する機能の順序立てやスケジュールを組みやすくなるので両社にとって望ましい結果に繋がります。
業務内容を理解する
システム開発プロジェクトには必ず業務内容を理解した人材を加える、もしくは入念な現場ヒアリングを行い、業務の現状を理解する必要があります。
業務内容を理解せずに構築されたシステムは、必ず現場からの反発や利用されないという事態に繋がります。
システム開発成功は、開発したシステムが現場でシステムが利用されて業務効率化を達成して、初めてシステム化に成功したと言えます。
システム化を成功させるには、現場がどの部分を課題に感じ、どんな機能・どんな画面・どんな操作性を求めているのかを理解したうえで、システム開発に臨むことが大切です。
システム開発のトレンドを理解する
システム開発をする場合は、システム開発の最新トレンドを踏まえた検討が必要です。
情報技術は日進月歩で進化しており、半年前まで最新技術だったものが、半年後には廃れた技術になることは珍しくありません。
情報技術の進化に伴い、企業のシステム開発のトレンドも常に変化しています。
システム開発のトレンドを理解をせずに、いつも依頼しているシステム会社にシステム開発を依頼してしまうと、依頼先の扱う技術が古い場合、完成するシステムも時代遅れのシステムになってしまいます。
そのため、システム開発を行う場合は、システム開発のトレンドを理解した上で、最も適した開発方法・開発会社を選定する必要があります。
現在のシステム開発のトレンドはエンジニアのコーディングを必要とせず、画面上のドラック&ドロップ操作でシステム開発が行える「ノーコード開発」「ローコード開発」です。
これらの開発手法を用いると、従来の開発手法よりもはるかに安く、拡張性の高いシステムを短期間で開発することができます。
【まとめ】システム開発失敗は発注者側の準備不足が原因
この記事では、企業がシステム開発失敗に陥る原因とシステム化を成功させるポイントを解説してきました。
企業がシステム開発に失敗するのは発注者側の準備不足が原因です。
そのため、企業がシステム開発を成功させるためには、発注者側が以下の4つポイントに関して入念な準備を行う必要があります。
- システムの目的を明確にする
- 優先順位を明確にする
- 業務内容を理解する
- システム開発のトレンドを理解する
準備には時間と手間がかかりますが、システム化を成功させるためには決して、怠ってはいけない要素なのです。