Skip to content

Engineering glossary

Technical Debt

Technical debt is the future cost, risk, or constraint created when an engineering decision makes later change or operation more difficult than a better-supported alternative would.

In plain language

Technical debt is not automatically poor engineering. A team may deliberately accept a shortcut to learn sooner, provided the consequence is understood. Debt becomes dangerous when it is invisible, compounds through repeated workarounds, or prevents safe change.

Why it matters to a business

  • Explains why apparently small changes can become slow or risky
  • Helps teams compare remediation with product work using business consequences
  • Makes maintenance and architectural constraints discussable rather than mysterious

How it works

  1. 1A decision saves time or complexity now but creates a future obligation.
  2. 2The obligation accumulates interest through slower delivery, incidents, fragile tests, or operational work.
  3. 3Teams identify, describe, and prioritize debt against measurable risk and roadmap needs.
  4. 4Remediation can be incremental, opportunistic, or a bounded modernization effort.

Common use cases

  • Outdated dependencies blocking upgrades
  • Duplicated business rules causing inconsistent behavior
  • Missing automated tests around critical workflows
  • A rushed integration that cannot recover safely

Important implementation decisions

  • Business consequence and likelihood
  • Cost of remediation versus continued interest
  • Whether to contain, replace, document, or accept the constraint
  • How to prevent the same debt from recurring

Common mistakes and misconceptions

  • Calling every imperfection technical debt
  • Assuming all debt must be removed
  • Using the term without describing business impact
  • Scheduling a broad rewrite instead of bounded remediation

Limitations and trade-offs

Eliminating all debt is neither realistic nor necessarily valuable.

Deferring remediation can be rational when the affected system is stable, low-risk, or near retirement.

Need to apply this concept to a real system?

A focused technical discussion can identify the decisions and constraints that matter before implementation.