"Technical debt" is usually said with a grimace, like confessing a sin. Engineers treat it as evidence of sloppiness, something to be ashamed of and eliminated entirely. That framing is wrong, and it leads to bad decisions in both directions.
Technical debt is a financial instrument, and the metaphor is exact. Like real debt, it's neither good nor bad inherently — it's a tool. The skill isn't avoiding it; it's managing it deliberately. Here's how to think about it.
Technical debt is a deliberate trade-off: taking a shortcut now in exchange for more work later — exactly like financial debt.
It's good when you take it on consciously to move fast on something that matters (validate an idea, hit a deadline) and plan to pay it down. It's bad when it accumulates unconsciously, charges high "interest" by slowing everything down, and never gets repaid.
The goal isn't zero debt — it's managed debt.
Photo by Kaleidico on Unsplash
The financial analogy isn't loose — it maps precisely:
| Financial debt | Technical debt |
|---|---|
| Borrow money to move now | Take a shortcut to ship now |
| Pay interest over time | Pay "interest" as ongoing friction |
| Principal to repay | The refactor you eventually owe |
| Good debt (mortgage, investment) | Deliberate shortcut for real speed |
| Bad debt (high-interest, reckless) | Sloppy mess that compounds |
Just as a business taking on a strategic loan to grow isn't being irresponsible, an engineering team taking on deliberate debt to ship something important isn't being sloppy. And just as crushing high-interest consumer debt is dangerous, unmanaged technical debt that slows every future change is a real problem. The instrument is the same; wisdom is in how you use it.
Taking on debt deliberately is often the right call:
In each case, the key word is deliberate. You're consciously trading future work for present speed, with eyes open and a plan to address it. That's good debt — it buys you something valuable.
Debt becomes a problem under a few specific conditions:
This is the debt that earns the grimace. Not because debt is inherently bad, but because unmanaged debt, like unmanaged financial debt, quietly destroys you. The danger is in the lack of management, not the existence of debt.
Treating debt as a managed instrument means a few concrete habits:
This is exactly how you ship fast without breaking things: deliberate debt buys speed, and deliberate repayment keeps the codebase healthy enough to stay fast.
The mature view is portfolio management. You're not trying to eliminate all debt — that's as silly as a business refusing all financing. You're managing a portfolio: taking on debt where it buys real speed, paying down debt where the interest hurts, and leaving cheap debt alone.
This reframes the whole conversation. Instead of "debt = bad, we failed," it's "where should we take on debt to move faster, and which debt is costing us enough to repay?" That's a strategic question, and answering it well is a genuine engineering skill — one that separates teams that move deliberately from teams that are either reckless or paralyzed.
Q: Isn't all technical debt a sign we did something wrong? No — deliberate debt taken to move fast on something important is a smart trade-off, not a mistake. The problem is unconscious debt that accumulates through carelessness and never gets managed. Intentional debt with a repayment plan is good engineering, like a well-chosen business loan.
Q: How do we decide which debt to pay down first? Prioritize by interest rate — the debt that slows down the most work most often. Debt in frequently-changed code charges high interest and should go first; debt in stable, rarely-touched code charges little and can wait. Pay down what's actually costing you, not what's merely ugly.
Q: Should we ever just stop and pay down all our debt? Rarely — a total stop is usually overkill and economically wasteful. Better to continuously manage debt: pay down high-interest debt as part of regular work, take on new debt deliberately, and leave cheap debt alone. Ongoing management beats dramatic debt-payoff sprints.
Technical debt isn't a moral failing — it's a financial instrument, and the metaphor is exact. Deliberate debt taken to validate ideas, hit deadlines, or learn is smart. Unconscious debt that charges crushing interest and never gets repaid is dangerous. The goal isn't zero debt; it's a managed portfolio where you borrow for speed and repay where it hurts.
Start by making your debt visible — list the shortcuts in your codebase and note which ones slow you down daily. Then pay down the high-interest ones deliberately and leave the cheap ones alone. Manage the debt; don't moralize about it.
No following, no network, no luck. Just an unglamorous system I ran for eighteen months. Here's exactly what I did.

I went from 200 to 11,000 subscribers without hiring anyone. AI didn't write my newsletter — it did everything around it.

I chased big, audacious goals for years and burned out every time. Then I built my whole life around wins so small they felt like cheating.

Comments
Sign in to join the conversation
No comments yet. Be the first to share your thoughts!