The software rewriting topic came back to me. I just came across the CADT Model, defined by Jamie Zawinsky.
(…) there is no incentive for people to do the parts of programming that aren’t fun. Fixing bugs isn’t fun; going through the bug list isn’t fun; but rewriting everything from scratch is fun (because “this time it will be done right”, ha ha) (…)
Joel Spolsky wrote in 2000:
Netscape 6.0 is finally going into its first public beta. There never was a version 5.0. The last major release, version 4.0, was released almost three years ago. Three years is an awfully long time in the Internet world. During this time, Netscape sat by, helplessly, as their market share plummeted.
It’s a bit smarmy of me to criticize them for waiting so long between releases. They didn’t do it on purpose, now, did they?
Well, yes. They did. They did it by making the single worst strategic mistake that any software company can make:
They decided to rewrite the code from scratch.
The software rewritals happen every now and then. Netscape (Mozilla), Wengophone, grono.net (a polish clone of Orkut), and even my own company’s small data entry program. They all were or are being rewritten. Netscape’s product finally re-emerged as Mozilla Firefox, while the original Netscape label and company have died. Wengophone 2.0 is still unstable and in my case unusable because of the very irritating sound clicks. Grono claims to be few weeks away from the next version public beta release of the new version, we’ll see. My company’s program was successfully released in April 2005 (4 months late), but it’s a small program, written by a single programmer (not me).
We’re programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We’re not excited by incremental renovation: tinkering, improving, planting flower beds.
I have the same feeling about the forum. I definitely don’t feel like expanding phpBB. It’s not exciting at all. Writing the whole thing from scratch, in Django, WOW, thats EXCITING! Nevermind reimplementing all the things that are implemented already.
If I’m really about to rewrite a forum, I need a good reason for that.