Joel gets it this time

In the latest installment of Joel on Software, Joel talks about the importance of design in software projects.

In short, a small amount of up-front design work can result in massive savings down the line. If you don’t do that design work, not only do you wind up paying for it later, you wind up paying for it many many times over. Everybody I know has seen it happen, yet for some reason people still spout bullshit lines like “We don’t have time to do a spec.”

This is a lot better than some of Joel’s past rants, wherein he insists that it’s never better, faster, or cheaper to scrap a code base and start over than it is to refactor that codebase. I suspect Joel has never actually worked on truly horrible code. I’ve seen firsthand how, if you can manage to combat the Second System Effect, rewriting a horrible codebase can actually be faster, cheaper, and result in better software than trying to refactor it into something manageable.

Funny thing: The rewrite was one of those projects where the power of a detailed, written specification was supremely evident.