Much has been written about “The Big Rewrite”. That’s fitting, given the complexity of the issue. At the end of this post, you’ll find references to my favorite pieces by people like Joel Spolsky , Chad Fowler and others. If you are even considering rewriting a production system of any size, you owe it to yourself to read everything above.
It’s all for the user
So you find yourself on a project that feels messy and cluttered and you think it could benefit from a rewrite. The first question you should ask is, why?
- Joel Spolsky’s, Things You Should Never Do, Part 1, April 2000
- Chad Fowler’s, The Big Rewrite Series, Dec 2006
- Software as Spec
- Invention or Implementation
- The Wish List
- The Big Bang
- Justifications and Lies
- Who’s Tending the Store
- Dan Milstein’s, How to Survive a Ground-Up Rewrite Without Losing Your Sanity, April 2013 These authors do a great job of capturing the challenges and the experience of the big rewrite. One thing that’s clear is:
The Rewrite is Harder than the Initial Write
So how do you decide what to do?
The Road is Long, Be Passionate
Parting thoughts, like Joel said:
It’s harder to read code than to write it.
Because of that, the big rewrite can be tempting.
Obviously, it’s a complicated issue with many factors, but whether you go through with it or not, probably comes down to whether you are an incrementalist or a completionist. In other words, are you passionate about getting the next step done and deployed and getting feedback, or do you want to do something the “right way”, no matter what the cost. If you are in the situation where you are considering a rewrite, then you likely have a long road ahead either way and doing what you are passionate about is a considerable factor.