Every growing codebase carries debt. The question is not whether you have it, but whether it is priced, prioritized, and paid down deliberately. Teams that treat debt as a moral failure tend to oscillate between denial and expensive rescue projects. Teams that treat it as a portfolio make calmer, faster decisions.

Price the debt before you rank it

Most debt backlogs fail because every item is described in engineering language: "upgrade the ORM," "split the monolith," "remove the circular dependency." Executives cannot compare those items to a revenue feature. Translate each item into one of three currencies: delivery drag (weeks lost per quarter), risk exposure (incident likelihood and blast radius), or cost of operation (infrastructure and support hours).

Once debt is priced, it belongs in the same portfolio review as product work. You are no longer asking for "engineering time." You are choosing between two investments with different return profiles.

The 20% capacity contract

Reserve a standing slice of every sprint for engineering health, and protect it like a customer commitment. The exact number matters less than the contract. Twenty percent is enough to make progress without starving the roadmap; ten percent is enough to stop the bleeding; zero percent is a decision to borrow at a higher interest rate later.

  • 70% product: committed roadmap work with a named customer outcome.
  • 20% engineering health: debt reduction, reliability, and developer experience.
  • 10% discovery: spikes and prototypes with an explicit expiry date.

The split is a planning heuristic, not a law. During a launch window you may temporarily shift the mix — but write down when it returns to normal. Unwritten exceptions become the new baseline.

Make the cost of delay visible

Use cycle-time data to show what debt actually costs. If the checkout team's lead time has grown from four days to eleven over two quarters, that is a business metric, not a code-quality complaint. Pair it with incident data and support volume. Leaders do not need to understand your architecture to understand a trend line that is moving in the wrong direction.

Debt is not the enemy. Unpriced debt is. Once the cost is visible, the conversation shifts from principle to prioritization.

A quarterly review that actually works

Run a 45-minute debt review every quarter with engineering and product leadership in the room. Keep it ruthlessly short:

  1. Review the three largest debt items and their business impact.
  2. Confirm what was retired since the last review — celebrate the deletions.
  3. Approve the next quarter's funded debt work, with an owner and a deadline.
  4. Record any accepted risk explicitly, including who owns it.

The output is a one-page decision record, not a 40-slide deck. The goal is a shared memory of what you chose to carry and why. That memory is what keeps the same debate from reopening every sprint.

What good looks like

Healthy teams can name their top three debt risks, show the delivery drag each one creates, and point to funded work in progress. They delete more than they add. And when they choose to carry debt for a strategic reason, they do it with their eyes open — not by accident.