要件定義はユーザー側の仕事……とは言うけれど
誰かに自分が使うものを作ってもらおうと思えば、どんなものを作ってほしいのかは、頼む側が明確に伝えないと望むものができないのは当然です。
注文住宅を作る時には、間取りやドア、窓の位置、大きさ、使用する建材の材質などは施主が決定しなければなりません。服を作ってもらうときにも、デザインや色、サイズなどはテーラーのアドバイスを受けながらも、最終的に決めるのは、やはり注文主のほうです。
これは、ITについても同じです。システムにどんな機能や性能その他を持たせるのか、画面のデザインをどうするのかといったことは、発注者であるユーザー側が「仕様書」や「要件定義書」として、まとめてITベンダーに示すのが原則でしょう。
ただ、ITについては、この仕様書や要件定義書を作る時点で、既に一定の技術的な知見が必要です。システムに入力するデータや、それを加工する演算処理の概要、システムに施すべきセキュリティなどを素人であるユーザー側が、過不足なく正確に決めることは至難の業でしょう。なので、通常はこうした専門的な事柄については専門のITベンダーに支援してもらいます。
支援の形態はいくつかあります。たとえば、仕様や要件定義を行う「要件定義工程」だけを独立させてITベンダーと契約し、そのITベンダーが作った要件定義書、仕様書を基にした開発を別のITベンダーが設計や製造、テストなどを行うケースもありますし、要件定義工程からテストの完了までを、一つの契約にして発注をする場合もあります。
後者の場合は、それでも要件定義の主体となるのは、ユーザーですが開発の主体となるITベンダーがユーザーの要件定義を支援します。要件定義とは何を決めることなのか、新システムに使用するハードウェアやソフトウェア、クラウドサービスなどはどうしたらよいのかなどを、ITベンダーが専門家として支援しながら開発を進めていくことになります。
ただ、このようにして開発を進めていって、運悪くそれが失敗したようなとき、たとえばユーザーの思い描いていたようなシステムができあがらなかった場合や、開発を始めてみたら技術的・業務的に想定外の困難にぶつかってプロジェクトがとん挫してしまったような場合、その責任がどちらにあるのかが問題になります。
ITベンダーからすれば、要件定義書や仕様書の作成主体であり責任を持つのはユーザー側なのだから、その失敗によって発生した損害を被るのはユーザーであるべき、と言いたくもなるでしょう。
しかし一方のユーザーからすれば、素人である自分たちを支援して正しい要件定義を行うようにするのは、専門家であるITベンダーの責任のはずだ。その分の費用も払っているのだから、責任はITベンダー側にある。そんな意見もあるかもしれません。