When to Rewrite from Scratch – Autopsy of Failed Software
I no longer believe in rewrites.<p>I used to believe that every company gets one rewrite, but only because I have seen that most places have the patience and the stamina for a little bit less than a single rewrite, but I was on the fence about whether they were a good idea anyway.<p>Trouble is, I could never put my finger on why, other than that it never seemed to fix the problem.  It was a bit like moving to a new city to start over and finding out you brought all your problems with you.<p>In the last couple of years I have begin to figure out what I know in a way I can articulate.  The people who have the skills and discipline to take advantage of a rewrite <i>don&#x27;t need a rewrite</i>.  It&#x27;s a short distance from that skill set to being able to break the problem down and fix it piece by piece.  They just need permission to fix key bits, one bite at a time, and they&#x27;ve probably already insisted on the space to do it, although they may be clever enough never to have said it out loud.  They just do it.<p>Then you have the people who don&#x27;t have the skills and discipline to continuously improve their code.  What the rewrite buys them is a year of nobody yelling at them about how crappy the code is.  They have all the goodwill and the hopes of the organization riding on their magical rewrite.  They&#x27;ve reset the Animosity Clock and get a do-over.  However, as the time starts to run down, they will make all of the same mistakes because they couldn&#x27;t ever decompose big problems in the first place, and they lack the patience to stick with their course and not chicken out.  They go back to creating messes as they go, if they ever actually stopped to begin with. Some of them wouldn&#x27;t recognize the mess until after its done anyway.<p>In short, people who ask for a rewrite don&#x27;t deserve a rewrite, and would squander it if they did.  It&#x27;s a stall tactic and an expensive dream.  The ones who <i>can</i> handle a rewrite already are.  They never stopped rewriting.<p>Now, I&#x27;ve left out all of the problems that can come from the business side, and in many cases the blame lies squarely with them (and the pattern isn&#x27;t all that different).  In that case it might take the rewrite for everyone to see how inflexible, unreasonable and demanding the business side is, and so Garbage In, Garbage Out rules the day.  But the people with the self respect to not put up with it have moved on, or gotten jaded and bitter in the process.