I can’t tell you how strongly I believe in Big Design Up Front, which the proponents of Extreme Programming consider anathema.
That would be fine if Joel was making a fair comparison. He’s not. He’s in the camp of detractors who view eXtreme Programming (XP) as “Code Like Hell and We’ll Figure Out What The Customer Wants Later” (CLHWFOWTCWL) which is certainly a less attractive acronym and idea. Reading through the rules and practices of XP, you’ll see that Joel was following most of the tenets of XP is his analysis and design. Good XP practitioners design up front, a sufficient design necessary to begin work and work up a series of user stories just as Joel describes, identifying the overall design and likely architecture of the work before the coding begins. This is just a cheap shot, and far below Joel’s usual outstanding efforts.
Joel’s “Big Design Up Front” is a 20-page PDF espousing some general design principles, coding and naming standards, a quick text-based mockup of the user interface and an overview flow diagram. This is the perfect starting point for an XP project, but completely misses the target of “Big.” Joel’s doing some aspects of XP, he just doesn’t know it.