Technical Debt

Definition

Cost of additional rework caused by choosing quick solutions instead of better approaches, impacting long-term project sustainability and performance.

Use Cases

Frequently Asked Questions

What's the difference between technical debt and bugs?
Bugs are defects where the software behaves incorrectly. Technical debt is design or implementation choices that work now but make future changes harder or riskier (for example, duplicated code, missing tests, or a rushed architecture). Technical debt can lead to more bugs later, but it isn’t always a bug today.
When should I take on technical debt (and when should I pay it down)?
Take on technical debt intentionally when speed matters and the shortcut is temporary and understood (for example, validating a new product idea). Pay it down when it starts slowing delivery, increasing incidents, blocking security/compliance needs, or making simple changes expensive. A practical approach is to schedule regular refactoring time, prioritize the debt that affects critical paths, and prevent new debt with code reviews and automated tests.
How much does technical debt cost?
There is no fixed price. Costs usually show up as extra engineering time (slower feature delivery), higher defect rates, more outages and on-call time, delayed migrations, and increased security risk. The biggest cost drivers are how often the affected code changes, how critical it is to the business, how hard it is to test, and how many teams depend on it.

Category: software

Difficulty: intermediate

See Also