Software Development

What is Technical Debt?

Quick answer

The future cost of rework caused by choosing a quick or easy software solution now instead of a better long-term approach.

Technical Debt, explained

The term was coined by programmer Ward Cunningham, who compared shortcuts in code to financial debt. Taking on some debt can be sensible, for example to ship a prototype quickly, but like a loan it accrues interest: each later change becomes slower and riskier until the debt is paid down through refactoring.

Technical debt shows up as duplicated code, missing tests, outdated dependencies, confusing architecture, poor documentation, and workarounds no one fully understands. Some debt is deliberate, while some accumulates unintentionally as requirements change. Teams manage it by tracking known debt, reserving time in each cycle for cleanup, writing automated tests, and making debt visible to business stakeholders so they understand why maintenance work matters.

Related terms

Guides that mention Technical Debt