One of ExtremeProgramming's leading blogger advocates gets much less credit than he deserves for promoting each of XP's values and practices.
[I haven't found Spolsky's articles particularly pro-XP. And since this page is called "Spolsky on XP" and not "Spolsky for" or "against XP", I suggest it's rather disingenious to try to suggest he's supporting XP. So, while it's perfectly OK to give both pro and con quotes, let this page be more about debating whether he's either. DeleteWhenCooked that's the point he openly hates XP, while espousing its practices anyway. Please don't ruin the joke!]
Pro-XP remarks
- RefactorMercilessly "There's a subtle reason that programmers always want to throw away the code and start over. The reason is that they think the old code is a mess. And here is the interesting observation: they are probably wrong. The reason that they think the old code is a mess is because of a cardinal, fundamental law of programming: It's harder to read code than to write it. This is why code reuse is so hard. This is why everybody on your team has a different function they like to use for splitting strings into arrays of strings. They write their own function because it's easier and more fun than figuring out how the old function works."
- CommonWorkspace "The bizarre thing she claims, which could be true, is that open-space-dwellers actually get voluntarily interrupted less because people can quickly see whether they're interruptible or not."
- OnsiteCustomer "...and you make them sign the spec in indelible ink, nay, blood, and they do, and then you build that thing they signed off on, promptly, precisely and exactly, and they see it and they are horrified and shocked, and you spend the rest of the week reading up on whether your E&O insurance is going to cover the legal fees for the lawsuit you've gotten yourself into..."
- BusinessValueFirst "... So if you want to get things done, you positively have to understand at any given point in time what is the most important thing to get done right now and if you're not doing it, you're not making progress at the fastest possible rate ... don't do unimportant-slash-fun features first because 'you're going to have to do them eventually anyway.'"
- DesignSmell "... You start to smell subtle hints of uncleanliness beneath the surface and they bug you enough to reach out and fix the code"
Remarks against XP
Anything?
Neutral remarks
- In "Five Worlds" Spolsky expressed doubt at Kent Beck's claim that ExtremeProgramming development (in particular PairProgramming and TestDrivenDevelopment) can prevent software bugs almost completely. He follows with examining the bug database at his own company and concluding that very few of the entries would have appeared under XP. First, some of them were features, due to their liberal use of their bug tracking software for tracking ideas as well. Second, of the entries that were bugs, some appeared only under specific use conditions that would most likely not occur to any developer to test for. Third, in specific development environments some of the bugs would be dismissed altogether, since the conditions they occur in would not be considered relevant. And it is these environments that XP is most likely to be used in, which means Kent Beck is right, but only in particular circumstances, which makes Joel end with these cautionary words: "When somebody tells you about methodology, think about how it applies to the work you're doing."
- "Priority list in hand, we set out to more or less work down the list in order until about March, when we plan to stop adding new features and start the integration and testing phase. We'll write specs for each (nonobvious) feature right before implementing that feature. (The nattering scorekeepers of the BDUF/Agile beauty contest are now thoroughly confused. 'Was that a vote for BDUF? Or Agile? What does he want? Can't he just take sides for once?!')"