OK, so basically the group starts with a very small and restricted program, puts it out to see how people want to use it and then makes additions as the market calls for them? I know a building modified that way. It's not very unified. It's nice that all the programmers are involved in all aspects of the architecture tho. Marilyn
The key to XP is that it is not just any one of the key ingredients (unit testing, pair-programming, refactoring, planning game and so on.) or even any subset. XP is a combination of all these practices, and the evangelists claim that the result is greater than the sum of the parts. In the example you give about the building, the stage which was missed was that of refactoring. If, before and after every alteration to the building, it had somehow been reorganized into its "best" form for its purposes, it would be a quite different building. Refactoring is hard to do in non-software projects, which is why "Big Design Up Front" engineering has evolved as the dominant form. Software is not like that, though. It's infinitaly changeable, at any time, so a mature software development process should be very different from a development process for physical things.