There are many problems associated with requirements engineering, including problems in defining the scope, problems in fostering understanding among the different communities affected by the development of a given system, and problems in dealing with the volatile nature of requirements, getting various stakeholders to agree to requirements, differentiating between “must-have’s” and “nice-to-have’s” etc.
If requirements are not vetted-out initially, it will lead to much bigger problems or the development of a system that is later judged unsatisfactory or unacceptable, has high maintenance costs, or undergoes frequent changes. We all have been part of this, aren’t we? Enter Requirement Management!
I found a good, yet effective simple checklist on requirements gathering. Excerpts below –
Additionally, I would add
- Invite the right stakeholders and keep the number of attendees to minimal. If you have to invite, say more than 15 ppl, then consider running multiple sessions. Ensure that stakeholders names, roles and contribution to project is crafted in agenda
- Select a right scribe – The right scribe is the key to useful and successful deliverables. The scribe ensures that the results of JAD Sessions are documented and delivered as expected.
- Select the right facilitator – VERY IMPORTANT
Requirements Gathering Techniques:
So, what techniques would you use to elicit requirements? Certain techniques are appropriate in gathering stakeholder needs, while other techniques are most helpful in defining high-level and detailed requirements, or validating detailed requirements with the stakeholders. The three recommended techniques are (a) Interview, (b) JAD Session, and (c) Survey Method.
Interview is more like a question-and-answer session. The Survey Method is an electronic or paper based method of soliciting needs or requirements from stakeholders. Each method has its advantages/disadvantages and should be used depending on client culture, # and type of stakeholders, availability etc.
Generally for software projects, a JAD session is the preferred way to capture Business and Functional Requirements and/ or define project scope. JAD Sessions promote trust, mutual understanding, and strong communications among the project stakeholders and project team members.
Output of Requirements Gathering/JAD session:
Plan to generate the following deliverables:
- Business Requirements
- Business Rules
- Tabled Items – These are items that are directly related to the subject but require further discussions. These items should be placed on an ‘Open’ or ‘Action to be taken’ list
- Parking Lot items – These are topics that are not directly related to the session’s objective, but do relate to the project. A list of these items should be retained for a future JAD Session
Remember, a well–run requirement gathering session is a well–planned requirement gathering session!