要求定義と要件定義の違いについて説明した記事はよく見かけます。

要求定義では、顧客がそのシステムに何を求めているのか?を整理して明確化していきます。
本来は、顧客側が行う作業(結果、要求仕様書が出てくる)と言えます。
が、実際には受注側が行うことの方が圧倒的に多いと思います。
これに対し要件定義では、要求されていることを満たすために、何をつくるべきか?どんな機能が必要か?などシステムの必要条件を明確化していきます。
要件定義書は、顧客への合意承認を受ける目的と同時に、開発者へのインプットにもなります。
と、こんな感じの内容だと思います。

いずれにしても、開発ではこの工程がもっとも重要な工程であることは周知の事実と思います。
開発がうまくいってない原因の多くはこの工程での失敗だと思います。
原因はいくつも考えられると思いますが、
要求定義がきっちりできてなかったことが原因として多いのではないかと思います。

要求定義では、顧客がそのシステムに何を求めているのかを明確にしていく作業が中心になります。
ここで特に大事なことは、要求を整理しながら深掘りを繰り返すことです。
何度も行うことで、要求の本質的な部分を見つけることができると思います。
潜在ニーズの可視化です。
お客様に何度も時間を取っていただくのは申し訳ないのですが、
可能な限り時間を割いていただくことも重要かと思います。

また、お客様から要求仕様書をいただくようなパターンもあると思います。
この場合でも、いただいた資料を元に深掘りをしていくことが重要かと思います。
要求仕様でなく、単なる欲望仕様になっている資料であればある意味楽だと思います。
突っ込みどころ満載なので、深掘りヒヤリングは比較的やりやすいです。
そういう意味では、よくまとまった要求仕様書の方が難しいと思います。
まとまった資料であっても要求内容の整理と深掘りは行うべきだからです。

何れにしても、
要件定義フェーズでは、前段階の要求定義が最も重要であり、
できるだけここに時間をかけるようにすることが重要かと思います。