All field notes
Performance

Technical debt: what it is and why it's costing you

CM Christopher McGrath · Jan 5, 2026 · 5 min read
Cover image for “Technical debt: what it is and why it's costing you”

Every software project takes shortcuts. Sometimes it's deliberate, ship now, clean up later. Sometimes it's accidental, nobody knew the right way at the time. Either way, those shortcuts accumulate, and like financial debt, they accrue interest. The longer you leave them, the more expensive they become.

Technical debt isn't a flaw in how something was built. It's the nature of building software under real constraints: deadlines, budgets, incomplete information. The problem isn't that it exists, every codebase has some, it's when it's ignored until it becomes a crisis.

What technical debt looks like

You can't always see technical debt from the outside, but you can feel it:

  • Simple changes take longer than they should. A small feature that should take a day takes a week, because the code around it is tangled.
  • Fixing one thing breaks another. The system is so interconnected that changes ripple in unexpected ways.
  • The team is afraid to touch certain parts. "Don't change that, it'll break everything" is a clear sign of debt in a critical area.
  • Performance degrades over time. The system gets slower as it grows, because the architecture wasn't designed for the scale it's now serving.

Technical debt is the interest you pay on yesterday's shortcuts, in tomorrow's time and money.

Why it compounds

The insidious thing about technical debt is that it makes future work harder, which leads to more shortcuts, which creates more debt. A messy codebase is harder to change safely, so the team takes more shortcuts to meet deadlines, which makes the codebase messier. It's a spiral, and the longer it runs, the harder it is to break.

This is why "we'll clean it up later" is often a lie, well-intentioned but a lie nonetheless. Later never comes, because the pressure to ship never relents, and the debt keeps growing until the interest payments consume most of the development time.

When to address it

Not all debt needs immediate attention. Some shortcuts are pragmatic and stable, they work, they're not causing problems, and the cost of fixing them outweighs the benefit. The key is knowing which debt is which:

  • High-interest debt. Anything that's slowing you down, causing bugs, or making the system fragile. This is the debt that compounds fastest and needs attention first.
  • Low-interest debt. Minor shortcuts that aren't causing active problems. Keep an eye on them, but don't panic.
  • Dangerous debt. Security vulnerabilities, data integrity risks, or architectural choices that will fail under load. This is debt that can bankrupt you, and it needs immediate attention.

How to manage it

The first step is visibility. A code audit or a conversation with a developer who understands the system can map the debt and prioritise what to address. The second step is making debt reduction part of the regular work, not a separate project that never gets funded. Spend a little time each sprint cleaning up the most expensive shortcuts, and the overall health of the system improves steadily.

The goal isn't zero debt, that's unrealistic and probably not worth the cost. The goal is manageable debt, where you know what you're carrying, you're paying it down faster than you're accumulating it, and nothing is quietly compounding toward a crisis.

FREE · NO OBLIGATION

Let's find where your speed is leaking

Most small-business sites are slow for a handful of fixable reasons. I'll tell you which ones are costing you visitors, and what it takes to fix them.

Keep reading

Something breaking on Fridays?

Tell me what's going wrong. I'll tell you what I'd do about it.

Get in touch