Tech Debt Isn’t Debt
And the guy who named it wishes he hadn’t.
Tech debt isn’t debt. The guy who named it wishes he hadn’t.
Ward Cunningham coined the phrase in 1992. He was at a software company called Wyatt Software, trying to explain to his colleagues why his team needed to refactor. The audience was finance people, so he picked a finance metaphor. It worked. Then it escaped the room. Then it spent thirty-four years getting misused so badly that Cunningham himself reportedly said the word he really wanted was *opportunity*.
That’s the air cover for what I’m about to say.
The thing you actually bought
When you buy a house, you take out a mortgage. That’s your debt. Principal, interest, term. You make payments. One day you pay it off, and the debt is retired. Done. Gone. The house is yours.
But the house doesn’t stop happening to you.
Year three, the front door starts squeaking. Year five, you’ve got a hairline crack running up the drywall because the foundation settled. Year seven, the dryer vent is so clogged your insurance company would like a word. The HVAC filter needs replacing every quarter or your energy bill turns into a second mortgage. The maple in the front yard sends a branch through your gutter and you spend a Saturday up a ladder with a chainsaw wondering where your weekend went.
That’s not debt. That’s maintenance.
And maintenance doesn’t retire. It cycles. Forever. Until you sell the house or the house falls down.
This is your codebase. The library that’s three major versions behind. The deploy script only Sarah understands, and Sarah’s on PTO. The flaky test that’s been “flaky” for nine months. The service running on an EC2 instance someone spun up in 2019 that nobody wants to touch because the IAM role attached to it has god-mode permissions and the original engineer left two reorgs ago.
You don’t retire that. You live with it. Or you maintain it. Pick one.
The “retire” problem
Listen to how people talk. “We’re going to retire our tech debt.” “We’ve got a debt repayment plan.” “We’re going to pay it off next quarter.”
Pay it off with what? Send a check?
Real debt has cash. You barter, you exchange, the balance goes down, the obligation ends. There is no cash for tech debt. There are only more engineers, more time, and another quarter of features that won’t ship because you’re up a ladder with a chainsaw.
A mortgage buys you a house that appreciates. Tech debt payment usually buys you back the velocity you had two years ago. You haven’t retired a liability. You’ve cleaned gutters. There’s no equity. There’s no closing ceremony. There’s only the next gutter.
Why this matters (in numbers)
Don’t get me wrong, the pain is real. The 2025 DORA report — the closest thing the industry has to a scoreboard — found that fewer than 1 in 10 teams achieve a rework rate below 2%.
Rework rate is tech debt by another name. It’s the unplanned deployment that fixes the bug introduced by the last unplanned deployment that fixed the bug. More than 9 in 10 teams are above the threshold. That’s not a debt problem. That’s a maintenance discipline problem.
The data is loud. We’re just labeling it wrong.
What Andy Grove would do
Andy Grove built one of the most operationally disciplined companies in history. He would have laughed at the financial metaphor.
There’s a story from Intel that’s been told a thousand times but never in this context. 1985. Intel is bleeding money on memory chips. Grove and Gordon Moore are sitting in his office. Grove turns and asks: *if we got kicked out and the board brought in a new CEO, what do you think he would do?* Moore says, without hesitation: *he would get us out of memories*. Grove replies: *why shouldn’t you and I walk out the door, come back and do it ourselves?*
Apply that to your codebase. If a new CTO walked in tomorrow and looked at what your team is doing with “tech debt” — the sprints, the offshore teams, the new-hire learn-by-suffering — would they say “yes, this is the right approach”? Or would they say “what is this maintenance backlog and why isn’t it run as a function”?
Another Grove gem that is relevant here. Intel’s facility maintenance teams were performing badly for years. Grove’s fix wasn’t to outsource them or schedule periodic deep-cleans. He instituted a competition — each building rated against the others, scores posted publicly. The cleanliness of every building improved dramatically. No bonuses. Just a scoreboard.
He didn’t ignore maintenance. He didn’t pretend it was beneath strategic attention. He instrumented it. Gave it a scoreboard. Made it visible. That’s the blueprint.
The three strategies that don’t work
When teams finally accept they have to “do something about the tech debt,” they reach for one of three strategies. All three are popular. All three measurably fail.
1. The Umbilical Outsource
Send it offshore. Cheap labor, big team, problem solved.
Except your FTEs are still tied to the work by an umbilical cord they can’t cut. Every PR needs domain review. Every broken pipeline routes back to the same three engineers who actually understand the system. Every “wait, why does this function exist?” turns into a thirty-minute call across timezones at hours nobody wanted.
You didn’t outsource the work. You outsourced the typing. The thinking stayed home. And now your senior engineers spend half their day reviewing code they didn’t write, in a context nobody on the other end can ever fully load.
The billing went down. Everything that matters got worse.
2. The Sprint Spike Theater
Rotate engineers across the roster. Pick a chunk of debt. Cherry-pick a fix. Ship it. Celebrate in the retro. Move on.
Looks beautiful in a dashboard. Means almost nothing on the ground. Because the engineer who fixed it learned something — and then the lesson died when they rotated back to features. Nobody else on the team knows what they learned. The pattern that caused the debt is still there. You fixed one squeaky door in a house with forty-seven of them, and you didn’t tell anyone where the WD-40 lives.
Pro tip: if your tech debt sprint doesn’t end with a writeup, a pattern, or a tool the rest of the org can use, you didn’t fix debt. You fixed a ticket.
3. The New Hire Trap
“Give it to the new hire. They’ll learn by going deep.”
Cute. Until you realize what they’re actually learning.
They’re learning this is what new hires get. They’re learning the senior engineers above them don’t want to touch this code, which is why it landed on their desk. And they’re learning the job market has companies that don’t punish curiosity with six months of janitorial work.
Then they leave. Six to nine months of salary in hiring and replacement costs, lit on fire. The debt is still there. The next new hire is going to hear about it from someone in the kitchen on day three.
What changes when you stop calling it debt
The word is doing more damage than you think.
When you call it debt, the mental model is: there’s a balance, we’ll pay it down, one day we’ll be free of it. Finance thinks in terms of payoff timelines. Product thinks it’s optional. Everyone keeps shipping on a foundation that’s quietly settling.
When you call it maintenance, the mental model changes. Maintenance is a line on the budget, not a negotiation. Maintenance has an owner. It doesn’t retire — it just runs. You don’t call a meeting to decide whether to change the HVAC filter. You have a schedule.
Start there. Put a maintenance function in your roadmap. Not a sprint. A function. Someone owns it. They have a scoreboard. And the scoreboard is output — lead time, rework rate, change failure rate — not tickets closed. Not hours billed. Not the size of the backlog you heroically defeated in Q3.
The conversation with product and finance changes too. When you stop saying “we need to retire tech debt” and start saying “our rework rate is 14% and our lead time doubled in two quarters,” something shifts. Product stops rolling their eyes. Finance actually listens. Because now you’re not asking for permission to do invisible work. You’re reporting on a system that’s visibly degrading, with numbers.
Stop handing it to people who can’t win. The new hire can’t win alone. The offshore team can’t win without context. Give someone a winnable game — real scope, real ownership, real visibility. Grove’s building maintenance teams had no bonuses and dramatically improved. All it took was a scoreboard and someone who could see the racetrack.
The codebase you have in two years isn’t a function of the sprint you scheduled today. It’s a function of whether you treated upkeep as the actual job or the thing you’d get to eventually.
You’re living in the house either way.


