Is Rewriting a Successful Software Product a Good Idea
Jason Fried of Basecamp made a tremendous announcement. After years of handling online collaboration for more than eight million projects, they are going to throw out their code base and rewrite it. Why would you do this with a very successful product?!
Apparently, he has his reasons. Jason cites the vastly different technological landscape since their launch of Basecamp. In this new landscape, there are things he and his team wish to do that can’t be accomplished by incremental improvements. They need a wholesale rewrite to reach their goals.
But there is another successful, independent software maker who disagrees, Joel Spolsky. Here’s what Joel says,
The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they’ve been fixed. There’s nothing wrong with it. It doesn’t acquire bugs just by sitting around on your hard drive.
There’s a lot of truth to what Joel is saying. It’s undeniable that ugly code can still work. If it works today, then why rewrite?
For me, I’m guessing that a rewrite can be successful if the strategy behind it is solid. Apple has made it cool to obsolete your own products with completely new ones. Does this mean that everyone can do it and succeed? Who is right, Joel or Jason?
I don’t know. But at least I’ll get to watch Basecamp’s rebirth and see whether they go up in flames or rise up like a phoenix.