What the hell is "Technical Debt"!?
It’s the most overused phrase in tech: "technical debt." You hear it in sprint retros, roadmap meetings, and frustrated hallway chats. It sounds serious. It sounds like something you can measure (and we try or at least sonarqube does). It even borrows from finance, so it must be logical right? The metaphor works like this: you make a conscious decision to take a shortcut, like building a quick-and-dirty solution to meet a deadline. This shortcut is the "principal" of your debt. The "interest" is the ongoing cost you pay for that decision, every time you touch that code, you're slowed down by its complexity, you introduce new bugs, or you spend extra time trying to understand it. Over time, this interest accrues, making future changes slower and more expensive.
But here’s the truth: "technical debt" is a fuzzy, misleading term that hides more than it reveals. What's more, it rarely, if ever, relates back to a conscious decision someone made (making the original metaphor somewhat redundant). And I think we should stop using it altogether.
The Problem with the Debt Metaphor
Ward Cunningham first coined the term back in 1992. The idea was that taking shortcuts to ship faster was like borrowing money: you’d have to “pay interest” later when the codebase became harder to change.
It was a clever metaphor and useful for its time but over the years, it’s been twisted into a giant, catch-all bucket for anything we don’t like about our code or systems:
The problem? When everything is "technical debt," nothing is.
My Experience
In my own career, "technical debt" has rarely been used as a neutral, objective term. More often, it’s been a convenient excuse (sometimes justifiably just not concisely) :
When “technical debt” becomes the magic phrase that explains away any problem, the real issues get buried.
How It Warps Developer Culture
The word "debt" has become a cultural poison, infecting how teams think and build. It instills a genuine fear in developers, who often pad their time estimates when a task involves "debt-ridden" code, not because the work is complex, but because they are terrified of the unknown “debt” awaiting them and being blamed for a bugs they didn't create. In turn, managers might schedule a "Tech Debt Sprint" to tackle the problem, but without a specific, measurable goal, it often devolves into pointless refactoring with no real impact. This cycle of fear and avoidance is so powerful that it begins to dictate architecture. To escape the perceived "debt," teams will over-engineer new features in isolation, creating separate, rigid systems that refuse to interact with the older codebase, introducing layers of avoidance. This creates new silos and brittle designs, turning the term "technical debt" into something that actively undermines good design and paralyzes constructive problem-solving.
The Real Picture: Two Different Problems
When you strip away the metaphor, what people call “technical debt” usually falls into two very different categories and they need two very different strategies.
Recommended by LinkedIn
This is the hidden delay slowing down your ability to deliver value right now. It's the extra drag on every sprint, every story, every change. Examples:
Cycle Time Lag is a speed problem. You can measure it, see it in your metrics, and fix it with targeted improvements. Think of Lag like a golfers handicap, its the increased time to deliver that we constantly try to reduce.
2. Product Risk
This is the looming threat that could cause expensive, painful disruption later. It’s not hurting today’s delivery, but it’s a ticking time bomb. Examples:
Product Risk is a resilience problem. It requires foresight, planning, and usually investment before it becomes urgent.
Why Ditching "Technical Debt" Matters
Using one catch-all label for both a speed problem's and a resilience problem has real consequences:
By separating the two, you get clarity and control:
Final Thought
Most of what we call “technical debt” isn’t debt at all, its a normal part of software development inherent in every system I've ever seen, I have never once been able to find the guy that made the decision to take the shortcut! What we call debt today is either a speed problem or a resilience problem. The sooner we stop using this "walking, talking meme" and drop the vague metaphor, the sooner we can have clear, measurable, productive conversations about where our time, money, and energy should go.
Really like how you’ve broken this down into Cycle Time Lag and Product Risk, Jim. In modernization, they show up in very different ways - one slows you down right now, the other builds quietly until it forces a big, expensive change. Treating them as the same ‘technical debt’ is how priorities get blurred and budgets get misallocated.