Joel Spolsky needs no particular introduction. He’s effectively “the” blogger on software development and definitely one of my inspirations for doing the Shade Tree Developer. He’s also occasionally full of crap, especially when he’s making uninformed pronouncements on the effectiveness of agile processes (the apallingly ignorant “BDUF is good*” post comes to mind) or the superiority of shrink-wrapped developers over anybody else. The amusing post in the office today is http://www.joelonsoftware.com/articles/SetYourPriorities.html where Joel describes their release planning activities. Their process sounds fine to me, and it should, because it’s pretty close to how we do release planning in our Scrum process. The implication that they have a separate testing phase at the end of coding (waterfall testing is even dumber than waterfall coding) is a little scary though.
* Like many others, my criticism isn’t with most of his contentions in that post. If he thinks his high level requirements document helped him then it did, but that’s not BDUF by any means. My criticism is that he clearly misunderstands the meaning of the term BDUF (Big Design Upfront). All Joel describes with his spec is the equivalent of an Agile story backlog. BDUF is the stereotypical “let’s create tons of detailed UML diagrams before any coding is allowed because coding is hard and we can make perfect UML.” We thought that our user stories were easily as detailed as his spec, and that’s really not saying much. Jon Tirsen had a good take on the blogstorm over Joel’s BDUF post a couple months back.
There’s also the issue that BDUF is mostly a straw man argument against people doing really stupid versions of a waterfall. Almost nobody does a pure waterfall. Arguably one of the biggest problems with a waterfall is that your reality doesn’t really match up with what the waterfall schedule says you’re doing.