|Syntactic Confectionery Delight|
I've seen a couple of mentions of XP in this thread and, while I haven't looked into too deeply, I'm not sure of its utility for certain projects.
XP stands here for eXtreme Programming, not eXperience points. :)
I am no specialist of extreme programming. I have hardly started to read extreme programming explained on safari (they got non O'Reilly books now). XP seems to me another name for Larry's whirlpool. Instead of the waterfall model where stages are sequential, the whirlpool model retrofit in the specifications the experience of "later stages".
The problem with the whirlpool (alias XP) is that it asks every involved person to closely follow the project in every aspects which is probably incompatible with a marked hierarchy or a customer who don't want to be involved in every stages of program development: "He, we outsource that chore because we dont want do bother with it. Come back when you are done."
Probably the whirpool model works best in Open Source Project (like parrot). Flexible languages like perl encourage very fast iterations so it is no surprising that Larry came first with the whirlpool metaphor (without the hype of exterme programming).
To answer you concern: the emphasis on early tests is to get early feeback. It permits to "enforce" the specification -- like I said in the previous node -- or to update it. I don't think the whirlpool model encourages to supress specification. Each iteration involves each of the stages that follow each other in the waterfall model.