Friday 2 June 2017

Characteristics of complete and comprehensive requirements

Requirements definitions are the key to success in the design and development of any complex system. Business analyst needs to carefully define requirements which are gathered/elicited from users and stakeholders to ensure the product will meet their needs.


How can we distinguish good software requirements from those that have problems?
Below are characteristics of complete and comprehensive requirement.
Figure 1 Characteristics of complete and comprehensive requirements

Concise:
  • Keeps sentences and paragraphs short and to the point
  • Uses crisp and definitive language
  • Presents only one requirement per statement or paragraph
Verifiable:
  • Physically and functionally testable ( the requirements can be verified through inspection, analysis, demonstration or test)
  • Provides an example, prototype or test case
Consistent:
  • Does not conflict with other requirement
  • Resolves discrepancies between requirements
Modifiable:
  • Can be altered, changed or deleted with implicit reference on how the modification impacts the other requirements
Traceable:
  • Is uniquely numbered
  • Is backward and forward traceable
  • Traceable to business need to be delivered by the system or application
  • Maps to test document in acceptance criteria
Measurable:
  • Establishes concrete criteria for measuring progress toward each goal
  • Answers questions such as: How much? How many? How long?
Grammatically Correct:
  • Void of pronouns or passive voice
  • Written as a complete sentence
  • Clearly mention two component, a subject and a predicate
Use Appropriate Terminology:
  • Does not use and/or without clearly establishing the order of operation
  • Does not include ‘To Be Determined (TBD)’ as a place holder
  • Does not use terminology such as ‘Business as Usual’
  • Uses ‘Will’ as a declaration if purpose
  • Uses ‘Shall’ to describe something mandatory or binding
  • Spells out acronyms at first mention
Clear:
  • States exactly what new or enhanced functionality is desired
  • Leaves no room for misinterpretation; offers only on interpretation by all parties.
  • Does not include jargon or unnecessary adjectives
  • Does not include vague language such as Optimum, Easy, Efficient, Modular, Adequate, Instantaneous, Expandable, Minimum, Fast, Rapid, Acceptable, Flexible, Improved, Reasonable Etc.
Understandable:
  • Does not include technical terms that are not generally understood, unless they are included in glossary
  • Does not include pseudo code
Complete:
  • Contains all necessary information to communicate desired end-state or allows for progression to the next iteration
  • Includes user acceptance criteria
Appropriately Detailed:
  • Records requirement at consistent level of detail, making sure the stated requirement do not overlap with other requirement
Necessary:
  • Only defines requirements that are necessary to the system or application. For example, if the requirements were to be removed or deleted, a deficiency would exists that could not be fulfilled by other requirement
Goal-oriented:
  • Specifies a desired end goal or result
Reviewed:
  • Reviewed before submitted for client final review and sign-off
Compliant with template:
  • Complies with the standard templates and style guides agreed upon by the client 
Conclusion:
Performing a good job with requirements can save your organization a fortune. Requirements specifications are the primary means of communication between users and developers and should be prepared as carefully as when writing out a contract. Good requirements assist the project in managing scope and costs.
Getting requirement right will help in:

· Meeting project deadlines

· Maintaining project scope

· Satisfying customer needs

· Lower project cost.

Note: The above mentioned pointers are by no means exhaustive. Also these are just generic guidelines which can help a BA in writing requirements in more effective way.


About Author:
Ashish Akulkar is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, he actively contributes to the areas of Technology and Information Security. He can be contacted at: ashish.akulkar@spluspl.com

2 comments: