Requirements elicitation or requirements gathering combines elements of problem solving, elaboration, negotiation, and specification.In order to encourage a collaborative, team-oriented approach to requirements gathering, stakeholders work together to identify the problem, propose elements of the solution, negotiate different approaches and specify a preliminary set of solution requirements
Collaborative Requirements Gathering
- The goal is to identify the problem, propose elements of the solution, negotiate different approaches, and specify a preliminary set of solution requirements in an atmosphere that is conducive to the accomplishment of the goal
- Meetings are conducted and attended by both software engineers and other stakeholders
- Rules for preparation and participation are established
- An agenda is suggested that is formal enough to cover all important points but informal enough to encourage the free flow of ideas
- A “facilitator” (can be a customer, a developer, or an outsider) controls the meeting
- A “definition mechanism” (can be work sheets, flip charts, or wall stickers or an electronic bulletin board, chat room, or virtual forum) is used.
Quality Function Deployment(QFD)
- Quality function deployment (QFD) is a quality management technique that translates the needs of the customer into technical requirements for software. QFD “concentrates on maximizing customer satisfaction from the software engineering process”.
- QFD identifies three types of requirements normal requirements, expected requirements, exciting requirements
Elicitation Work Products
- The work products produced as a consequence of requirements elicitation will vary depending on the size of the system or product to be For most systems, the work products include
- A statement of need and feasibility
- A bounded statement of scope for the system or product
- A list of customers, users, and other stakeholders who participated in requirements elicitation
- A description of the system’s technical environment
- A list of requirements (preferably organized by function) and the domain constraints that apply to each
- A set of usage scenarios that provide insight into the use of the system or product under different operating conditions
- Any prototypes developed to better define requirements