Essay · About a 10 minute read

Technical Debt

Martin Fowler · martinfowler.com Free Intermediate

This is the canonical explanation of what a reviewer actually means when they flag your inherited code as risky. Fowler frames messy code as debt you pay interest on: every future feature gets slower, which is the real cost you inherit from a rushed agency build. Read it to understand why a reviewer separates crufty-but-stable code (leave it) from cruft in code you touch often (fix it), so you can read a review report with judgment instead of panic.

  • Technical debt is not about ugly code, it is about the extra time every future change costs you.
  • A reviewer prioritizes cruft in frequently changed areas, and often leaves stable messy code alone.
  • The deliberate versus reckless, prudent versus inadvertent quadrant helps you judge how worried to actually be.

It answers 3 questions

  1. We ship fast but our codebase is turning into a mess. How much should a two-person startup care about tech debt?
  2. When is the right moment to stop iterating on the MVP and rebuild it properly, and how do I avoid the second-system rewrite trap?
  3. When my technical hire and I disagree on the tech stack, whose call is it?

Read with it

  1. The permission slip to recruit users by hand, do things manually, and deliver 'insanely great' experiences to your first few... paulgraham.com Essay · ~15 min read Do Things That Don't Scale Paul Graham
  2. Michael Seibel, who ran YC, makes the blunt case for shipping something almost embarrassingly simple and learning from real... Y Combinator Startup Library Video · ~10 min video How to Build an MVP Michael Seibel
  3. This is the canonical warning against throwing away working code and rebuilding from scratch, told through Netscape's rewrite... Joel on Software Essay · ~10 min read Things You Should Never Do, Part I Joel Spolsky
  4. When you and your technical hire are arguing about the stack, this essay reframes the whole fight: the goal is not the best or... mcfunley.com Essay · ~20 min read Choose Boring Technology Dan McKinley
  5. This is the canonical framing for exactly your question: not all messy code is the same. Fowler splits debt on two axes,... martinfowler.com Essay · About a 5 minute read Technical Debt Quadrant Martin Fowler
  6. Video · 5 min Debt Metaphor Ward Cunningham
eChai Partner Brands The partnership →