Requirements elicitation and analysis, also known as requirements research is difficult for a number of reasons.
The users, customers or other stakeholders involved in the software development do not know all the features and behavior they need to have in the software at the time of requirements gathering. End-users at first encounter are most likely to give unrealistic requirements or requirements that are filled with ambiguities.
The term elicitation is a pointer to the fact that good requirements cannot be obtained simply by asking the user, customer or stakeholders what they want. Requirements elicitation therefore calls for multiple interviews, questionnaires, user observations, brainstorming sessions and lots of prototypes. This is why requirements elicitation is difficult.
It is always recommended that project team look critically into steps that can be taken to minimize the impact of the problems that are likely to be encountered during requirements elicitation.