Types of Technical Debt
Also Known As
tech debt
technical debt quadrant
Ward Cunningham
TL;DR
Technical debt is not uniform — deliberate vs inadvertent, reckless vs prudent quadrants define the nature of debt and the appropriate response to each type.
Explanation
Ward Cunningham's original metaphor: shipping imperfect code to meet a deadline is like taking a loan — the 'interest' is the ongoing cost of working around it. Martin Fowler's quadrant: Reckless-Deliberate ('no time for design'), Reckless-Inadvertent ('what's layering?'), Prudent-Deliberate ('ship now, fix later'), Prudent-Inadvertent ('now we know the better approach'). Reckless debt must be paid down aggressively. Deliberate-prudent debt should have a documented payback plan. Key insight: not all tech debt is bad — prudent debt accepted consciously with a plan is a legitimate business decision.
Common Misconception
✗ All technical debt is bad and must be eliminated — prudent deliberate debt (shipping with a known compromise and a plan to fix it) is a legitimate business tool when the interest cost is understood.
Why It Matters
Treating all tech debt as equivalent prevents productive conversations about which debt is acceptable and which is costing more in interest than it saves — the quadrant helps prioritise.
Common Mistakes
- Not documenting deliberate debt decisions — future developers don't know why a workaround exists or that it should be replaced.
- Accumulating inadvertent reckless debt through code review gaps — this is the most damaging type and the hardest to quantify.
- Using 'tech debt' as an excuse for poor quality — reckless inadvertent debt is not a legitimate business decision.
- No tech debt budget in sprints — without scheduled time for paydown, interest compounds and velocity degrades.
Code Examples
✗ Vulnerable
// Reckless deliberate debt — no plan to fix:
// TODO: this is a hack, refactor someday
function calculateDiscount($order) {
if ($order->customer_id === 42) return 0.5; // Hardcoded for VIP customer
// ... no plan to fix, no ticket created, forgotten in 3 days
}
✓ Fixed
// Prudent deliberate debt — documented with a plan:
// TECH_DEBT: [JIRA-1234] Discount rules hardcoded until DiscountEngine is built (Q3 2026)
// Owner: @paul | Estimated cost: 2 days | Interest: manual work for each new VIP
function calculateDiscount(Order $order): float {
// Temporary: static rules until pricing service is live
return match($order->tier) {
'vip' => 0.2,
'premium' => 0.1,
default => 0.0,
};
}
Tags
🤝 Adopt this term
£79/year · your link shown here
Added
15 Mar 2026
Edited
22 Mar 2026
Views
29
🤖 AI Guestbook educational data only
|
|
Last 30 days
Agents 0
No pings yet today
No pings yesterday
ChatGPT 10
Amazonbot 6
Perplexity 4
Google 4
Unknown AI 2
Ahrefs 1
Also referenced
How they use it
crawler 26
crawler_json 1
Related categories
⚡
DEV INTEL
Tools & Severity
🟡 Medium
⚙ Fix effort: Medium
⚡ Quick Fix
Distinguish debt types to prioritise correctly: reckless/inadvertent debt (bugs) fix immediately; reckless/deliberate (shortcuts) pay down next sprint; prudent/deliberate (ship first, improve later) schedule explicitly
📦 Applies To
any
web
cli
🔗 Prerequisites
🔍 Detection Hints
All technical debt treated equally regardless of origin; no explicit debt tracking or paydown schedule; architecture decisions made under time pressure with no follow-up
Auto-detectable:
✗ No
sonarqube
jira
⚠ Related Problems
🤖 AI Agent
Confidence: Low
False Positives: High
✗ Manual fix
Fix: High
Context: File