rewrite the code from scratch ?
The quote is new to me, the concept is not.
The single worst strategic mistake that any software company can make: rewrite the code from scratch. (Joel Spolsky)
I’ve got mixed feelings about it. I agree that rewriting software from scratch is a painful process, so it’s good to see that affirmed. On the other hand, someones just given the thumbs down to the project that’s occupied the last 2 years of my life.
Still, the project is pretty much complete. Let’s hope we’re the exception to the rule.



September 7th, 2008 at 9:02 pm
Andy, I’m at exactly the same point. Our five year old application is showing its age and adding each new feature takes much longer than it should because it’s outgrown its original remit. We’re using ColdFusion and because it’s near impossible getting any CF staff these days we’re considering starting from scratch. So do we rewrite in PHP/Rails or do we continue building a skyscraper on wobbly foundations? The developer in me wants to rewrite but it’s a huge risk to start from a blank slate.
Sorry to hear that v5 hasn’t been warmly received. I’d ask why the powers that be took two years to offer this decision; why didn’t they review sooner?
I see you’re in Berlin for RailsConf. Have fun: I wish I was out there myself!
Barry
September 7th, 2008 at 11:39 pm
On V5: not really badly received, just hard to get to the point of launch, hard for the company to wait 2 years with almost no increase in functionality. And it’s the latter that Joel Spolsky was referring to. See my earlier post ‘When Agile goes Wrong’ for more background on why it hurt. It’s not actually about failures in Agile itself.
There was a recent post on the scrumdevelopment mailing list about this (entitled ‘Help with The Inevitable Question’). To cut to the chase, the guy was being asked to do a rewrite, actually to *cost* a rewrite upfront, whereas he wanted to take the agile/scrum approach. The replies agreed that costing a rewrite was not realistic, and some advised to do a bit-by-bit replacement.
I think we should have tried the latter, but I’ve been told this can also be painful for different reasons.
The thread is well worth a read anyway. Are you in an Scrum/Agile shop these days ? I can’t imagine doing software any other way now. And are you doing TDD ? If you’re not, now is the time to adopt.
Andy