• システム開発現場で、
    よく起こること。

なぜシステム開発・導入が失敗するのか?

ほとんどのシステム開発・導入が失敗するのは、それなりの法則パターンがある

システム開発・導入のプロジェクトが失敗するのは、通常、誰か1人の失敗でもなく、開発者と依頼者の両側に問題がある場合があります。以下はプロジェクトが失敗する場合に、よく見られる理由です。

開発者側の問題 #1:

依頼主の意向を直接聞けるポジションにプログラマーがいない

仕事自体が直請けではなく、実際の開発会社が2次、3次請けとなっているケースが多く、 エンドユーザーである本当の依頼主の声が届かないところで開発を行っているのが、一説には95%以上とも言われています。

システムコンサルタントなど設計を行う担当と、実際にコーディング(プログラミング)する担当が分かれているのがほとんどで、 システム必要性の根拠から、システムポリシーや用途、目的までをきちんと把握してコーディングしている開発者は非常に少ないといえます。

また設計段階では見えていなかった問題や、将来的に問題になりそうなことを最初に気付くことができるのが、直接開発をしているプログラマーやSEなのですが、彼らがただ指示書どおりに仕事を進めることだけを考えていたら、問題は簡単に埋もれ、それがいつか爆弾に変わることさえあります。

開発者側の問題 #2:

コーディングできないシステムコンサルタント/システムエンジニアが設計をする

おおよそ設計を担当している者は、過去にプログラミングをした経験を持つ者が多いが、今は自らコーディングをしていないというのがほとんどのケースです。最先端の技術論も雑誌や人の話の受け売りで、机上の空論的設計となり、実際の開発で生ずる問題や危険性等を認識できていない場合が多くなります。

開発者側の問題 #3:

成長のないまま、ただ年数だけを重ねている

2次、3次請けの仕事の場合、1つのプロジェクトを終える(納品する)とすぐに次のプロジェクトへ移る為、ほとんどの場合、開発者は自分の仕事の結果を知らないままでいます。自分のやり方が成功だったのか失敗だったのか、その後どういう問題が起きたのか等も知ることもなく、自分のやり方を正解だと勝手に思い込んでしまっている開発者ほど、扱いづらいものはありません。

開発者側の問題 #4:

トータル的な視野を持っていない

1つの業務管理システムは通常、販売管理、財務管理、生産工程管理等、管理業務が相互に関連しながら構成されています。当然開発者は、これらの総合的な知識も十分に持っていることが望ましいのですが、すべてを深く知り、理解することは非常に難しいといえます。

また依頼主の経営方針や、管理職の管理方針、オペレータのスキルや資質、システム管理者の管理方針等も十分考慮しなければなりません。つまりトータル的な視野が必要になってくるのですが、その必要性を理解して視野拡大に努力をしている開発者は極めて少ないといえます。

依頼者側の問題 #1:

形の無いものをイメージする難しさとリスク

システム開発は形の無いものを形にするという作業なので、依頼主がこれから開発されるシステムを開発者並みにイメージすることは難しいはずです。 通常プロトタイプと呼ばれる仮のシステムイメージで、依頼主に確認をとりながらお互いのイメージをすり合わせていくことになります。この過程の重大さを、依頼主にもよく 理解してもらい、十分な協力を得られるかがシステムを運用にのせる1つの鍵になります。

依頼者側の問題 #2:

根幹に関わる仕様変更

ある依頼主が10階建てのビルを発注したとします。業者から提出された図面に一応目を通すものの、当然ながら依頼主も専門外でよく分からず、業者に丸投げで工事を開始させたのですが、工事も順調に進み5階まで出来上がったところで、 依頼主がやっぱり15階建てにしたいと言い出したとします。この場合、ビルの土台や骨格が15階建ての重さに耐ええられない為、すべてを取り壊し、土台から工事をやり直すことになります。 その結果膨大な時間とお金をロスするのです。正にシステムも同じで、1度構築したシステムの根幹を修正しなければならないとしたら、それはシステムの作り直しと同義語であると考えなければなりません。

依頼者側の問題 #3:

責任のとれるキーマンの存在

組織が大きいほど、社内のシステムに対する要望やニーズは多様化します。その中で、会社にとって必要・意味のある要件と、あくまでも担当者の個人的な要件とをまず整理しなければなりません。会社のトップが自らシステム導入のキーマンとして関わってくれるのであれば、ある意味会社のためのシステムは出来上がるかもしれません。(経営者の意向だけを取り入れて、現場の声を無視してしまうと、理想と現実のギャップが大きくなり過ぎて、運用に乗らないということはありえますが。)担当者がトップではない場合、責任をとれる立場で、本当に会社の利益を優先して考えられるキーマンの存在が必要不可欠になります。

依頼者側の問題 #3:

慣れと固定概念

依頼主が「今までこうやってきたから」とか、「自分の会社のことは自分が一番よく分かっている」という姿勢では、今まで使っていたシステムより良いシステムはできません。少なくともシステムの限界を知っているのは、開発者であるということを依頼主によく理解してもらい、開発者が依頼者の業務をできる限り正しく把握できるよう、協力を得られるような体制になっていなければ、良いシステムを開発することは難しいといえます。

ACEが至った結論

要するにプログラマーは業務管理システムの開発をすべきではないのです。というより正確にはデータベース設計もでき、業務全体やシステム導入の主旨を深く理解した担当がプログラミングすべきということです。こういった守備範囲をもつ者はSEであり、PG(プログラマー)では極めて珍しいため、PGは開発すべきではないと表現しました。

またシステム導入に対する会社の意向・目的を正確に把握し整理するという作業は、依頼主の担当者の資質如何では、非常に困難な作業と化します。社内の政治的な動きや思惑も蠢く中、ニュートラルな位置を保ちつつ、ブレずに職務をこなす。時に経営的視点から、時に営業的視点からも見られる、SEの存在が不可欠なのです

あるストーリー


ビル・ゲイツ氏に学ぶ、システム開発の落とし穴

$50ミリオンを掛けて家を建てたのに、ある日、部屋数が足りなくなったという話

ある大金持ちの男が、およそ$50Million(50億円以上)の大金をかけて豪邸を作った。 そこには100台以上の駐車場と、地下には世界で最先端のシアターがあり、各部屋には自動で音楽が流れたり、高速回線がはりめぐらされたりしている。

工事にかかわったのは実に、300人の作業員と100人の電気工事士達だった。 男は当初独り者で工事費は$10Millionぐらいの予定だったが、工事途中で細かい要望が増え、さらには結婚して奥さんの意見も入り、なんと工事完了まで実に7年もかかったのだった。そして完成した豪邸に寝室はなぜか2つのみ‥‥。

子供ができたのに子供部屋がなく、家全体が完全にシステム化された作りで、それから部屋を作るのがすごい作業だったとか。

依頼者の「自分が今必要なものは自分が良く分かっている」という過信が、将来の拡張性を見据える目を曇らしてしまった一つの例です。ちなみに、その大金持ちの男の名は、Mr. ビル・ゲイツ‥