Things You Should Never Do, Part I
Joel Spolsky’s article Things You Should Never Do argues that rewriting software from scratch is the single worst strategic mistake a company can make.
Why Rewrites Fail
Knowledge Loss: Old code contains years of accumulated bug fixes. Each fix took weeks of real-world usage to discover. Rewriting discards this invaluable history.
Competitive Disadvantage: You gift competitors two or three years of development time while you rebuild what you already had.
False Perception: Programmers think existing code is messy because “it’s harder to read code than to write it.” This perception doesn’t reflect actual quality.
The Netscape Catastrophe
Spolsky illustrates this with Netscape’s fatal decision to rewrite their browser from scratch. They went dark for three years while Microsoft caught up and overtook them. The company never recovered.
What to Do Instead
- Refactor incrementally
- Fix cosmetic issues without throwing away working code
- Recognize that “messy” code often contains essential fixes and edge cases
My Takeaway
This is perhaps the most important article for any founder to read. The temptation to “do it right this time” is seductive but deadly. Successful companies iterate; failed ones rewrite.
Have you survived (or not survived) a rewrite? I’d love to hear at persdre@gmail.com.