Tools to Track and Manage Technical Debt
It's hard to make the right decision. We will look at the tools to track small, medium, and large pieces of debt and the process to reduce technical debt.
Join the DZone community and get the full member experience.Join For Free
Why Tracking Technical Debt Is Important?
In the previous article, we looked at why managing technical debt is crucial. Technical debt happens when a development team speeds up the delivery of a project or functionality that will require refactoring later on. Technical debt causes delays in releasing new features, hinders innovation, and decreases the engineering team’s job satisfaction. Companies that manage their technical debt effectively ship 50% faster, have happier teams, and save millions of $ in revenue.
By simply putting the right process for managing technical debt in place, businesses can boost their productivity and make sure their velocity will not drop.
How Do Companies Manage Technical Debt?
The study from 2018 surveyed 226 participants from 15 large organizations. Only 7% of them were tracking technical debt using tools and documentation, and only 3,5% confirmed that all members of the organization participate in tracking technical debt.
According to Stripe, maintenance of legacy systems and technical debt are considered the number one reason for hindering developer productivity. Yet only a small percentage of companies have a process for managing technical debt.
Analyzing the study and 200+ interviews we’ve conducted at Stepsize as part of the customer development work, we've identified 6 types of tools that help manage technical debt:
Many teams use wiki pages, Trello boards, or Microsoft Excel to document technical debt issues. Such documentation is helpful to bring visibility into technical debt across the teams.
2. Project Management tools
Backlogs in Project Management tools are the most used tool among all organizations: Jira, Hansoft, and Excel, in particular.
Dedicating a backlog to tech debt issues is a way to catalog and document the debt in your codebase. Unfortunately, while better than nothing, such backlogs can be hard to maintain as engineers will accumulate a mountain of refactoring tickets until they stop tracking this data because they notice these are often lost in the noise or simply never prioritized.
3. Static Analyzer
Tools such as SonarQube, SonarGraph, Klockwork are used to analyze source code in search of technical debt. These tools use quantitative data to help developers identify hotspots in the codebase likely to have technical debt. One of their limitations is that they won't help you identify medium to large pieces of debt that span multiple parts of your codebase, and won't provide you with the context necessary for you to truly understand each piece of debt and how to prioritize and ultimately tackle it.
Linters are a type of static analysis tool used to flag programming errors, bugs, stylistic errors, and suspicious constructs which sometimes include technical debt.
These tools, especially when paired with your deployment pipeline, help limit cruft by allowing you to enforce some coding standards across the whole engineering team. Among other things, maintaining these standards will help improve the readability of your code.
5. Test coverage
Some of the respondents measure test coverage and consider low test coverage or outdated tests as a form of tech debt.
6. Technical debt management
This is a new category of tools specially designed to fill the gaps left unaddressed by the other tools above. SaaS products like Stepsize allow engineers to track tech debt of any size directly from their workflow. This data allows teams to gain visibility into their tech debt, understand its impact on the business, and get the necessary buy-in for appropriate resources to be allocated to addressing important tech debt.
Let’s now look at how you can use these tools to reduce your technical debt depending on the size of your debt.
Small, Medium, and Large Technical Debt
To start managing your technical debt, you first need to decide whether you are dealing with the small, medium, or large pieces of debt and work separately with each.
Small pieces of debt: the type of tech debt that can be addressed as soon as the engineer spots it in the code and it’s within the scope of the ticket they're working on.
Medium pieces of debt: the type of debt that can be addressed within a sprint. It should go through the same sprint planning process as any feature work and be considered just as rigorously.
Large pieces of debt: the tech debt that cannot be addressed immediately or even in one sprint. The best companies we've interviewed have quarterly technical planning sessions in which all engineering leaders participate.
If you're a small team of engineers working on a small and young codebase, you can start small. Apply the boy/girl-scout rule, adopt appropriate code quality and test coverage tools, and regularly clear the debt in the way of the features on your product roadmap.
Published at DZone with permission of Alex Omeyer. See the original article here.
Opinions expressed by DZone contributors are their own.