Technical Debt
Type: Systems & Dynamics
Local HTML: technical_debt.html
Definition
Shortcuts in code or systems that save time now but cost more later. Like financial debt β you borrow speed, pay back with interest.
Ward Cunningham coined the term: Shipping messy code is like borrowing money. You can do more now, but pay interest forever.
Why It Matters
Software: Quick fixes accumulate. Eventually, changing anything breaks everything. Organizations: Process shortcuts become permanent. βTemporaryβ workarounds last decades. Personal: Skipping exercise, eating poorly, ignoring maintenance β debt accrues. Civilization: Infrastructure decay, climate inaction, education gaps β societal technical debt.
Types of Debt
| Type | Description |
|---|---|
| Prudent | Taken knowingly, with plan to repay |
| Reckless | Taken unknowingly or carelessly |
| Deliberate | Conscious choice for speed |
| Inadvertent | Discovered after the fact |
The Interest
- Slower development β Changes take longer
- More bugs β Complexity breeds errors
- Knowledge silos β Only old-timers understand
- Attrition β Good developers leave
- Rewrite or die β Eventually, total replacement needed
Managing Debt
- Track it β Know what you owe
- Pay incrementally β Refactor as you go
- Budget for it β Allocate time to reduce debt
- Donβt take on more β Resist pressure for shortcuts
Related Biases
- Hyperbolic Discounting β Now > later
- Optimism Bias β βWeβll fix it laterβ
- [[Planning Fallacy** β Underestimating repayment cost
Audio
Podcast episode: Technical Debt
Part of the Cognitive Bias Reference