If we were to do a poll, most business analysts would probably have no trouble identifying what a traceability matrix is. Also, most would probably say they don’t use it as often as they should. I feel your pain: If your project includes several thousand requirements, dealing with traceability becomes a major ordeal.

For me, traceability matrix still remains a purely academic notion. That said, every BA worth his salt must still solve the problem of requirement relationships and dependency tracking. The bigger the project, the bigger the problem usually becomes.

Being a general-purpose tool, Confluence does not come with a ready-to-use traceability matrix feature. The good news is, it offers something better — and it’s by far one of my favorite Confluence features.

Real-world problem

Let’s look at a typical requirement change scenario. Say the product sponsor comes up with a new requirement. He now wants the Order Date field in the Order Tracking System to include time in addition to date. And the time must use a specific display format, no less!

Let’s say your requirement management policy says all UI screens and controls must have a detailed textual description for every field. So how do you update a gazillion field descriptions without losing your mind in the process?

Structure everything

Create a dedicated page that describes the business object. Let’s call it BO Order. Be sure to describe all the relevant object fields, including Order Date. For good traceability, every field should have a unique identifier. In our example, the Order Date ID will be BO-O-40.

Now, as you work through your software requirements specification and need to refer to the Order Date field, simply link to the BO Order page and be sure to include the field’s ID. In the table below, these data are included under Data Source.

Your feature request description might now look something like this:

And now, for the more interesting part.

Add macro magic

With a bit of macro ingenuity we are now ready to solve the traceability problem. In your BO Order table, simply add a new column (let’s call it Used In) that will automagically display all the pages that mention the Order Date ID.

And bingo — problem solved!

Here’s what your object description page will look like now:

The magic is done with these two nifty macros:

{search-results} will display a dynamic list of search results for a given string. The results will typically be pages, but you can additionally include attachments, comments, and other items of your choosing. {expand} will reduce visual clutter. The macro will collapse the search results while still allowing to view them easily.

Here’s how to set up the macros so they can do the heavy lifting for you:

The takeaway

By successfully implementing this requirement tracing strategy, you can now take one look at the Used In column and easily hunt down any page that uses that pesky Order Date field. Take this list, give it to QA, and they can test it to make sure the field format has been updated everywhere and the project sponsor is happy 😉

Using Confluence creatively can save you many hours of work. Do you use Confluence as a BA tool? Tell me in the comments!

Denis Ardabatsky

Senior Business Analyst and PM at Oxagile