Accountability. Transparency. Responsibility. These are not words that are often applied to software development.
In this completely revised introduction to Extreme Programming (XP), Kent Beck describes how to improve your software development by integrating these highly desirable concepts into your daily development process.
The first edition of Extreme Programming Explained is a classic. It won awards for its then-radical ideas for improving small-team development, such as having developers write automated tests for their own code and having the whole team plan weekly. Much has changed in five years. This completely rewritten second edition expands the scope of XP to teams of any size by suggesting a program of continuous improvement based on:
- Five core values consistent with excellence in software development
- Eleven principles for putting those values into action
- Thirteen primary and eleven corollary practices to help you push development past its current business and technical limitations
Whether you have a small team that is already closely aligned with your customers or a large team in a gigantic or multinational organization, you will find in these pages a wealth of ideas to challenge, inspire, and encourage you and your team members to substantially improve your software development.
You will discover how to:
- Involve the whole team–XP style
- Increase technical collaboration through pair programming and continuous integration
- Reduce defects through developer testing
- Align business and technical decisions through weekly and quarterly planning
- Improve teamwork by setting up an informative, shared workspace
You will also find many other concrete ideas for improvement, all based on a philosophy that emphasizes simultaneously increasing the humanity and effectiveness of software development.
Every team can improve. Every team can begin improving today. Improvement is possible–beyond what we can currently imagine. Extreme Programming Explained, Second Edition, offers ideas to fuel your improvement for years to come.
Related collections and offers
About the Author
Kent Beck consistently challenges software engineering dogma, promoting ideas like patterns, test-driven development, and Extreme Programming. Currently affiliated with Three Rivers Institute and Agitar Software, he is the author of many Addison-Wesley titles.
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 Contents
- I. EXPLORING XP.
- 2. Learning to Drive.
- 3. Values, Principles, and Practices.
- 4. Values.
- 5. Principles.
- 6. Practices.
- 7. Primary Practices.
- 8. Getting Started.
- 9. Corollary Practices.
- 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.
- 16. Interview.
- 17. Creation Story.
- 18. Taylorism and Software.
- 19. Toyota Production System.
- 20. Applying XP.
- 21. Purity
- 22. Offshore Development.
- 23. The Timeless Way of Programming.
- 24. Community and XP.
- 25. Conclusion.
- Annotated Bibliography.
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.