Technical Debt
Overview
Technical debt is the cost of choosing a faster path today that makes future change harder.
Why It Matters
Some debt is strategic, but unmanaged debt eventually slows delivery and raises defect risk.
Core Concepts
- Debt can be intentional or accidental.
- The important question is whether the interest is growing.
- Not all debt is worth paying immediately.
Mental Models
Treat debt like a balance sheet item. Track it, prioritize it, and pay it when the cost is justified.
Best Practices
- Name the debt clearly.
- Record the risk and owner.
- Pay debt when it blocks repeated work or causes incidents.
Common Mistakes
- Calling every shortcut “temporary.”
- Ignoring debt because the app still works.
- Refactoring without a clear benefit.
Trade-offs
Paying debt too early can waste time. Waiting too long can make change expensive and risky.
Decision Framework
| Debt type | Action |
|---|---|
| Minor local mess | Leave it until nearby work touches it |
| Repeated friction | Schedule cleanup |
| Incident-prone area | Prioritize quickly |
Examples
- A duplicated auth check in three places is debt if it keeps causing drift.
- A fast workaround during an incident can be acceptable if it is tracked.
Checklists
- Is the debt causing repeated pain?
- Can I reduce it while touching the area?
- Is the risk documented?
Senior Engineer Notes
Senior engineers do not pretend debt does not exist. They keep it visible and pay it down where it creates the most leverage.