Skip to main content
Research
Opinion6 min read

Technical Debt Is Not Debt. It Is Tax. And You Have Not Filed in Years.

Debt implies you borrowed something and will pay it back. Technical debt implies you made a conscious tradeoff. What most teams have is compounding tax on every feature they ship, paid in slow delivery, unstable systems, and engineer attrition. Nobody signed up for the tax.

AuthorAbhishek Sharma· Founder, Fordel Studios

Ward Cunningham invented the debt metaphor to describe a deliberate tradeoff: ship now with a less-than-perfect implementation, and pay back the principal later by refactoring. The metaphor assumed a lender who understood the trade and a borrower who intended to repay. Most technical debt accumulates with neither party present. No deliberate tradeoff was made. No one intended to repay it. It just accreted, slowly, across thousands of pull requests, over years, in a codebase that nobody owns holistically.

That is not debt. That is a tax on future engineering, compounding daily, that nobody agreed to pay.

···

How the Metaphor Gets Used

Engineering teams use "technical debt" to mean two completely different things, and the conflation causes every subsequent conversation to fail. The first meaning: a deliberate shortcut taken knowingly, with a plan to address it, to hit a deadline or test a hypothesis. This is legitimate debt. It was borrowed intentionally. It should be tracked and repaid. The second meaning: accumulated complexity, inconsistency, and fragility that has built up through negligence, turnover, unclear ownership, and the absence of any deliberate architectural stewardship. This is not debt. It is decay.

When a product manager hears "we need to pay down technical debt," they are thinking of the first meaning — a finite, bounded obligation from a past decision. The engineer often means the second — a vast, unbounded, compounding problem that cannot be paid down in a sprint. The mismatch in mental model is why technical debt conversations almost never result in meaningful remediation work.

Technical debt that nobody tracks is not debt. It is the cost of doing business in a codebase that nobody owns. Call it what it is.

Why "Paying It Down" Almost Never Works

The typical approach to technical debt: dedicate a sprint to it. Engineers spend two weeks fixing things that have been building for two years. The sprint produces some local improvements. The next feature sprint re-introduces new debt in the same areas. The net change is approximately zero. The team concludes that technical debt management does not work. What they ran was not a management approach — it was a superficial cleaning of a system that produces decay continuously.

The alternative is to treat the tax as a continuous cost, not a periodic payment. Every feature sprint includes debt remediation as part of the definition of done for each area touched. Every engineer who modifies a module leaves it slightly better than they found it. No big refactoring projects. Continuous marginal improvement. This is slower to show visible results, but it is the only approach that reverses the trajectory instead of just slowing it.

What Changes When You Name It Correctly

Calling decay what it is — not debt, but accumulated neglect — changes the conversation. Debt implies responsibility from a past decision. Neglect implies a current process failure. Debt gets paid back. Neglect gets addressed by changing the process that produces it. The fix for neglect is not a remediation sprint. It is code ownership, architectural stewardship, and a development process that includes continuous improvement as a first-class activity rather than something you do when the product stops responding.

The companies that have genuinely healthy codebases did not get there by paying down debt. They got there by building cultures where engineers are expected to improve the code they touch, where architectural ownership is explicit, and where "it works" is not the same as "it is done." The codebase reflects the culture that produced it. Fix the culture first.

Loading comments...