Understading and Capturing Your Requirements
1. There are three levels of requirements.
+ Business Requirements - High
level objectives of the project which are recorded in the Vision and Scope Document
+ User Requirements - Task and facilities available to the end user recorded in
the Use Cases.
+ Functional Requirements - Detailed listing out of each behavior
that the software must exhibit. This along with the quality attributes and other
non-functional requirements is documented in the Software Requirements Specification
2. Involve the end-user or customers as much as possible during the requirements
capture stage. Identify various user groups and one representative individual from
each group for inputs regarding their specific requirements. They could also review
prototypes and the SRS to ensure completeness and effectiveness.
3. Ensure that
the requirements are quantifiable and measurable. Areas that are unclear may require
more detailed analysis or even the development of a prototype. Developing Test cases
early also help reveal any gaps in the requirements capture. Verify the completeness
of the requirements by formally inspecting the documents generated.
Requirements by their relative importance. This will help weed out high cost-low
value functionality. It will also help in making informed and critical decisions
when faced with time/ resource and functionality tradeoffs. Identify and remove
any functionality which will not be used or which do not help meet any of the business
5. Ensure that the project scope is clearly defined in the Vision and
Scope document. Expect some amount of requirements growth and buffer for it, since
rarely is the project deadline changed, additional resources provided or any existing
functionality deleted to compensate for it.
6. Establish and enforce a clear and
realistic process for change management. Prioritize the proposed requirement changes
against the requirements yet to be implemented. Ensure that each change and its
impact are sufficiently analyzed to avoid unforeseen complexities and slipping project
schedule and deadlines.
7. Finally, while it is important to have a complete set
of requirements to start design and development, it is also important not to get
bogged down at this stage. After a set of requirements has been fully identified,
development can begin on this while unclear requirements continue to get analyzed
and clearly defined.