IT業界で働いていると、システム開発の失敗エピソードを頻繁に耳にします。
発注者と受注者の双方を不幸にするシステム開発の失敗は、下手な怪談よりもよっぽど恐ろしいものです…。
今回の記事では、システム開発が失敗・炎上する理由を取り上げた上で、私自身の経験を基にどうやったらシステム開発の失敗を防げるかを考察してみたいと思います。
目次
システム開発の失敗・炎上とは
一口にシステム開発の失敗と言っても、正確に失敗の定義がある訳ではありません。
一般的には、予定と比べて大幅な納期遅れや費用の増加が生じている状態や、発注者側が完成物に対して満足できない場合を、システム開発の失敗(もしくは炎上)と言います。
想定外のトラブルが立て続けに発生した結果、様々な対処を施しても開発の終わりが見えなくなってしまうケースも少なくありません…。
また、納期に間に合わせる為に急ピッチで進めたところ、顧客側が満足できるシステムを開発できなくなり、プロジェクト自体が失敗に終わることもあります。
業界外の方には想像しづらいかもしれませんが、システム開発にとって炎上や失敗は当たり前の光景となっています。
炎上案件化させたくないと思っていても、多くのシステム開発は失敗(炎上)してしまいます。
それほどシステム開発プロジェクトを成功させる事は難しいため、あらかじめ失敗する原因・理由を理解しておき、対処しておく必要があります。
システム開発の失敗割合(確率)
なんと、ある統計では30%〜40%の割合でシステム開発は失敗していると言われています。
システム開発が失敗する割合は、近年は低くなっている傾向にありますが、それでも非常に高い割合で開発プロジェクトが失敗している事がわかります。恐ろしいですね…。
成功と失敗の定義にもよりますが、私の実感としても、一定割合のプロジェクトは何かしら炎上して、大幅なスケジュール遅延や、仕切り直しが行われている印象があります…。(規模感が大きくなればなるほど、失敗率の上昇や炎上の深刻度が増していく印象です。)
以下の記事では、各団体が公表しているシステム開発の失敗割合や、失敗要因の分析データについて、分かりやすくまとめられていて、非常に参考になりました。素晴らしい分析内容なので、ご興味のある方は読んでみて下さい。
システム開発が失敗する理由(原因)
システム開発が失敗する理由(原因)には大小様々ありますが、大別すると以下5つの理由に大別されます。
発注サイドと開発サイドのコミュニケーション不足
他の理由にもつながる部分ですが、発注サイドと開発サイドのコミュニケーション不足はシステム開発が失敗する最たる要因です。
例えば、顧客側がシステム開発サイドに「こんな感じのシステムを作って欲しい!あとよろしくっ!」と言った感じで、要件を詰めきらないまま、開発サイドに丸投げして、コミュニケーションをとらずに放置してしまうケースです。
もちろん、信頼できるパートナーに丸任せする事自体は悪いことではありません。
しかし、しっかりとコミュニケーションをとらずに、要件定義が甘いまま開発がスタートすると、プロジェクトの途中で大きな仕様変更が発生したりと大きなトラブルに発生してしまう可能性があります。
プロジェクト開始前、プロジェクト中、サービスリリース後の運用まで、発注側と開発サイドは綿密にコミュニケーションをとる事が非常に重要です。
非現実的な納期・見積もり
非現実的な納期や見積もりも、システム開発が失敗する要因の一つです。
見積もりの甘さが原因で、工数や費用が予想以上に膨れ上がってしまうケースです。
システムの要件定義が定まっていない状態で、正確な納期や見積もりを決定する事はほぼ不可能です。
開発会社が、開発案件を獲得したいが為に、非現実的な見積りや納期を提案してしまう事で結果的にプロジェクトが炎上してしまう事もあります。
PMやメンバーの能力不足
開発サイドから見たシステム開発の失敗要因としては、PM(プロジェクトマネージャー)や開発メンバーの能力不足が考えられます。
システム開発のプロジェクト内容によって、求められる開発メンバーの能力は異なります。
難易度の高い開発なのに、経験値の低いエンジニアだけでチームを構成すると、ご想像の通り失敗する可能性が一気に上がります。
また、大規模なプロジェクトになればなるほど、PM(プロジェクトマネージャー)のプロジェクト進行管理能力が重要になります。
関係者が一丸となっていない
システム開発を成功させる為には、発注サイドと開発サイドが一丸となってプロジェクトを進行する必要があります。
開発サイドが、開発にコミットメントするのは当然なのですが、発注サイド(顧客側)も積極的にプロジェクトに参加する必要があります。
プロジェクト成功という共通ゴールにむかって一丸とならず、責任の押し付けあいや、疑心暗鬼による必要以上のマイクロマネジメントなどが発生すると、プロジェクト失敗の可能性は大幅に上がってしまいます。
スケジュールにゆとりがない
どれほど精緻にスケジュールを策定しても、想定外のトラブルはほぼ確実に起こるものです。
トラブルが発生する前提でスケジュールにゆとりを持たせなければ、一度想定外の事態が発生した時点で、たちまちプロジェクトの炎上へと繋がります。
システム開発の失敗(炎上)事例〜某メガバンク〜
システム開発の失敗(炎上)事例として、某メガバンクの事例が有名です。
SI界のサグラダファミリアと呼ばれ、永遠に終わる事のない開発プロジェクトとして恐れられていましたが、2017年に完成しました。
このシステム開発が炎上した理由は、開発体制の管理が非常に複雑であることや、プロジェクトの人員不足が指摘されています。
大規模、かつ金融系システムといった恐ろしく難易度の高いプロジェクトですので、一般的なWebサービスやアプリ開発と比較する事はできませんが、開発にまつわるプロジェクトマネジメントについて多くの教訓を学べます。
以下のサイトでは、某メガバンクの炎上事例を分かりやすく考察しているので、参考にしてみて下さい。
システム開発の失敗を防ぐ方法
システム開発の失敗を防ぐ為には、先ほどお伝えした失敗する理由・原因を意識していただくと、成功確率を上げられると考えています。
繰り返しになりますが一番重要なのは、開発サイドと発注サイドが密にコミュニケーションをとって、システム開発に取り組むことが大切になります。
また発注サイドでは、開発会社に丸投げするのではなく、社内の権限のあるメンバーが主体的にシステム開発プロジェクトに携わると、失敗する可能性を減らせるでしょう。
一方で開発サイドでは、顧客のつくりたい要件を正確に汲み取った上で、顧客をうまく巻き込みながらチーム一丸となって開発プロジェクトに取り組むことが重要になります。
最後に
今回は、システム開発が失敗する理由と、失敗を防ぐ方法を解説しました。今回お伝えした内容が、システム開発の成功につながると幸いです。
私達、techpartnerは新規事業のアプリ・Web開発に特化して事業を行っています。
もし新規事業としてアプリやWeb開発を検討される際は、お力になれるかもしれませんので是非お声がけ下さい!!