システム開発の難しさ その5(まとめ)
顧客が説明した 要件 |
プロジェクト リーダーの理解 |
アナリストの設計 |
プログラマの コード |
営業の表現、約束 |
プロジェクトの 書類 |
実際の運用 |
顧客への請求金額 |
得られたサポート |
顧客が本当に 必要だったもの |
どうすればよかったのか?
このように、「顧客が本当に必要だったもの」を実現するのは非常に難しいのです。
実際、この寓話が示す罠にハマって失敗したり、デスマーチに陥るプロジェクトは後を絶ちません。
システム開発の本質的な難しさは、関係者の意思疎通(コミュニケーション)にあるのです。
必ずしも、開発側の分析力や技術力の不足だけが原因ではありません。
それでは、どうすればよかったのでしょうか。
回答の一つとしては、「顧客が本当に必要なもの」をあらかじめしっかりと分析して顧客と合意すると共に、プロジェクト関係者の間でそれを共有すること、があげられるのではないでしょうか。
正しいゴールが設定され、共有されていれば、全ての関係者がそれに向かって作業すれば良いだけなのです。
しかし、現実には、その「正しいゴール」を見極めるのが最も難題だったりします。
特に、予見可能性の低いビジネス分野においては、全関係者が一丸となって「誤ったゴール」に向けて邁進する、という羽目になる可能性は高いのです。
また、過去の開発・運用経験や他者の成功事例に引きずられて、現在解決すべき独自の問題を(無意識に)それらに無理やり当てはめて解決を図ろうとする恐れもあります。
このようなことを避けるために、最近では「アジャイル開発」と呼ばれる手法が提唱されています。
「アジャイル開発」とは、機能を一つずつ完成させて短い期間でリリースしていき、その度に顧客からフィードバックを受けて方向修正していくという開発手法です。
こうすることで、「顧客が必要としないシステム」を作ってしまうリスクを減らしていくのです。
アジャイル開発については、詳しく解説している本が出版されていますので、時間があれば読んでみてください。
システム開発の難しさ その5(まとめ) 関連ページ
PR