Anthony Williams, Bas Vodde, Bill Caputo, Bob Corrick, Brad Appleton, Chris Wheeler, Clarke Ching,
Daði Ingólfsson, Diana Larsen, Erik Petersen, George Dinwiddie, Ilja Preuß, Jason Yip, Jeff Olfert, Jeffery
Palermo, Jonathan Clarke, Keith Ray, Kevin Rutherford, Kim Gräsman, Lisa Crispin, Mark Waite,
Nicholas Evans, Philippe Antras, Randy Coulman, Robert Schmitt, Ron Jeffries, Shane Duan, Tim
Haughton, and Tony Byrne for their extensive comments. Special thanks to Brian Marick, Ken Pugh,
and Mark Streibeck for their comments on the completed draft.
James Shore
Every work builds on what came before. I was fortunate to have not just one, but many giants to stand
on. Without the inspired work of Kent Beck, Alistair Cockburn,Ward Cunningham, Tom DeMarco,
Martin Fowler, Ron Jeffries, Timothy Lister, Steve McConnell, and Gerald Weinberg, I wouldn’t have
anything close to the understanding of software development I have today. It’s thanks to their example
that this book exists. In particular, thanks to Alistair Cockburn for generously inviting me to his
roundtable and introducing me to the agile community.
If giants enabled me to contribute to this book, then Kim Eaves and the Denali team brought the
stepladder. Without their enthusiastic support, I never would have been able to try that crazy XP thing.
Thanks also to Rob Myers for his ever-friendly consideration of my rants.
I also gratefully acknowledge my coauthor and friend, Shane Warden. This project morphed from a
little 100-page second edition into a 400-page monster. You didn’t complain once. Thanks for putting
up with me. (And hey! Nice book.)
Finally, thank you, Neeru, my loving and patient wife. I used to think authors thanking their families
was cliché. Now I understand. I couldn’t have finished this book without your support.
Shane Warden
Thanks to Jim for arguing with me while writing the first version of this book (it’s better for it) and for
convincing me that the second edition was worth doing.
Thanks to Allison and Andrew for the tools we used to write this book.
Thanks to my family for supporting me (and not grumbling too much while I sat upstairs and wrote
very slowly), and to my friends for dragging me out of my house once in a while.
Thanks also to the other contributors to Parrot and Perl 6 for being unwitting collaborators, examples,
and victims of some of the ideas in this book. The work we do continually amazes me.
XVIII P RE FA CE