By Sri Prakash : April 25, 2013
“The thoroughness of a Traceability Matrix is a key predictor of project success” (in my opinion).
Now before we go ahead, let us sensibly assume for a minute that success to you and me is hearing the customer say “Wow, this is exactly what I asked for” versus “this is nothing like what I asked for”. And let us assume that project success is our goal.
Not having a Traceability Matrix during the life of a project will in all probability end up in a situation easily explained by the graphic below.
In spite of every software engineering methodology, framework, and ‘best practices’ guide underscoring the importance of a Traceability Matrix – it is still missing in most projects.
So what is the Traceability Matrix and why do unsuccessful projects almost always not have one?
The answer is simple – it is seldom understood and so is never put together.
What is a Traceability Matrix?
It is a table that represents the cross-linkages between User Requirements and all the other system elements that are produced towards meeting the user requirements. The table below illustrates what a typical Traceability Matrix looks like.
The above Traceability Matrix establishes the traceability links between the following three system elements:
- User requirements,
- Functional requirements, and
- Test cases
The traceability links in the above table can define:
- one-to-one,
- one-to-many,
- or many-to-many relationships between the three system elements.
What are the benefits in using a Traceability Matrix?
By now you’ve probably already guessed the obvious advantages. But let’s list some of the obvious ones:
- You can at a glance tell which test cases need to be executed if there is a modification done to the application on the “FN38: Edit a customer”.
- You can quickly assess the magnitude/impact of a change made by the user to “UR-013 Maintain Customer Information”
- You can quickly tell how long the testing phase of the project is going to last
- If a test case failed, you can quickly see the impact on the overall user requirement.
- You can easily tell which functional area a test case is relevant to
- If there is a change to a functional requirement, you can tell the impact it has on both the user requirement and test cases that are relevant to it. The traceability works both ways.
- And best of all, it’s a quick way to verify user requirements against actual functionality that you plan to deliver – no nasty surprises at the end.
Key next steps for you as a project stakeholder / customer:
- Ask your project manager for the Traceability Matrix.
- Make sure you can identify each of your requirements in that document.
- Make sure that there are system elements corresponding to each of your requirements during all phases of the project – i.e. analysis & design, development, and testing
Thank you for taking the time to read this post. You can find other posts on my blog related to project management and software engineering.
Feel free to get in touch with me for any help on your projects.








