If you have good unit tests and a simple design, and if you've been working with other programmers, then adding features when you need them isn't nearly as expensive as you would think. We've seen some of these principles applied to high-quality open source projects. Freed from traditional constraints like market pressure and ever-changing business demands, coders can explore various approaches, picking the best available solution. With the short feedback loop between developers and users, and a culture that encourages savvy users to add features and fix bugs, a project can evolve in new directions very quickly. Not everyone thinks XP is the best approach Software produced this way also has its detractors.
Commercial developers see it as a competitive threat.
Users burned by low-quality freeware and shareware see it as a toy. Experienced managers look at the morass of e-mail folders, IRC logs, and CVS commits, wondering how anything ever gets done. But when you get right down to it, XP goes against conventional wisdom. I don't want someone looking over my shoulder and slowing me down, and I don't need somebody pointing out bugs. Customers can't be trusted to know what they want.