Explains the core principles of Extreme Programming and details each step of the development cycle. Teaches readers how to work with an on-site customer, define requirements with user stories, estimate the time and cost of each story, and perform constant integration and frequent iterations.