要件定義とは?

要件定義がブレると、その後工程で後戻りが発生します。プロジェクトに内在するリスクをできるだけ排除するためにも、要件定義の段階でシステムの仕様を明確化することが非常に大切です。

要件定義(要求分析)

要件定義では、システム全体の機能を決定します。このフェーズの成果がシステム開発全体の成功/失敗を左右するといっても過言ではありません。

インプット アウトプット
顧客のビジネス要件 要件定義書

要件定義でインプットとなるのは、顧客がシステム化したいビジネスの要件です。システム開発は顧客企業のビジネスの活性化と効率化を達成することが目的です。一方で、要件定義フェーズでの目的は、顧客企業がシステム化したいビジネスモデルの明確化にあります。


要件定義を行うためには、次のようなスキルが求められます。

ビジネスモデルを理解できること

顧客がどのようにして商売を行っているかを、十分に理解する必要があります。なぜシステム化することが必要なのか、なぜそのようなビジネスモデルを考えたのかを理解し、不足なく要件を汲み取ることが求められます。不足した要件が後々になって見つかれば、システム開発全体にダメージを与えることになります。その一方で、無駄な要件が発覚したときにはその機能自体を破棄する必要があります。これにより、不要な機能の開発に投入した無駄なコストと時間が発生することになります。

顧客との折衝ができること


対人能力、調整能力のことを指します。相手はお金を頂くお客様ですから、多少のキツイ言葉で激怒するようなビジネスマンには到底務まりません。知らない業務をその場で理解できるように準備し、顧客が納得できるように要件を調整することが求められます。個人の人間性に依存する側面もあり、他の能力のようにトレーニングや経験によって定量的に身につけることが簡単ではなく、非常に価値のあるスキルと言えます。

要件定義を行いながら、外部設計につなげること

顧客は一方的にシステム化したい要件を伝えてきますが、実現できないものをそこで気付くことが重要です。極端な例ですが、勤怠管理システムを開発するとしましょう。毎日の出社・退社時刻を何らかの方法で記録していないのに、毎月の労働時間を画面表示したい、という要件は実現できないのです。毎日の出社・退社時間を記録するような新しい仕組みを提案したり、あるいは毎月の労働時間の算出自体が本当に必要なのかどうかを、顧客企業と検討しなければなりません。外部設計を行う前の要件定義フェーズにおいて、仕様の矛盾に気付づくことができるスキルもまた大きく求められます。