- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Unfortunately, many people distort what agile development is. They claim, for example, that it calls for "hacking" the product together without eliciting or documenting any product requirements up front. Yet even extreme programming calls for an up-front requirements effort.
To quickly gain an accurate understanding of what extreme programming is all about, I suggest having a look at this site. It succinctly describes the practices and philosophy of extreme programming.