Things You Should Never Do (2000)
joelonsoftware.com
Things You Should Never Do (2000)
1–10 of 85 posts
Re: Things You Should Never Do (2000)
#2Re: Things You Should Never Do (2000)
#3Sometimes the language is so old it's cripplingly expensive to hire programmers in. Sometimes the code is deeply tied to a hardware architecture that is extinct. Sometimes the legacy code actually is that bad.
For reference, I've done total rewrites on two different small-ish software projects - in both cases because the original author had made design choices that made the whole thing unsustainable in the long run (no blame implied, it's more about shifting goals).
For reference, Twitter has done a total rewrite of their large codebase, and lived to tell the tale.
Re: Things You Should Never Do (2000)
#4Re: Things You Should Never Do (2000)
#5With the benefit of twenty years of hindsight, I think the programmers who performed the rewrite in question did a better job than the original Netscape implementation.
Come to think of it, I'm typing this message on the direct descendent of that rewrite, while the competitor to whom they gave « a gift of two or three years » has been forced to abandon their codebase in favour of a third-party one.
Re: Things You Should Never Do (2000)
#6Re: Things You Should Never Do (2000)
#7I think saying "you should never rewrite code from scratch" is a bit too dogmatic. There's a cost and risk tradeoff. I think people underestimate the cost of a rewrite (Due to ego or NIH or yak shaving), but I don't think it's never the answer. Sometimes the language is so old it's cripplingly expensive to hire programmers in. Sometimes the code is deeply tied to a hardware architecture that is extinct. Sometimes the…
Re: Things You Should Never Do (2000)
#8https://medium.com/@herbcaudill/lessons-from-6-software-rewr...
And this DHH talk (transcript) https://businessofsoftware.org/2015/10/david-heinemeier-hans...
Re: Things You Should Never Do (2000)
#9If anything, what should be warned against is big bangs. Netscape's problem isn't that they did a rewrite (which eventually became Firefox, mind you) it's that they essentially abandoned their old code too early, and similarly, they also announced the rewrite too soon.
If you're going to do a rewrite, do it quietly, and don't announce it until it's close to ready, and even then you can roll out slowly. For example, the infamous Digg v4 debacle is another example, but the problem isn't that they did a rewrite, it's that they did a rewrite to produce a product nobody wanted, and they burned any possibility of going back after they released it.
Re: Things You Should Never Do (2000)
#10I think saying "you should never rewrite code from scratch" is a bit too dogmatic. There's a cost and risk tradeoff. I think people underestimate the cost of a rewrite (Due to ego or NIH or yak shaving), but I don't think it's never the answer. Sometimes the language is so old it's cripplingly expensive to hire programmers in. Sometimes the code is deeply tied to a hardware architecture that is extinct. Sometimes the…