ABCs of Requirements Engineering

enough Sessions

You may have sessions for one or more groups of people depending on the size and type of participants.  You may consider having a requirements session for external customers, another for internal customers and marketing, and yet another for the systems folks.  Another approach is to include all folks in the sessions to generate a better understanding of requirements across participant types.  Typically, several requirements elicitation sessions are needed to extract requirements and hone them so they are somewhat concise and clear. 

Documenting Requirements

There are four key facets to documenting requirements. This includes getting to clear and concise requirements, estimating effort per requirement, prioritizing each requirement, and utilizing the right tool then template to store the requirements. 

Getting to Clear Requirements

The first facet to documenting requirements is to ensure that each requirement is unambiguous, concise, verifiable, complete, consistent, traceable, and have a unique identifier. 

Establishing a unique identifier can be as simple as number that is incremented upwards for each new requirement.  The unique identifier is applied to each requirement.  This also establishes the groundwork for enabling traceability.  Without an easy to identify unique identifier, it is difficult to enable tracing to and from the requirements.    

The ability to ensure that requirements are unambiguous, concise, verifiable, complete and consistent relies heavily on the requirements skills and experience of those facilitating and documenting the requirements.  Experience has found that having test personnel review the requirements is a good way to get the requirements into a less ambiguous, more concise, and verifiable level.  This is because testers have the responsibility to test the requirement so they must really understand the requirements and ensure it can be verified (e.g., tested). 

Estimating Requirement Effort

The second facet to documenting requirements focuses on estimating the effort of each requirement.  This is typically the job of a business or system analyst (e.g., someone who has project estimation skills) who reviews each requirement, identifies what items are impacted, estimates the effort of each impacted item (includes design, development, and testing effort), then calculates the total effort.  This data will be useful in helping prioritize requirements and identify which requirements should form the requirements baseline for a release.   

Prioritizing Requirements

The third facet to documenting requirements focuses on prioritizing the requirements.  This is where either the customer and/or application owner prioritize the requirements to understand the relative importance.  Consider establishing a priority grid with definitions for “priority 1,” “priority 2,” and so on.  This can be a challenging task since it seems to be human nature to make most requirements a “priority 1.”  If this becomes the case then either establish a “priority 1 high,” “priority 1 medium,” and “priority 1 low;” or rank the requirements that are “priority 1.”     

Using the Right Requirements Tool then Template

The fourth facet to documenting requirements focuses on selecting and utilizing an appropriate requirements tool so that the requirements can be more easily reviewed and managed.   You can either use an automated vendor requirements tool or a manual spreadsheet.  For smaller projects, you may find a template in spreadsheet tool may be adequate for your needs. 

If you have a more complex or large project, an automated vendor tool can be a wise choice.  The advantages of an automated requirements tool is that it allows numerous fields or attributes per requirement (e.g., priority, requirement category, etc.) and it can provide a history of the requirements and what has changed.  If traceability is important, select a requirements tool that provides an automated mechanism for traceability.  If an automated requirements tools is being considered,

About the author

Mario  Moreira's picture
Mario Moreira

Mario Moreira is a Columnist for the CM Journal, a writer for the Agile Journal, an Author, an Agile and CM expert for CA, and has worked in the CM field since 1986 and in the Agile field since 1998. He has experience with numerous CM technologies and processes and has implemented CM on over 150 applications/products, which include establishing global SCM infrastructures. He is a certified ScrumMaster in the Agile arena having implemented Scrum and XP practices. He holds an MA in Mass Communication with an emphasis on communication technologies. Mario also brings years of Project Management, Software Quality Assurance, Requirement Management, facilitation, and team building skills and experience. Mario is the author of a new book entitled “Adapting Configuration Management for Agile Teams” (via Wiley Publishing). It provides an Agile Primer and a CM Primer, and how to adapt CM practices for Agile Teams. Mario is also the author of the CM book entitled, “Software Configuration Management Implementation Roadmap.” It includes step-by-step guidance for implementing SCM at the organization, application, and project level with numerous examples. Also consider visiting Mario’s blog on CM for Agile and Agile adoption at http://cmforagile.blogspot.com/ . You may reach Mario by email at Mario.Moreira@cmcrossroads.com.