Skip to content

Technical debt is a product decision

Frame debt in product terms and it finally gets prioritised.

DevTechnology Engineering15 May 20263 min read
Software Engineering3 min read

Every product team has a list of things engineers want to fix. Almost every product team also has a roadmap with no room for that list. The standoff usually ends the same way: features win, the list grows, and delivery gets gradually slower until someone proposes a rewrite.

The problem isn't that product managers don't care about code quality. It's that technical debt is usually presented in engineering terms, when the decision to pay it down is a product and business decision — and deserves to be argued like one.

Debt is fine. Unmanaged debt isn't.

Taking on technical debt is often the right call: shipping a simpler version to test demand, hard-coding a rule you might never change, skipping an abstraction until a second use case appears. Like financial debt, it's a tool. The trouble starts when nobody tracks the balance or the interest.

Translate debt into product terms

Instead of describing the cause, describe the effect on things the business already cares about.

  • Speed — changes to checkout take three times longer than elsewhere because the logic is duplicated in four places.
  • Reliability — the reporting job fails roughly weekly and needs manual restarts.
  • Risk — the payment library is two major versions behind and no longer receives security fixes.
  • Opportunity — we can't offer annual plans without restructuring the billing module.

Each of these can be compared directly with a feature. A roadmap conversation between speed and a new feature is one product managers know how to have.

Keep a debt register

Maintain a short, living list of significant debt items, each with its business effect, a rough size and an owner. Review it in planning alongside features. Small fixes belong in normal work — the register is for things that need a decision.

If it isn't written down with a business effect next to it, it's a grievance, not a backlog item.

Budget for it explicitly

Teams that manage debt well usually reserve a consistent share of each sprint for it, rather than waiting for a dedicated clean-up quarter that never comes. The exact share matters less than its consistency. Pair it with a rule: when you touch an area for a feature, leave it better than you found it.

Avoid the rewrite trap

When debt has been ignored for long enough, a full rewrite starts to look attractive. It rarely is. Rewrites take longer than planned, freeze feature work and reintroduce bugs the old system had already fixed. Incremental replacement — one module at a time, behind stable interfaces — is slower to start and far more likely to finish.

Written by

DevTechnology Engineering

Put this thinking to work.

A senior lead replies within one business day.