''What's Extreme About ExtremeProgramming?'' * You know when you'll be done. * You know what you'll have when you're done. * You know the cost of implementing any proposed feature. * You know the value of any feature. * You can guide the project based on features' value vs cost. * You know, every day, how well the system works. * You know, every day, whether they built what you asked for. * You can change any requirement, any time, without excessive cost. * . . . ---- Extreme Programming is extreme in the sense that it takes its principles and practices to the point of absurdity- if code reviews are good, we'll review all the time; if testing is good, everybody will test all the time; if refactoring is good, we'll make it part of everybody's daily business; if architecture is important, everybody will work defining and refining the architecture all the time; if integration testing is important, then we'll integrate and test several times a day; if short iterations are good, we'll make the iterations really, really short- seconds and minutes and hours, not weeks and months and years. When I had to tell C3 how to behave, I had the mental image of all these practices that I knew worked well as knobs on a control board. I would turn all the knobs up to 10 and see what happened. I had nothing to lose- the project was a disaster already. --KentBeck (from EmbracingChange) ---- ''"But these knobs go to eleven" --ThisIsSpinalTap'' ----- "If you don't think it's extreme, you don't understand it." XP kills more sacred cows than anything else I've seen. Killed at least one of mine I didn't know I had. Most everyone has one, and XP probably kills it. When someone says, "We're sort of doing XP" it means they are just doing the parts they like and pretending its XP. --AlistairCockburn ---- A number of noted hackers (Gosling and Gabriel among them) have said, "Isn't that how everybody programs?" and seemed genuinely surprised to hear that the answer is "No". I have had several people thank me for saying out loud what was in their hearts- XP doesn't seem extreme to them. --KentBeck ----- I'm waiting to hear Gosling and Gabriel assert that they always wrote/write production code in pairs. I'll be astonished if they really write test cases before they code, and only code up to the test cases, and really have 100% test cases running in an automated regression test harness. I'll be astonished if they play the planning game or the same thing by any other name. I think they're just agreeing with the spirit of XP, not its details. --AlistairCockburn ''I'd also like to see evidence that Gosling, at least, will RefactorMercilessly. Exhibit A: the Java libraries.'' ----- ''Moved from EdgeOfChaos'' I like jeffgrigg63132's definition of XP Let's do good work 100% of the time. You may consider this "extreme." And we're inclined to say you're right. Stop making excuses. Do the right thing. All of the time. Yes, this is "extreme."