::scr Development Sins
simon wistow
scr@thegestalt.org
Wed, 5 Dec 2001 16:45:54 +0000
In a recent interview Joel Spolsky (for blurb and prerequisite memes
read http://joel.editthispage.com/) says
<quote>
SMS: Joel, what, in your opinion, is the single greatest development
sin a software company can commit?
Joel: Deciding to completely rewrite your product from scratch, on the
theory that all your code is messy and bug prone and is bloated and
needs to be completely rethought and rebuild from ground zero.
SMS: Uh, what's wrong with that?
Joel: Because it's almost never true. It's not like code rusts if it's
not used. 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.
SMS: Well, why do programmers constantly go charging into management's
offices claiming the existing code base is junk and has to be replaced?
</quote>
Which is shattering my most preciously held belief - Brooks' "Always
plan to through the first two away" (which lets me put off stuff I
don't want to do now until 2 versions' time)
It feels wrong but he makes some compelling arguments ...
"Way back in April 2000, I wrote on my web site that Netscape made the
"single worst strategic mistake that any software company can make" by
deciding to rewrite their code from scratch. Lou Montulli, one of the 5
programming superstars who did the original version of Navigator,
E-mailed me to say, "I agree completely, it's one of the major reasons I
resigned from Netscape." This one decision cost Netscape four years and
they're not really done yet. That's three years they spent with their
prize aircraft carrier in 200,000 pieces in dry-dock. They couldn't add
new features, couldn't respond to the competitive threads from IE, and
had to sit on their hands while Microsoft completely ate their lunch."
The thing is I hate how code accumulates cruft - stuff you've grafted on
to add new functionality, those little hacks and features crowbarred in
that don't really fit in with the architecture.
I feel the same with websites sometimes - little microsites that don't
quite fit in or have been jammed into the main site or stuff that should
be collected into its own subdirectory but you can't because then anyone
linking to your site will get a 404 unless you write redirects for every
page (or class of page or whatever).
...
rambling again
...
AAAARGH, THESE MIDLETS ARE ROTTING MY BRAIN.