★★★★★Bespoke software for B2B·One-off build fee, low monthly retainer·You own the software

Buying, cost and process

What is technical debt, and how do you know if you have a problem

Technical debt is the extra cost of maintaining and changing software because of shortcuts, ageing decisions, or a lack of investment in its design over time - not because the software is 'broken'. If your developer keeps using the phrase, it's worth understanding what it actually means before you agree to spend money fixing it.

Haystak · 11 August 2026 · Updated 11 August 2026 · 7 min read

A diagram showing technical debt building up over time as shortcuts accumulate in a software system

Technical debt is what is what economists would call a metaphor: like financial debt, it lets you move faster now in exchange for a cost you'll pay later, with interest. In software, that cost shows up as new features taking longer to build, more bugs appearing in places nobody touched, and a growing reluctance among developers to change anything for fear of breaking something else.

It doesn't mean your software is bad or was built badly. Some technical debt is a reasonable trade-off, taken on deliberately to hit a deadline. The problem is when nobody tracks it, and the interest quietly compounds until ordinary changes become disproportionately expensive.

Where does technical debt actually come from?

It builds up from several different directions, and it's worth knowing which one you're dealing with, because the fix is different in each case.

SourceHow it happensExample
Deliberate shortcutsA quick fix chosen to hit a deadline, meant to be revisited laterHard-coding a value instead of building a proper settings screen, 'just for now'
Ageing decisionsA choice that was reasonable at the time but hasn't kept pace with how the business grewA system built for 10 users now serving 200
NeglectNo ongoing investment or maintenance over yearsNobody has updated dependencies since the system launched
Knowledge lossThe people who understood the design have left, with nothing written downEvery change now requires reverse-engineering how it works first

The first is often fine, provided it's revisited. The other three are what usually turns into a real problem, because nobody chose them deliberately - they accumulated.

The phrases that suggest technical debt is real, not an excuse

It's a fair worry that 'technical debt' can be used as a vague justification for a big invoice. Here's how to tell whether it's describing something real.

  • "We can't make that change safely without touching several other things" - a sign of tightly tangled code where nothing can be changed in isolation.
  • "That would take longer than it should because of how it was built" - worth asking specifically what about how it was built, and whether it's fixable.
  • "We're scared to touch that part of the system" - a genuine and useful admission; it usually means there's no way to test that part safely before releasing a change.
  • "It would be quicker to rebuild that section than change it" - the strongest, most concrete signal, and worth taking seriously rather than dismissing as an excuse to start again.

If your developer can only describe the debt in vague terms - 'it's just old' or 'it's messy' - ask them to point to a specific recent example where it slowed something down or caused a bug. A real answer will have one.

Signs your business has a technical debt problem

You don't need to read code to notice the symptoms. These are the practical signs, visible from the business side.

  1. 01Small changes take a long time. A request that should be a day's work regularly turns into a week, with no clear reason why.
  2. 02Bugs appear in places you didn't touch. Fixing one thing breaks something apparently unrelated.
  3. 03Nobody wants to make certain changes. Developers avoid touching specific parts of the system, or insist on extensive testing for small tweaks.
  4. 04New starters take a long time to become useful. If there's no documentation, every new developer has to learn the system from scratch by trial and error.
  5. 05The system can't do something your competitors' systems clearly can. Growth is blocked not by a business decision but by the software's structure.

Does technical debt mean we need to rebuild the system?

Not necessarily, and a full rebuild is rarely the first thing worth trying. Technical debt is usually paid down incrementally: restructuring a specific troublesome area, adding tests around the parts nobody dares touch, or documenting how something works before the person who understands it leaves. A full legacy system migration is warranted when the debt is so widespread, or the underlying technology so unsupported, that incremental fixes cost more than starting again.

The right way to decide is the same as any other investment decision: weigh the ongoing cost of the debt (slower delivery, more bugs, growing risk) against the cost of fixing it, and be honest about which is bigger. We'd rather tell you the debt isn't yet worth fixing than sell you a rebuild you don't need.

How to stop it building up again

A small amount of ongoing investment prevents most debt from becoming a crisis. This is one of the reasons a proper software maintenance arrangement matters beyond just fixing bugs - it's also where the routine work of paying down debt happens, a bit at a time, rather than in an expensive, disruptive block years later.

The original term was coined by Ward Cunningham in 1992, and his own explanation is still one of the clearest - he intended it as a description of a reasonable, deliberate trade-off, not a synonym for bad code. Worth reading if you want the concept from source rather than filtered through a sales conversation.

If a developer keeps raising technical debt and you want an outside, plain-English view on whether it's a genuine problem, get in touch - we're happy to take a look and tell you honestly whether it's worth acting on now or leaving for later.

✦ Where this fits

More on this from us: our legacy software modernisation service.

Questions we get asked

Common questions

What is technical debt in simple terms?

It's the extra ongoing cost of maintaining and changing software because of shortcuts, ageing decisions, or a lack of investment over time - similar to financial debt, where moving faster now costs more later.

Is technical debt always a bad thing?

No. Some is a reasonable, deliberate trade-off to hit a deadline, provided it's tracked and revisited. It becomes a problem when it accumulates unnoticed and starts slowing down ordinary work.

How do I know if my developer is exaggerating technical debt to justify a big project?

Ask for a specific, recent example of it causing a real delay or bug, and what exactly would go wrong if it were left unaddressed. Vague answers are a warning sign; concrete ones usually aren't.

Does technical debt mean we need to rebuild our system from scratch?

Usually not. Most technical debt can be paid down incrementally - restructuring specific problem areas or adding documentation and tests. A full rebuild is only justified when the debt is widespread or the underlying technology is unsupported.

Want an outside view on your system's technical debt? We'll tell you what we'd build.

We'll take an honest look and tell you plainly whether it's a real problem worth fixing now, or something that can wait.

No pitch deck · We map your process · You own the software