Essay · About a 5 minute read

Technical Debt Quadrant

Martin Fowler · martinfowler.com Free Beginner

This is the canonical framing for exactly your question: not all messy code is the same. Fowler splits debt on two axes, whether you took it on deliberately or by accident, and whether the call was prudent or reckless. For a two-person team shipping fast, the useful cell is deliberate and prudent: you know you cut a corner, you thought about the payoff, and you plan to come back. That is a healthy place to be, and this piece gives you the language to tell it apart from the reckless kind that actually hurts.

  • Debt taken on deliberately and prudently (a conscious shortcut with a payoff in mind) is fine, and often smart, when you are racing to ship.
  • The debt to fear is the reckless kind: messy code from not knowing better, or knowingly cutting corners you cannot afford. That is the interest that compounds.
  • Some debt is inadvertent and prudent, you only learn the right design after building it. That is unavoidable and not a failure, so do not beat yourselves up over it.

It answers 4 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. Should we ship an ugly, half-working version now or wait until it feels good enough to be proud of?
  3. 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?
  4. How do I evaluate the code quality of a build I inherited from an agency?

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. The CTO of India's largest broker explains how a tiny team scales huge load by optimizing the application before touching... Zerodha Tech Blog Article · 15 min read Scaling with common sense Kailash Nadh
  3. Long-form, candid interviews with Indian founders and investors on how they actually grew, distributed and built brand, one of... The Neon Show / Neon Fund Podcast · 200+ episodes The Neon Show (100x Entrepreneur Podcast) Siddhartha Ahluwalia
  4. 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
  5. 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
  6. This is the canonical explanation of what a reviewer actually means when they flag your inherited code as risky. Fowler frames... martinfowler.com Essay · About a 10 minute read Technical Debt Martin Fowler
eChai Partner Brands The partnership →