In this article about requirements traceability management, I’m going to provide a definition of requirements traceability and give you practical tips on using traceability for software development projects.
I’ll also talk about how it can help with things like cost estimating, change management, team communications and more.
By making use of requirements traceability, Project Managers can transform the level of quality on their projects while reducing the chance of missed deadlines and budget overruns.
Requirements Traceability Defined
At its core, requirements traceability in software development is the act of tracing and tracking business requirements through their lifecycle during the project. In more detail, it allows the team and stakeholders to follow and track each requirement from inception all the way through to delivery.
Photo Credit: dumbledad
Although there are different flavors when it comes to development methodologies, it’s common to trace requirements through the various project artifacts and delivered features. For example, a requirement could be traced from the requirements documents, then to the design artifacts, then to the code, then to the QA test plans and test cases and then to the user acceptance test plans and cases.
The tool that is most often used to keep track of all of this is the requirements traceability matrix.
Requirements Traceability Matrix
An excellent example of a requirements traceability matrix can be found on the public website of the U.S. Centers for Disease Control and Prevention: CDC Requirements Traceability Matrix Template
Take a look at that document and pay special attention to the mouse-over descriptions for each column heading. What you’ll see is that each requirement is given a unique number. You’ll then see how each unique requirement is traced through the various project artifacts and stages of development and test. Also, take a look at the instruction tab on that spreadsheet.
By spending some time examining this example Requirements Traceability Matrix you should get a good understanding of the practical application of requirements traceability in software development projects.
Why is requirements traceability important?
It’s important because, from a software quality perspective, you want to make sure all agreed upon requirements are properly delivered to the users. And, at each step along the way, the requirement was properly addressed from a design, development and testing perspective.
You want to make sure nothing was missed, lost or forgotten about. By diligently using and revisiting the requirements traceability matrix you’ll ensure that doesn’t happen.
Benefits of Requirements Traceability
There are other important benefits of requirements traceability including test case coverage, cost estimating, change management and team communications, among others.
Test Case Coverage
In the requirements traceability matrix there is often a test case number that is associated with a requirement. By looking at the matrix and ensuring that each uniquely numbered requirement has a corresponding test case, you’ll most likely ensure that the project’s test cases cover all the project’s requirements.
By establishing a requirements traceability matrix you will, in effect, have created a list of units of work that need to be estimated subsequent to defining each requirement.
For example, you will know at a detailed level how many modules will be impacted, how many test cases need to be written, etc. From there it’s a logical next step to estimate each of those.
As the project proceeds, you will inevitably encounter a change request or a defect that requires a change to be made.
When this occurs, take a look at the traceability matrix. Since you will know what the change is and where the impact will be, you should be able to quickly follow the impact of the change both upstream and downstream in the matrix. Then by examining and likely estimating the units of work that need to change, you will then have useable information in hand to decide whether to move forward on the change or not.
A more subtle benefit of requirements traceability is that it also shows how people are connected in the project. This is especially true for projects with a large amount of people participating.
Each unit of work likely has a specific person or people assigned to that unit of work. You can then see how people are connected via the traceability network.
This comes in handy when there’s a change or even if something needs to be clarified.
Let’s say for example a QA engineer would like a better understanding of a particular user requirement so they can write a thorough test case and ensure the requirement was correctly coded.
By looking at the matrix, they can likely figure out who created the requirement and then talk to that person to get the understanding they need.
As you can see, managing requirements traceability is important to the results of the project.
Though there is some overhead involved in the creation and maintenance of the matrix it’s almost always worth the extra time spent in that it helps to prevent defects in both the artifacts and delivered functionality.
As a Project Manager, use the tools to manage requirements traceability and reap the benefits of full test case coverage, more accurate estimates, easier change management and better team communications.