Preface How much would you pay for a software development team that would do what you want? Wait, don't answer yet--what if they could also tell you how much it would cost, so that you could decide what to do and what to defer, on your way to your deadline? You also get quality software, a robust array of tests that support the project through its entire lifecycle, and an up-to-date, clear view of project status. Best of all, you get the ability to change your mind about what you want, at any time.
There aren't any silver bullets in software development, and there probably never will be. However, Extreme Programming is a simple set of common-sense practices that, when used together, really can give you much of what you just read in the paragraph above. In this book, we tell you what the XP practices are, and how to install them in your project.
We have had the privilege of working on a great project, with a great teacher, Kent Beck. We helped shape the software process named Extreme Programming, XP for short. Since then, we have been helping everyone who will listen to learn from our experience.
The first book in the Extreme Programming series, Extreme Programming Explained , covers the reasoning behind the XP process. Based on our experience on the original XP project (and others), this book describes what makes XP work, day to day and month to month.
Successful software development is a team effort--not just the development team but the larger team consisting of customers, management, and developers. Extreme Programming is a simple process that brings these people together and helps them to succeed together. XP is aimed primarily at object-oriented projects using teams of a dozen or fewer programmers in one location. We would use XP for both in-house development and development of shrink-wrapped software. The principles of XP apply to any moderately sized project that needs to deliver quality software rapidly and flexibly.
About the Author
Ron Jeffries was the on-site XP coach for the original Extreme Programming project, a large financial system for a major automotive manufacturer. An independent consultant who has been involved in eXtreme Programming for over more than four years, he has presented numerous talks and published several papers on the topic. Ron has been a systems developer for more years than most of you have been alive, and his teams have built operating systems, compilers, relational database systems, and a wide range of applications. He has not, as yet, run out of new ways to make mistakes (and resolve them). Ron has recently joined forces with Object Mentor, Inc., to help more people improve their software process.
Ann Anderson is an independent consultant engaged full time in coaching XP and in teaching and using Smalltalk for financial applications development. Ann was a team member on the large payroll system that was the original proving ground for Extreme Programming. Throughout her career she has been involved in object-oriented projects spanning control systems, insurance, tax, and finance.
Chet Hendrickson is a systems architect at ThoughtWorks, Inc, where he makes sure that programmers and customers know and understand their rights. Previously, Chet was a senior software systems specialist at a major automobile manufacturer, where he worked on a large operational finance system that was the test bed for Extreme Programming. He was the winner of the Project Manager Game at OOPSLA'99 (although he thinks it might have been rigged).