Requirements obtained and documented after following below steps can be said as good or perfect:
- Stakeholder analysis
- Apply requirement elicitation techniques
- Sort the requirement
- Prioritize requirement
- Validating requirement
- Stakeholder analysis – In this process, internal and external stakeholders are identified, listed and summarized using RASCI matrix.
- Apply requirement elicitation techniques –Elicitation techniques are used to list out requirements by various techniques such as brainstorming, document analysis, reverse engineering, focus groups, observation, workshop, JAD, interview, prototyping, survey etc.
- Sort the requirements – In this process, scattered requirements are collected as per stakeholder’s needs. They are divided into functional and non-functional requirements. Similar requirement are grouped under same group and supporting requirement artefacts are created.
- Prioritize requirements – In this process, requirements are prioritized in the order of development process. Requirements are prioritized on the basis of importance of the requirement, risk in the requirement, cost of the requirement, benefits of the requirement, time required for the requirement and strategy of the requirement. Requirements are prioritized with help of customers, developers and business owners. Numerical assignment is the commonly used technique to prioritize the requirements by numbering the requirement in the descending order. Further, we may use MOSCOW analysis to prioritize requirement in the importance that they place on the delivery of each requirement.
M – Must have these requirements to meet the business goals.
S – Should have these requirements if feasible, but project execution doesn’t depend on it.
C – Could have these requirements if it has no impact on other requirements.
W – Would like to have these requirements later, but it won’t be executed at this time.
- Validating requirements – Requirements are validated using various techniques such as FURPS, CUCV, CAE, APVU, SMART etc.
- FURPS – FURPS stands for Functionality, Usability, Reliability, Performance etc.
Functionality – Requirements should have the characteristic of size and generality of feature set, capability, generality and security
Usability – Requirements should have the characteristic of Human factors, Aesthetics, Consistency, Documentation, and Responsiveness
Reliability – Requirements should have the characteristic of Severity of failure, recoverability, predictability, accuracy, Mean time to failure.
Performance – Requirements should have the characteristic of speed, efficiency, resource consumption, throughput, Response time.
Supportability – Requirements should have the characteristic of testability, extensibility, adaptability, maintainability, compatibility, localizability, portability, configurability, serviceability, install-ability etc.
- CUCV – CUCV stands for Clarity, Understandable, Consistent, and Verifiable.
Clarity – There should be clarity in in requirements to be understood by its users.
Understandable – The requirements should be easily understood by its users.
Consistent – The requirements should be consistent so that it should not contradict itself. To achieve consistency, it should be consulted with all the stakeholders.
Verifiable – The requirements should be verifiable so that it should yield desired result.
- CAE – CAE stands for Complete, Accurate, and Executable.
For requirements to be good or perfect, it should be Complete, Accurate, and Executable in nature.
- APVU – Good or perfect requirements should be authorized, prioritized, variable and unique in nature.
- SMART – Good or perfect requirements should be Specific, Measurable, Attainable, Realistic, and Traceable in nature.