On Tech Debt

March 16, 2025

Tech debt is always a hot topic among teams building software. I've seen it used as a catch-all “get out of jail free” card when working with non-technical partners or as justification for why a large engineering project should take priority over other work. But this approach is a problem. Lack of clarity contributes to division on teams and prevents them from making holistic, shared decisions about what is best for the business in the short and long term. This division is usually caused by ambiguity around what exactly counts as tech debt, how it accumulates and how it causes problems.

What is tech debt

Tech debt is the unknowns of your project made manifest in code. These unknowns can be market unknowns, unknowns about users, or the team not knowing how certain technologies will perform. None of the unknowns are inherently bad - every project worth doing has them. The** problem comes when there isn’t a shared understanding on the team that with unknowns, comes a cost**. The team is making a bet, not knowing what they don’t know, in hopes that they find a market opportunity, learn along the way, and earn the right to keep going.

I have found monetary debt a helpful tool when thinking about tech debt. Like a loan from a bank, tech debt is a concrete expression of risk. Unknowns are like interest rates; the more unknowns, the larger the risk. Even for projects that succeed, tech debt accumulates must be paid.

Accumulating Tech Debt

Tech debt can be accumulated both actively and passively. Teams take on tech debt actively when they tackle the unknowns of a project by making assumptions the market, users or a technology. Teams also actively take on debt by quickly pivoting to adapt to new learnings about unknowns and cutting corners or just making things work to attack an opportunity. This is similar to a company getting financing to acquire another in a market they want to enter. They make the bet that their overall profits will be greater than the cost of the acquisition.

Companies also passively acquire debt over time because the business shifts and the code stays static. Just like any capital investment, software requires regular maintenance to deliver value. When you don’t make time for it or intentionally sideline it, you have to deal with the consequences down the road.

Problems with Tech Debt

The first roadblock companies hit is when the debt incurred is used to make something the market doesn’t want. This like a company manufacturing physical products then being unable to sell them due to lack of demand. The company is left with worthless inventory on its hands and no way to pay back the loan.

If a company navigates the first roadblock and builds something the market wants, they usually hit a second roadblock. This happens when too much tech debt is accumulated, inhibiting the company from delivering a high quality product or improvements. Again, this just is like taking on monetary debt. If a company takes on so much they have trouble making payroll, they won’t be able to invest in growth or meet the demands of the market.

The third and most insidious roadblock is also the most common. It happens when tech debt is unacknowledged by the team as a whole. This is often because the software engineers don’t communicate about the debt incurred to their teammates until the problem is acute and drastic measures are needed. Half the team is caught off guard and plans are thrown out the window. This roadblock often leads to animosity between technical and non-technical team members. The best way to keep this from happening is to communicate early and often when tech debt starts to affect team's ability to execute. When discussing it, make it a "we" problem that the team solves together.

Conclusion

Tech debt is part of the natural push and pull of software development in a changing environment. Having a shared understanding of what tech debt is, how it accumulates and what problems occur when it's not addressed allows a team to perform at a high level and function cohesively. This transforms tech debt from being a barrier to team success, to a catalyst for shared mission and ownership.