I apply this methodology myself whenever I can and taught AVM for a couple of years and so can highly recommend such methodologies.
An interesting insight though is that it can be applied to any project. Its about building rapid learning into the project - in fact it all about knowledge management.
Extreme Programming (universally referred to as XP) is a methodology of programming which involves short cycle times working closely with the customer. In XP, the development team works in two week cycles, and works on implementing customer stories: stories being small enough pieces of functionality that can be implemented in a short space of time.
The theme underlying XP is "embrace change:" since we know user requirements will change, we make a virtue of it. XP uses the metaphor of driving to illustrate this: you don't drive from Los Angeles to New York by pointing the car in the direction of New York and then closing your eyes for the next 40 hours: you have to make small corrections along the way.