AI(人工知能)やIoT(モノのインターネット)の技術がますます発達していくDX時代において、発注・在庫管理システムや顧客情報管理システムなど、仕事に必要な仕組みや枠組みとして使用できるアプリケーションの開発は必要不可欠な存在です。
IT技術を駆使してさまざまな仕組みや枠組みを構築する「システム開発」は、企業が業務効率化を図るうえで欠かせないものとなっています。
しかし、システム開発では思うようにいかず、失敗に終わってしまうケースも少なくありません。
システム開発は常に失敗と背中合わせの状態です。
「システム開発における失敗とは?」
「システム開発における失敗の原因は?」
「システム開発の具体的な失敗例はどのようなものがある?」
「システム開発の失敗を防止するための対策は?」
このような不安や悩みを抱えている方も多いのではないでしょうか。
そこで本記事では、システム開発の失敗における原因や防止策について、具体的な失敗事例を交えて解説します。
この記事を最後まで読めば、システム開発の失敗を回避し、プロジェクトを順調に進められます。
システムの開発担当者だけでなく、発注担当者も、ぜひ参考にしてください。
なお、システム担当者を育成するオンライン学習コースが「MENTER」には搭載されています。ぜひチェックしてみてください。
ITに強い人材を育成できるオンライン学習 MENTERはこちら
システム開発における失敗とは?
前提として、そもそも「システム開発における失敗」とはどのようなことを表すのでしょうか。
「システム開発における失敗」は明確な境界線はないため、厳密には定義できない内容です。
敢えて定義するとしたら、システム開発では「成果物の完成」を目指すことから、システム開発の失敗は「納期までに成果物が完成できなかったこと」を意味します。
具体的には、以下のような状態を指すことが多いです。
- 期限までに開発が終わらなかった
- 予算を大幅に超過した
- 開発されたシステムがユーザーの要求を満たさなかった
システム開発のプロジェクト管理においては、QCDを重視する必要があります。
QCDとは、「Quality(品質)」「Cost(コスト)」「Delivery(納期)」を意味し、システム開発の成功を判断する基準のひとつです。
実際のところ、システム開発の失敗はどの程度の割合で起こっているのでしょうか。
ある実態調査によると、システム開発プロジェクトの成功率はわずか約27%という結果が出ました。
*大手から中堅・中小に至る約12,000社を対象に実施した調査で、システム開発で守るべき3条件のQCD(品質・コスト・納期)をクリアできなかったプロジェクトを失敗としています。全体のほぼ4分の3が失敗ということになります。
失敗する理由はさまざまです。
「チーム全員が要件を共通で理解していなかったため、好ましくない仕様で進めてしまった」
「社内の上層部から、仕様を大幅に変えなければならない指示があった」
「リリース間近までコンテンツが用意できず、検証する時間が取れなかった」
*参考サイト:https://www.cisco.com/web/JP/news/cisco_news_letter/mail/0210/special/index.html
システム開発が失敗する5つの原因
システム開発の失敗にはさまざまな原因が考えられます。
システム開発が失敗に終わる原因を理解し対策を講じておけば、失敗を未然に防ぎ、成功確率を少しでも上げることが可能です。
ここでは、システム開発が失敗する主要な下記5つの原因をご紹介します。
- 要件定義の不足
- コミュニケーション不足
- 見積もりが不十分
- 技術ミスや品質不備
- 構築体制が不十分
システム開発失敗原因①:要件定義の不足
要件定義が不十分かつ曖昧な場合、プロジェクトの途中で漏れや抜けを発見して大幅な仕様変更が生じてしまうことが多く、結果的にプロジェクトが失敗に終わってしまう傾向にあります。
要件定義とは、システム開発やソフトウェア開発などのプロジェクトを開始する前の段階で、必要な機能や要件(求められる要求や条件)を明確に定義する作業工程のことです。
要件定義はシステム開発における最上流工程であり、プロジェクトは要件定義の内容をもとに進んでいくため、最も重要なフェーズです。
要件定義が不十分になる原因としては、システム開発者が発注者の要求や条件をそのまま受け入れて開発してしまうことが考えられます。
システムの開発担当者は、要件定義を鵜呑みにするのではなく、「なぜその機能が必要なのか」という観点で要件を検証することが求められます。
システム開発失敗原因②:コミュニケーション不足
プロジェクト開発を進行していくなかで最も重要な要素といっても過言ではないのが、コミュニケーションです。
正しい情報が正しく伝わらないと以下のようなリスクが伴います。
- 間違った認識のまま開発が進む
- 成果物が仕様とは大きく乖離したものになる
- 修正が何回も生じる
システム開発には開発チームのメンバーだけでなく、PM(プロジェクトマネージャー)や顧客、外部ベンダーなどさまざまな人物が介在するため、あらゆる場面においてコミュニケーションを取ることが必要です。
コミュニケーション不足から生じるリスクを少しでも軽減するために、各担当者との密なコミュニケーションを行うことで不明点や認識の齟齬をなくし、定期的な進捗管理で状況を把握しながらシステム開発を進めていきましょう。
システム開発失敗原因③:見積もりが不十分
見積もりが不十分であることも、システム開発が失敗する大きな原因のひとつです。
予算や納期、品質などの必要事項が記載された見積書をもとにプロジェクトは進行することから、いかに見積書が重要なものであるかわかります。
見積もりが失敗する多くの理由としては、今ある情報や自身の経験で作業工数を見積もってしまうことです。
たとえば、開発規模に対して低予算の場合、予算オーバーを理由にプロジェクトが中止になることがあります。
開発コストが膨れ上がる失敗は、見積書の不十分な確認が起因しています。
不十分な見積もりはシステム開発の失敗に直結するため、開発メンバーの工数やスキルを確認することや追加コストがある場合には再設定することなど、臨機応変な対応が必要です。
システム開発失敗原因④:技術ミスや品質不備
システム開発にあたって、開発者の技術ミスや品質不備も失敗の大きな原因のひとつです。
システムの実装難易度に対する開発者のスキルが見合っていない場合、そもそも実装できないことや実装できたとしても決して品質が高いとはいえない成果物を納品することにつながります。
そのような事態を招かないように、プロジェクトに携わる担当者が確かな技術やスキルをもっているか事前に確認する必要があります。
また、発注者側もある程度の知識を身につけることも重要です。
発注者自身も知識を身につけることで、受注者が高い技術で高品質な成果物を納めてくれるかどうかをしっかりと見極め、賢明な選択ができます。
システム開発失敗原因⑤:構築体制が不十分
構築体制が不十分であることも、システム開発が失敗する原因のひとつです。
当初は開発要件に対してしっかりとした体制を組んでいたつもりでも、突然の仕様変更によって失敗してしまった経験がある方も少なくないはずです。
仕様の変更や要望の追加などが頻繁に起こる可能性がある場合には、それらを事前に想定して突然の要望にも対応できる体制を整えておく必要があります。
指示通りの開発ではなく、要件定義から設計・開発工程まで主体的に動けるように、相互の連携や協力が大切です。
システム開発の具体的な失敗事例4選
システム開発には失敗がつきものです。
有名な大企業や各省庁がシステム開発に失敗すると、その影響力も甚大なものとなるため、ニュースで大きく取り上げられることが往々にしてあります。
ここでは、過去にニュースで取り上げられたシステム開発の具体的な失敗事例をご紹介します。
過去に大きな話題となったのが、以下の企業におけるシステム開発の失敗事例です。
- JA(農業協同組合)
- みずほ銀行
- 富士通
- 日本通運(日通)
システム開発の失敗例①:JA(農業協同組合)
JAやJA信連、農林中央金庫が一体運営している金融機関グループ「JAバンク」で起こったシステム開発の失敗は、非常に大きな話題となりました。
2021年夏以降、勘定系システムの不具合が3件立て続けに発生しました。
1回目のシステムの不具合は、2021年8月に発生したJAの窓口で振込処理ができなくなったトラブルです。
これは、JAバンクの勘定系システムが、顧客から入力された振込指示データを窓口端末から入力する「為替発信取引」ができなくなったことに起因します。
為替発信取引が機能しなくなったのは、勘定系システムで発生していた別のトラブルへの対応に問題がありました。
為替発信取引トラブルが発生する直前に、システム担当者が別の不具合を復旧させるために、誤ったコマンドを入力してしまったことが、根本の原因です。
これら一連のトラブルに対して、農林中央金庫は、以下のような再発防止策を発表しています。
- 運用についての規定や業務プロセスを再確認する
- 担当者が相互に作業内容などをダブルチェックする体制を周知や再確認する
JAで立て続けに起きたシステム開発のトラブルは、旧態依然としたレガシー組織の制度疲労と丸投げ体質が、システム開発の失敗という形で顕在化させたものとされています。
システム開発の失敗例②:みずほ銀行
システム開発の失敗例として、読者の記憶に鮮明に残っているのは、みずほ銀行のトラブルかもしれません。
というのも、度重なるシステムトラブルで大きな話題となり、ITガバナンスの概念が一般化することになった発端ともいえるからです。
およそ10年おき(2002年、2011年、2021年)に大規模トラブルが発生しており、2021年に至っては12ヵ月で11回という高頻度でシステム障害が起こりました。
みずほ銀行で頻発したトラブルの原因は、非常にシンプルで簡単な内容です。
直接的な原因は、統合前にあった旧2行の勘定系システムを連係させる仕組みや、口座振替処理を旧3行の勘定系システムに振り分ける仕組みに不具合があったことです。
つまり根本的な原因としては、経営陣がシステム開発への知識や理解が乏しく、無理のある短期間でのスケジュールでシステム統合を強行したことが挙げられます。
みずほ銀行のシステム障害の事例からも、システムの不具合や問題が発生しないように事前準備を怠らないことや大企業であるが故の上流組織から押し付けられる無理難題を改善することが重要です。
システム開発の失敗例③:富士通
最も記憶に新しいと思われるシステム開発の失敗例は、日本の大手総合ITベンダー「富士通」が起こしたマイナンバーに関するトラブルです。
富士通の子会社「富士通Japan」が提供・運用するマイナンバーカードを利用したコンビニでの証明書交付システムで別人の証明書が交付されるトラブルが、2023年3月以降に全国の自治体で相次いで発生しました。
証明書の交付申請が集中してシステムに大きな負荷がかかったことが原因として、点検で動作確認を行ったのちにサービスの利用再開を行ったものの、わずか3ヵ月後の6月に福岡県宗像市で同様の不具合が起きました。
その後、再点検の結果として明らかとなった原因としては、44の自治体などでシステム障害に対するプログラムの修正が正常に行われていなかったということです。
その本質的な原因としては、「組織における不十分な品質管理の仕組み」にあったと考えられます。
近年、富士通はビジネスモデルの転換と組織の再編に取り組んできました。
企業や行政から依頼されることの多かった独自仕様の開発システムから成長分野であるクラウド事業への投資を優先的に行い、ビジネスモデルの転換へと舵を切りはじめています。
このような数少ない限られたリソースを新規事業に割かなければいけないような急速な組織体制の変化によって、システム開発における品質のマネジメントや組織のガバナンスが疎かになってしまったことが考えられます。
システム開発の失敗例④:日本通運(日通)
総合物流業界最大手の日本通運(日通)におけるシステム開発の失敗事例は、途中で中止になってしまったトラブルです。
日本通運では、航空輸送事業でグローバルな共通基盤の構築を目指す「新・国際航空貨物基幹システム」の開発を進めていましたが、当初の計画よりも開発コストの増加や開発期間の延長などが見込まれることから開発の途中で頓挫することとなりました。
日本通運の親会社「NIPPON EXPRESSホールディングス」の赤石衛取締役執行役員は決算説明の場で、「しかるべき働きかけやチェックをし切れないまま、ずるずると時間を要してしまった」と述べていました。
当初の計画や要件から変更となって途中で断念するケースは、企業の規模に関わらず、多発しています。
開発断念の理由として多く挙げられるのは、日本通運の失敗事例でも当てはまる「開発の遅延」です。
要件定義の不備やコミュニケーション不足が失敗の背景として考えられます。
このような失敗を防ぐためには、システム開発における上流工程である要件定義の段階で開発ベンダーや各担当者としっかりと密にコミュニケーションを図ることと納品前の段階で成果物の検証を行うことが求められます。
システム開発で失敗しないための4つの防止策
プロジェクトを成功に導くために必要なチェックポイントは、プロジェクトの内容や規模、業種など様々な要因によって変わります。
様々なケースが考えられますが、大きく分けると以下の4種類であると考えることができます。
- 事前準備
- パートナー選定
- プロジェクト全体俯瞰とコントロール
- リスク管理
システム開発失敗の防止策①:事前準備
システム開発を失敗させないために最も重要なことは、事前準備です。
開発する予定のシステムで実現したいことを明確化することや、途中で頓挫しないように事前に要件定義の内容を担当者と密に擦り合わせて内容を具体的にすることが重要です。
要件定義は、システム開発において特に重要なフェーズとされています。
システムが必要とする機能や性能、コストや納期など必要事項がすべて定められた要件定義の段階で詳細内容を明確化するようにしましょう。
要件定義をはじめとする事前準備を徹底することによって、プロジェクトの今後の方向性が具体的かつ明確になり、システム開発失敗のリスクも軽減されます。
システム開発失敗の防止策②:パートナー選定
システム開発が失敗しないように、パートナー選定も重要です。
安い費用だからと飛び込むと思っていたものと異なる成果物が納品されるなどの危険性があります。
コスト面や品質面など総合的に勘案して判断できる視座が必要です。
最適な開発パートナーを選定するにあたっての判断基準として以下のようなものが挙げられます。
- 過去のシステム開発の実績や経験が豊富
- 最新の技術やトレンドに関しての知識やスキルがある
- 十分なリソースがある
上記のポイントを意識して、自分にとって最適なパートナーを選定しましょう。
システム開発失敗の防止策③:プロジェクト全体俯瞰とコントロール
システム開発を失敗させないためには、プロジェクトを俯瞰して適切にマネジメントやコントロールするスキルが欠かせません。
システム開発にはあらゆる担当者が携わります。
その多様なメンバーを適切にマネジメントするためには、PM(プロジェクトマネージャー)が各メンバーと密にコミュニケーションを図り、プロジェクトを問題なく進行させることが求められます。
システム開発失敗の防止策④:リスク管理
リスク管理・リスク分析とは、システム開発・運用していくうえで、どこにリスクが存在していて、そのリスクが発生した場合、どの程度損失や影響があるのかを推測し分析することです。
リスク分析は一般的に「発生確率」と「影響度」で大小をつけ、優先順位の高いものから対処していくようにします。
優先順位はケースにより異なりますが、一般的に B>A,D>Cと考えます。
- B:影響度が高く発生確率も高いものは、最も優先度が高いリスク
- C:影響度が低く発生確率も低いものは、優先度を落としてもよいリスク
- A:影響度は低いが発生確率が高いものは、随時対応する手間を考えると優先度を高く考えるべきでしょう
- D:発生確率は低いが影響度が高いものは、コストとのバランスを考慮して対応を検討しましょう
このように、リスクへの対策は重要な項目や効果の上がりやすい項目から着手することが有効的です。
また、プロジェクトを失敗せずに完遂するためには、リスクを一元管理し、コントロールする手法が必要とされます。
システム開発の失敗についてまとめ
開発規模に関わらず、システム開発に失敗は伴いますが、失敗の多くは「不十分な要件定義」や「コミュニケーション不足」などある程度決まった原因で発生します。
そのため、起こりうる原因を理解し、しっかりと防止策を講じることが大切です。
リスクの発生確率と影響度の度合いを考慮し、優先順位の高いものから対応しましょう。
また、システムの開発者側だけでなく、発注者側も最低限のITに関する知識やスキルを身につけておくことが求められます。
なお、システム担当者を育成するオンライン学習コースが「MENTER」には搭載されています。ぜひチェックしてみてください。
コメント