What is technical debt and how does Agile handle it?

Answer

Technical debt is the implied cost of future rework arising from choosing a quick/easy solution now instead of the better but slower approach. Ward Cunningham coined the metaphor: like financial debt, small amounts are manageable and sometimes strategic; uncontrolled debt accumulates interest (slower development, more bugs) until it becomes crippling. Types: intentional (deliberate shortcuts to meet a deadline), unintentional (code written without knowledge of best practices), and bit rot (code that worked but degraded as the system evolved). Agile handles technical debt through: (1) Technical backlog items — add debt paydown items to the Product Backlog and prioritize them alongside features; (2) Definition of Done — a strong DoD prevents new debt accumulation; (3) Regular refactoring — Agile principles emphasize continuous attention to technical excellence; (4) Sprint capacity — reserve 10–20% of Sprint capacity for tech debt; (5) Hardening Sprints (controversial) — some teams dedicate full Sprints to tech debt paydown.