Joel Spolsky says:
As I worked through the screens that would be needed to allow either party to initiate the process, I realized that Aardvark would be just as useful, and radically simpler, if the helper was required to start the whole process. Making this change in the spec took an hour or two. If we had made this change in code, it would have added weeks to the schedule. I can’t tell you how strongly I believe in Big Design Up Front, which the proponents of Extreme Programming consider anathema. I have consistently saved time and made better products by using BDUF and I’m proud to use it, no matter what the XP fanatics claim. They’re just wrong on this point and I can’t be any clearer than that.
Well - I have to admit - as with exceptions, when Joel misses the point, he doesn't miss by a little. Look at his assertion - "If we had to make the change in code..."
Well. This assumes two things:
- You got the spec right before you got started, because - according to Joel - once you start, it's just too hard to change the code
- You won't get into analysis paralysis due to fears about (1)
BDUF assumes that the spec can be made perfect, after which the coding will just be automatic. Well - if that's the case, why does he care about getting "the best" developers? Clearly, they have very little work to do in the bizarro universe where Joel lives - after design, they just code to the spec.
The reality is, specs are never complete - new requirements always arrive, and the first cut of a spec can't possibly catch them all. The whole point of agile is to accept this reality and move on. Joel wants to pretend otherwise, which makes him... foolish.
I suspect that Joel's developers have gotten into the habit of nodding their heads politely at Joel, and then rolling their eyes as he turns around. He's gone past the technical world into the "used to be technical and think I still am" project manager role. People like that are a real pain to work for, because you end up having to put up a false front - "sure, we'll do it just like you say, Joel" - followed by doing it the right way. Joel is a good product marketer - that's where he ought to spend his time. The technical side? He needs to stop making it obvious that he has no clue what he's talking about.