Hall of FameJoel Spolsky20006 min readintro
Things You Should Never Do, Part I
Summary
Joel Spolsky argues that rewriting a mature codebase from scratch is usually a strategic mistake, because it throws away bug fixes and delays shipping. Incremental refactoring of architecture, performance, or style issues is far safer.
- A full rewrite discards years of bug fixes and real‑world testing embedded in the existing code.
- Incremental refactoring can address architectural, performance, or style problems without losing working functionality.
- New code is not inherently better; proven old code already survived many edge cases.
- Large rewrites delay product releases and give competitors a market advantage.
Engineering leaders and developers should care because a rewrite can waste time, money, and market position while offering no guarantee of improvement.
5/10

