Slowly but surely, companies that focus on easy fixes rather than robust solutions can accumulate technical debt while building software — and see their productivity dwindle with every development cycle.
For software engineers, fallout from technical debt is taxing daily bandwidth, as time spent writing new code is instead occupied by fixing what's broken or precariously held together. Six in 10 engineers say tech debt slows pace of development, according to a report published by software company Stepsize. The company surveyed more than 200 engineers, engineering leads and CTOs.
Tech debt can grow and become difficult to manage, especially in teams that don't tackle it from the start through engineering excellence principles, according to Nicholas Charriere, staff software engineer at autonomous car company Cruise.
"Once you get a certain amount of tech debt, the rate at which you can build new things, or even maintain something that already exists, crawls to zero," said Charriere. When technical debt mounts, organizations get stuck in a vicious cycle of devoting resources to troubleshooting instead of new iterations.
And time spent fixing past issues adds up. On average, engineers spend six hours every week dealing with technical debt, according to Stepsize.
Technical debt can accumulate through several factors. The use of too many software languages and frameworks, development team turnover, and the need to accept known defects in order to meet deadlines are three of the top drivers of technical debt, according to a report from OutSystems. The use of outdated software languages or frameworks, bad infrastructure decisions or security defects from evolving threats can also contribute to the backlog.
"You're often dealing with technical debt that you didn't create," said Charriere. "Not only is it hard to work with because it's technical debt ... but also you don't necessarily understand exactly why it came to be, which makes it even harder."
Tech debt impacts teams, customers
Many see technical debt as a necessary evil, a consequence of working on projects with multiple engineers who might have different biases or skill levels, according to Chandra Kalle, head of engineering for LeanTaaS.
If not managed well, technical debt slows down the development process, potentially leading to a bad developer and customer experience, said Kalle. The impacts include features taking longer than expected due to refactoring dependencies, frustrated engineers having to read and rewrite other peoples' code under tight deadlines and annoyed users dealing with buggy features.
More than half of engineers believe technical debt negatively impacts team morale, according to Stepsize.
Mismanaged technical debt can bring consequences to the business side — it isn't merely a technical problem.
"Technical debt can also hinder your ability to solve business needs quickly, as it prevents you from taking advantage of more modern software development capabilities and tooling," said Justin Stone, senior director of Secure DevOps Platforms at Liberty Mutual, in an email. "This can impact the amount of time you spend developing new capabilities and/or the cost of maintaining existing ones."
Organizations aiming to manage technical debt need to introduce high engineering standards, according to Charriere.
"It has a lot to do with having a high engineering bar, forcing everything that goes in and gets merged in to go through some kind of peer review process, whether that's a code review or design review," said Charriere. "Conversations need to be had, decisions need to be justified and documented."
Tech leaders hoping to steer software development teams for optimal performance should balance communication, collaboration and independence. Engineers also require enough support from other business units to effectively manage technical debt and advance on projects.
Similar to financial debt, technical debt is more likely to become a problem if left unattended, according to Stone.
"Instead, take the time to understand how much you have and what the trade-offs are for having it," said Stone. "The key is to actively manage the trade-offs so you have the most customer value with the least amount of debt."