Show in graph
REQ

Management → Requirements & Planning

Technical Debt

The accumulated cost of design, implementation, or operational shortcuts that make future change slower or riskier.

Technical Debt diagram

Technical Debt

Technical debt is the future cost created when a technical decision makes later change, operation, or maintenance harder than it otherwise would be. Like financial debt, it can be useful when taken deliberately, but it becomes dangerous when its cost and repayment plan are ignored.

Motivation

Teams rarely optimize only for long-term design quality. Deadlines, experiments, incidents, uncertain requirements, and limited staffing can make a shortcut rational. The important question is not whether debt exists, but whether the team understands why it exists, what interest it creates, and when it should be repaid.

Intentional technical debt

Intentional debt is accepted consciously as a tradeoff. The team knows that a cleaner or more resilient solution exists but chooses a temporary compromise to gain something valuable now, such as validating a product idea, meeting a regulatory deadline, or restoring service during an incident.

Healthy intentional debt is:

  • Explicitly documented, including the decision and its constraints.
  • Limited in scope and accompanied by safeguards.
  • Assigned an owner or review date.
  • Reassessed when the original constraint no longer applies.

For example, a team may launch with a manually operated workflow while demand is uncertain, provided it records the operational burden and defines the usage threshold that justifies automation.

Accidental technical debt

Accidental debt appears without a deliberate tradeoff. It can come from incomplete understanding, weak design, changing requirements, neglected maintenance, duplicated code, obsolete dependencies, or an architecture that no longer fits the system’s scale.

Accidental debt is not always evidence of poor engineering. A sound design can become debt as the environment changes. The danger is allowing it to remain invisible until every change becomes slower and riskier.

Where it fits

Technical debt connects engineering decisions with planning and prioritization. It affects architecture, code quality, testing, operations, security, delivery speed, and team ownership.

Mental model

Think in terms of principal and interest:

  • The principal is the effort required to remove the underlying limitation.
  • The interest is the recurring cost paid while it remains: slower delivery, more incidents, harder onboarding, duplicated work, or constrained product choices.

Not every imperfection is debt. A simple solution that fully meets current needs is not automatically debt merely because a more elaborate design exists.

Managing technical debt

Teams should make debt visible and compare its interest with competing product work. Useful actions include recording debt during reviews and incidents, measuring its operational effects, reserving capacity for repayment, and addressing high-interest debt while modifying the affected area.

Common mistakes

  • Calling every disliked implementation “technical debt.”
  • Treating intentional debt as acceptable forever because it was once deliberate.
  • Scheduling large cleanup projects without tying them to measurable risk or delivery outcomes.
  • Ignoring accidental debt until it blocks a critical change.
  • Assuming all debt must be removed; some low-interest debt is rational to retain.