02-daily-development

Technical Debt

02-daily-development/technical-debt

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 typeAction
Minor local messLeave it until nearby work touches it
Repeated frictionSchedule cleanup
Incident-prone areaPrioritize 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.


Further Reading