π° Technical Debt Management β
Tracking, prioritizing, and paying down technical debt.
What is technical debt? β
Shortcuts, workarounds, and deferred improvements that make future changes harder. Like financial debt, it accumulates interest over time.
Types of tech debt β
| Type | Example | Origin |
|---|---|---|
| Deliberate | "We'll skip tests to hit the deadline" | Time pressure |
| Accidental | Poor design discovered later | Lack of knowledge |
| Bit rot | Dependencies outdated, patterns obsolete | Time passing |
| Environmental | Framework deprecated, language version old | Ecosystem changes |
Impact of unmanaged debt β
- Slower feature development
- More bugs and regressions
- Harder onboarding for new developers
- Developer frustration and turnover
- Increased incident rate
Tracking tech debt β
Create tickets with:
- Description: What's the problem?
- Impact: How does it slow us down?
- Cost to fix: Rough estimate
- Cost of not fixing: What happens if we ignore it?
- Priority: Critical / High / Medium / Low
Paying it down β
- Allocate 15-20% of sprint capacity to tech debt
- Fix debt adjacent to current work β don't refactor unrelated code
- Tackle high-impact, low-effort items first
- Include tech debt fixes in feature PRs when they overlap
- Never rewrite from scratch unless absolutely necessary
Prevention β
- Code reviews that flag shortcuts
- Definition of Done includes quality standards
- Automated linting and formatting
- Dependency update automation (Renovate/Dependabot)
- Regular architecture reviews