Types of debt
- Deliberate — a conscious decision: "deadline, we'll rewrite after the release". Fine if you actually rewrite it
- Inadvertent — the result of insufficient knowledge or experience at the time of writing
- Bit rot — accumulates gradually: every "patch rather than fix" adds to the debt
Consequences
Every new feature in an indebted codebase costs more: harder refactoring, more bugs, slower onboarding. At the extreme, debt makes a project practically unmaintainable.
Management
Allocate regular time for debt repayment (10–20% of a sprint). Document known debt as tasks, not as // TODO: fix later comments.