Structure and Interpretation of Computer Programmers

I make it easier and faster for you to write high-quality software.

Thursday, July 6, 2017

The worst phrase in software marketing

“Rewritten from the ground up”.

Please. Your old version mostly worked, except for those few corner cases that I’d learned how to work around. Now I don’t know whether the stuff that did work does work now, and I don’t know that I’ll find that stuff in the same place any more.

There’s a reason that old, crufty code in the core of your application was old and crufty. It is old because it works, well enough to pay the programmers who work on maintaining it and building the new things. It is crufty because the problem you’re trying to solve was not perfectly understood, is still not perfectly understood, and is evolving.

Your old, crufty code contains everything you’ve learned about your problem and your customers. And now you’re telling me that you’ve thrown it away.

posted by Graham at 08:39  


  1. Three companies I’ve worked for decided to “throw it all out and rewrite it” because of reasons. All were surprised that it took a lot longer to ship, and all have gone out of business.

    Comment by Mark Dalrymple — 2017-07-06 @ 14:56

  2. I’ve been involved in three major rewrites, sometimes enthusiastically, sometimes reluctantly (for the reasons given here). All were huge successes, and in each case the rewrite was warranted.

    Not trying to negate the advice, which is solid. Just saying that it’s complicated.

    Comment by Marcel Weiher — 2017-07-06 @ 19:02

RSS feed for comments on this post. TrackBack URI

Leave a comment

Powered by WordPress