Traceability 101

You’re the project manager of a large project and from a requirements perspective it looks like everything is on track for success:

  • Business Requirements. Written and Approved. Check.
  • Functional Requirements. Written and Approved. Check.

Seems like everything is covered. Except… where’s your traceability matrix? You have one, right?

If you don’t, you’re missing one of the best tools for ensuring a successful project.

Requirement Tracability Meta ModelBy creating links – traces – between your business requirements, functional requirements, and test scripts you reveal a number of critical things about your project:

  • Is each business requirement being implemented by a functional requirement?
  • Is each functional requirement being driven by a business requirement?
  • Is each functional requirement covered by a test script?

A full matrix might look something like this:

These Business Requirements… Trace to these Functional Requirements… Which trace to (are “covered by”) these Test Scripts
BusReq1 FuncReq1 TestScriptA
FuncReq2 TestScriptA
BusReq2 FuncReq3 TestScriptB
TestScriptC
BusReq3 FuncReq4 TestScriptD
BusReq4
BusReq5 FuncReq5 TestScriptE
BusReq6 FuncReq6
FuncReq7 TestScriptF

 

As you can see, a 1:1:1 ratio between business requirements, functional requirements, and test scripts doesn’t always exist:

  • A single business requirement can trace to multiple functional requirements
  • A single test script can trace from (“cover”) multiple functional requirements
  • Multiple test scripts might be necessary to cover a single functional requirement

What you can also see is that your project has some serious problems.

Without even looking at the actual text of the business or functional requirements, the traceability matrix raises a number of red flags:

  • BusReq4 does not trace to a single functional requirement. This reveals a gap in the project’s design.
  • FuncReq6 does not trace to a test script. By creating a traceability matrix you can discover and correct a gap like this during the development phase, not during the expensive post-release phase.
  • FuncReq7 does not trace from a single business requirement. Hmm…where did this requirement come from? If it’s not driven by a business requirement, what is it doing in this project? This is an indication of possible scope creep.

We’ve just touched the surface of what a traceability matrix can reveal about your project. Future discussions of this topic will probe a little deeper into the rewards and risks of maintaining a traceability matrix.

Robert Bedick
Robert Bedick is a senior consultant at Systems Flow, Inc. He started his career as an attorney (he's admitted to the bar in NY, NJ, WI, and RI) and then migrated into the world of software development in 1983 as a technical writer for a tax planning program that ran on an Apple II. Since then he has worked as a technical writer, programmer, and trainer in the domains of business valuation, credit card fraud, anti-money laundering (Certified Anti-Money Laundering Specialist 2008-2011), and electronic discovery. As an entrepreneur he is the successful author of a number of SQL Server and Oracle utilities, including: SchemaToDoc, QueryToDoc, and DB Side-By-Side. In addition to writing software, his novel Tomas can be found at Amazon.com. His current work for Systems Flow has him working as a business analyst for a major regional bank. For more details, please visit Robert's LinkedIn profile.
Robert Bedick

Latest posts by Robert Bedick (see all)



Comments

Comments are closed.