No matter the size of your organization, being able to trace the delivery of software across all disciplines is imperative. That’s true for tracing stakeholder requirements through to production or for tracing defects through the testing process.
Traceability is something that’s created intentionally and by design. Software teams achieve this via a set of processes and tools to help them record, meet, and track requirements and defects across the software journey.
In this article, we look at:
- What traceability means for a software development team.
- Why your team needs a comprehensive system for traceability.
- What that traceability process should look like.
What Is Traceability in Software Development?
People typically refer to requirements traceability when they talk about traceability in software development, says Patrick Anderson, head of content at The Rubicon Agency and former senior content manager at Tasktop.
“Requirements traceability is about tracing the lifecycle of a requirement (i.e., what the end user expects from a new or modified product) and its related design elements (tests, commits, builds, etc.) as it moves downstream towards deployment following a customer request,” he explains. “It’s about ensuring the right thing is built the right way, and laying breadcrumbs so that the process can be accurately analyzed, improved and optimized. It’s about product validation.”
But traceability can also be used to keep a record of what has been done. With good traceability practices, teams don’t have to start from scratch on new builds, writes the team at Perforce. What’s more, traceability helps prevent mistakes, and in some cases it’s necessary for a DevOps team to comply with government regulations.
Traceability can also be used in software testing. “The difference is that it focuses on tracing tests, test cases, and results across the SDLC,” says the team at Sealights.
“When creating traceability in testing, you link test runs to test cases or to issues that need to be corrected. Likewise, corrected issues are linked back to passing tests. You can also link tests to requirements, highlighting why tests were created or initiated.”
Why Is Traceability Important?
It is essential your software development team develop good traceability practices for a number of reasons. Below are four of the big ones.
Traceability can significantly reduce the number of defects in your applications, says Eyar Zilberman, cofounder and chief product officer at Datree.
“There is a statistically significant relationship between the completeness of the captured traceability information and the defect rate of the developed source code,” he writes. “More complete traceability decreases the expected defect rate in the developed software.”
Traceability can help your team meet the compliance requirements of regulators and other governing bodies. This is especially applicable if you create software for healthcare, finance or government customers.
Traceability helps your team improve development speed without sacrificing quality. This is important from a DevOps perspective because of the speed at which applications are developed.
DevOps teams have to balance software rollout speed with software performance, and traceability is what helps strike that balance.
Traceability can help improve transparency for clients, writes digital transformation consultant Jane Vyshnova.
“Today more and more clients strive to be inside the process, they know how it works,” Vyshnova says. If you are able to trace their requirements from the initial meeting through to development, you can prove you’ve executed the plan everyone agreed to at the start.
What Do Good Traceability Practices Look Like?
As part of our DevOps assessment, we assess the people, processes and tools involved with traceability in the following ways.
Both analysts and software engineers have important roles in improving traceability.
Analysts, for example, should create user stories and defects as requirements. They should add acceptance criteria to those user stories, and that acceptance criteria can then proxy for test scripts.
Software engineers should continue the analysts' work by adding user story and defect IDs to code commits.
The creation of user stories and defects as requirements or work items are the focal point of traceability. There should therefore be written processes on how these are created and tracked using IDs.
As an example, analysts should create user stories with acceptance criteria. Software engineers should code against the user stories and commit the ID of the item alongside the code.
The integrated build and deploy processes carry the ID through to production, thereby evidencing traceability from requirement to code, to test, to build, to deploy and on to production.
There are a number of tools that software development teams can use to improve traceability. These include:
- Visual Studio.
Here’s an example of how these tools can work together: Developers can use Jira to project manage builds and add Jira IDs to code commits. They can then leverage Jira’s GitLab integration to automate code commits and the Jenkins GitLab integration to automate build tracing.
How to Assess Traceability
“Traceability is paramount,” says Kingsmen Software CEO Bill Clerici. “You always want to have full traceability from the requirements you've got from stakeholders to the code that’s in production.”
That’s why looking into a software team’s traceability practices is a core part of our DevOps assessment. We take a broad look at the people, processes and tools a software development team uses to manage traceability, identify what’s working well and highlight what could improve.
It’s an informative, in-depth report that’s useful for anyone looking to complete due diligence prior to making an acquisition or investment. Speak to one of our experts today to find out more.