About the Author
Cynthia Andres holds a B.S. in psychology with advanced work in organizational behavior, decision analysis, and women’s studies. She has worked with Kent on the social aspects of Extreme Programming since its inception. She is also affiliated with Three Rivers Institute.
Table of ContentsForeword to the Second Edition.
Foreword to the First Edition.
1. What is XP?
I. EXPLORING XP.
2. Learning to Drive.
3. Values, Principles, and Practices.
7. Primary Practices.
8. Getting Started.
9. Corollary Practices.
Real Customer Involvement.
Code and Tests.
Single Code Base.
Negotiated Scope Contract.
10. The Whole XP Team.
11. The Theory of Constraints.
12. Planning: Managing Scope.
13. Testing: Early, Often, and Automated.
14. Designing: The Value of Time.
15. Scaling XP.
Number of People.
Size of Organization.
Consequences of Failure.
II. PHILOSOPHY OF XP.
17. Creation Story.
18. Taylorism and Software.
19. Toyota Production System.
20. Applying XP.
Choosing a Coach.
When You Shouldn't Use XP.
Certification and Accreditation.
22. Offshore Development.
23. The Timeless Way of Programming.
24. Community and XP.
The goal of Extreme Programming (XP) is outstanding software development. Software can be developed at lower cost, with fewer defects, with higher productivity, and with much higher return on investment. The same teams that are struggling today can achieve these results by careful attention to and refinement of how they work, by pushing ordinary development practices to the extreme.
There are better ways and worse ways to develop software. Good teams are more alike than they are different. No matter how good or bad your team you can always improve. I intend this book as a resource for you as you try to improve.
This book is my personal take on what it is that good software development teams have in common. I’ve taken things I’ve done that have worked well and things I’ve seen done that worked well and distilled them to what I think is their purest, most “extreme” form. What I’m most struck with in this process is the limitations of my own imagination in this effort. Practices that seemed impossibly extreme five years ago, when the first edition of this book was published, are now common. Five years from now the practices in this book will probably seem conservative.
If I only talked about what good teams do I would be missing the point. There are legitimate differences between outstanding teams’ actions based on the context in which they work. Looking below the surface, where their activities become ripples in the river hinting at shapes below, there is an intellectual and intuitive substrate to software development excellence that I have also tried to distill and document.
Critics of the first edition have complained that it tries to force them to program in a certain way. Aside from the absurdity of me being able to control anyone else’s behavior, I’m embarrassed to say that was my intention. Relinquishing the illusion of control of other people’s behavior and acknowledging each individual’s responsibility for his or her own choices, in this edition I have tried to rephrase my message in a positive, inclusive way. I present proven practices you can add to your bag of tricks.
- No matter the circumstance you can always improve.
- You can always start improving with yourself.
- You can always start improving today.