「要件定義は明確に」とは言うけれど
システム開発の失敗原因として「要件定義の曖昧さ」がよく挙げられます。では、開発前に完璧な要件定義を作ることは現実的でしょうか。そしてなぜ、同じ失敗が繰り返されるのでしょうか。
「要件定義を完璧に」は本当に可能か
システム開発の成否を分ける最重要項目として、「要件定義」は常にトップクラスに挙げられます。「発注側が要件定義を曖昧にしているから失敗する」という指摘はよく聞きます。だから「要件定義を完璧に仕上げることが大事だ」という結論になります。
しかし、少し立ち止まって考えてみてください。もし完璧な要件定義が可能であれば、なぜ「要件定義の不備による失敗」がこれほど多いのでしょうか。
発注者が怠慢だったわけでも、担当者の能力が低かったわけでもないケースがほとんどです。問題の本質は別のところにあります。
「使ったことのないものを言語化する」難しさ
要件定義で多くの発注者が直面する困難は、「まだ見ていないものを正確に言葉で表現する」という本質的な難しさにあります。
住んだことのない家を間取り図だけで完璧にイメージするのが難しいように、操作したことのないシステムをドキュメントだけで正確に要件として落とし込むのには、相当な経験と想像力が必要です。多くの発注者にとって、それは現実的ではありません。
だから、誠実に要件定義を作ったつもりでも、完成品を見て「思っていたものと違う」という事態が繰り返されます。
プロトタイピングは「体験がそのまま要件定義になる」
プロトタイピングは、この問題を根本から解決するアプローチです。
実際に動くシステムを触ってもらい、「この画面はこう使いたい」「このフローは実際の業務と合わない」というフィードバックをリアルタイムで反映させます。見たまま、触ったまま、使ったままの体験が、そのまま要件定義として蓄積されていきます。
言語化の限界を体験で補う。要件定義の「完璧さ」を求めるより、実際に確かめながら精度を上げていく——プロトタイピングはそのための仕組みです。