How To Get Rid of Technical Debt for Good
Technical debt is something most development teams don’t want to think about, but failing to address it puts organizations at risk.
Software developers know well there’s always a tension between technical debt and creating new features. Typically, the latter is prioritized, and over time, the amount of technical debt continues to build, making it even harder to address.
Technological advances promise to help. For example, low-code and generative artificial intelligence (GenAI) can reduce the amount of time it takes to create an application, so the time savings can be used for reducing technical debt. However, whether technical debt is addressed or not is a choice.
While modern technologies help, more fundamentally, organizations need to acknowledge technical debt and have an ongoing plan to reduce it.
Why Technical Debt is Such a Problem
Technical debt is an inevitable challenge that has existed since the beginning of IT time, according to Ajay Sabhlok, chief information officer and chief data officer at zero-trust data security company Rubrik. It has been steadily increasing due to a proliferation of customizable SaaS tools with evolving out of the box functionality, cloud development, fragmented workloads and most recently, GenAI. Left unchecked, technical debt impedes development velocity, performance and troubleshooting of production issues and/or bugs.
“The first sign you should look for is - how long is it taking for your team to troubleshoot problems when it comes to your company’s solutions and platforms?” says Sabhlok in an email interview. “If it’s taking longer for your teams to address issues, you’ll quickly notice that you are developing technical debt because your technologies and processes are not optimized.”
It’s also important for the CIO to constantly communicate with the CFO. When these discussions occur at Rubrik, Sabhlok provides real-life examples and attempts to be as transparent as he can.
“For some CIOs and CTOs who are trying to reduce a mountain of technical debt, you could recommend allocating 10% of your budget as a separate envelope just for addressing technical debt," says Sabhlok.
Reducing Technical Debt Needs to be a Priority
Igor Zaporozhets, chief technology officer at enterprise software services provider Aimprosoft says the best way to address technical debt is to make in an ongoing practice.
“To get rid of it or minimize it, you should treat this problem as a regular task -- systematically. All technical debt should be precisely defined and fixed with a maximum description of the current state and expected results after the problem is solved,” says Zaporozhets. “As the next step, [plan] the activities related to technical debt -- namely, who, when, and how should deal with these problems. And, of course, regular time should be allocated for this, which means that dealing with technical debt should become a regular activity, like attending daily meetings.”
If even one of the above points is missed, this method will not work, and technical debt will accumulate, he says. Regularly addressing technical debt requires discipline, motivation and systematic behavior from all team members.
“[W]hen the team stops being afraid of technical debt and starts treating it as a regular task, the pressure will lessen, and there will be a sense of control,” says Zaporozhets, “It's important not to put technical debt on hold. I teach my teammates that each team member must remember to take a systematic approach to technical debt and take initiative. When the whole team works together on this, they will realize that technical debt is not so scary, and controlling the backlog will become a routine task.”
Regular attention to technical debt not only improves code quality and system performance but also creates a more proactive development environment.
“I've noticed that when the team gets used to it, stress and pressure are reduced. This may seem challenging at first, but the long-term benefits are worth it,” says Zaporozhets. “Regular attention to technical debt improves code quality, boosts team morale, and makes development processes more efficient. This reassurance should instill a sense of confidence and security in the team.”
Just don’t try to boil the ocean. Start with small tasks and gradually scaling up as the team gets used to it.
“Unfortunately, the complete absence of technical debt most often indicates insufficient quality control or unmotivated developers,” says Zaporozhets. “Create a culture where code quality and support are important. This includes code reviews, pair programming and regular refactoring. Use metrics to track progress so you can make informed decisions and show the benefits of these efforts. Train your team and regularly discuss the importance of technical debt management to keep everyone on the same page and motivated. I am confident you will succeed.”
Rubrik’s Sabhlok says something similar: Reducing technical debt is possible when an IT leader bakes this goal into their annual plan as a foundational IT initiative and commits to it.
“The work requires investment of resources and funds and may compete with other business priorities, but it’s crucial to address it. Treating debt reduction as a foundational recurring IT strategy can help consistently prioritize it over other business initiatives,” says Sabhlok. “There is also additional ROI in achieving tech debt reduction. For example, production maintenance of solutions that involve troubleshooting and bug fixing gets streamlined when developers deal with standardized code that has minimal debt. As a result, production service-level agreements improve.”
Have a Governance Function
Sabhlok also believes strongly that technology leaders must establish governance functions to help reduce technical debt.
"By establishing a governance function, an IT leader is given another way to reduce the development of technical debt and address the lack of processes and standards,” he says. “The governance body ultimately serves as a way for you to be accountable for the technical debt and measure your progress."
For example, Rubrik, has an architecture review council that asks questions, such as, “How much debt do we feel this will take on?” and “How did this project turn out?” They also maintain a prioritized inventory of identified technical debt that development teams can address via maintenance sprints based on capacity.
"Naturally, businesses want to create and deploy new products/solutions that they can take to the market, but as a technical leader, one of my main priorities is to also grow existing products and solutions,” says Sabhlok. “Sometimes, there can be misalignment between technical leadership and the wider business if CIOs and CTOs want to spend money on improving existing products while other executive leadership wants to make new ones and potentially create even more technical debt. It’s a constant challenge that you’ll need to find balance for."
About the Author
You May Also Like