Technical Debt
The accumulated cost of shortcuts and suboptimal solutions in code that will require future effort to fix.
Definition
Technical debt accumulates when development teams choose quick solutions over optimal ones—whether due to time pressure, incomplete understanding, or intentional tradeoffs. Like financial debt, it accrues interest: the longer it persists, the more it complicates future development.
Some technical debt is strategic (ship now, refactor later); some is inadvertent (we didn't know better). All of it eventually requires payment through refactoring, rewrites, or ongoing workarounds.
Why It Matters
Unmanaged technical debt slows development velocity over time. Features that should take days take weeks. Bugs multiply. Developer morale suffers.
Understanding technical debt helps teams make informed decisions about when to take it on and when to pay it down.
Examples in Practice
A startup launches with hardcoded configurations to meet their deadline, knowing they're taking on debt they'll need to address before scaling.
An engineering team dedicates 20% of each sprint to debt reduction after realizing accumulated shortcuts were slowing feature development.
A redesign stalls because the legacy codebase has so much debt that simple changes break seemingly unrelated features.