Requirement elicitation, also known as requirement gathering, is a key activity in the requirements engineering process. It involves interacting with stakeholders (like customers, users, business analysts, or system engineers) to gather information about what a proposed system should do and its constraints.
Requirement elicitation can be challenging, as users may not fully understand their own requirements, or they might have difficulty expressing them. Therefore, a variety of techniques are often used to facilitate the process. Here are some common methods:
- Interviews: One-on-one interviews are a traditional and effective way to discover individual needs and perspectives. They can be structured with a predefined set of questions or unstructured to encourage open-ended discussions.
- Focus Groups: A group of users and stakeholders are brought together to discuss their needs and expectations. This can help uncover a broader range of requirements and promote consensus.
- Surveys and Questionnaires: These are useful when there are many users or stakeholders. Surveys can quickly gather a large amount of data, but they are less personalized and may not allow for in-depth responses.
- Workshops: These are interactive sessions that bring together various stakeholders. A facilitator guides participants through a structured process to encourage discussion and brainstorming.
- Observation: Also known as job shadowing, this involves watching users in their natural environment to understand how they interact with existing systems and perform their tasks.
- Document Analysis: Existing documents related to the system, such as user manuals, system specification, and business process documents, can be analyzed to understand current operations and identify improvement areas.
- Prototypes: A preliminary version of the system is developed and presented to the users and stakeholders. They can interact with the prototype, providing feedback and helping to identify additional requirements.
- User Stories: In agile methodologies, user stories are used to capture requirements from the end user’s perspective. They are short, simple descriptions of a feature told from the perspective of the person who desires the capability, usually a user or customer.
The information collected through these methods is then analyzed, validated, and documented as a set of formal requirements that guide the rest of the development process.