Synopses & Reviews
“In this second edition of Extreme Programming Explained, Kent Beck organizes and presents five years worth of experiences, growth, and change revolving around XP. If you are seriously interested in understanding how you and your team can start down the path of improvement with XP, you must read this book.”Francesco Cirillo, Chief Executive Officer, XPLabs S.R.L.
“The first edition of this book told us what XP wasit changed the way many of us think about software development. This second edition takes it farther and gives us a lot more of the ‘why of XP, the motivations and the principles behind the practices. This is great stuff. Armed with the ‘what and the ‘why, we can now all set out to confidently work on the ‘how: how to run our projects better, and how to get agile techniques adopted in our organizations.”Dave Thomas, The Pragmatic Programmers LLC
“This book is dynamite! It was revolutionary when it first appeared a few years ago, and this new edition is equally profound. For those who insist on cookbook checklists, theres an excellent chapter on ‘primary practices, but I urge you to begin by truly contemplating the meaning of the opening sentence in the first chapter of Kent Becks book: ‘XP is about social change. You should do whatever it takes to ensure that every IT professional and every IT managerall the way up to the CIOhas a copy of Extreme Programming Explained on his or her desk.” Ed Yourdon, author and consultant
“XP is a powerful set of concepts for simplifying the process of software design, development, and testing. It is about minimalism and incrementalism, which are especially useful principles when tackling complex problems that require a balance of creativity and discipline.” Michael A. Cusumano, Professor, MIT Sloan School of Management, and author of The Business of Software
“Extreme Programming Explained is the work of a talented and passionate craftsman. Kent Beck has brought together a compelling collection of ideas about programming and management that deserves your full attention. My only beef is that our profession has gotten to a point where such common-sense ideas are labeled ‘extreme....” Lou Mazzucchelli, Fellow, Cutter Business Technology Council
“If your organization is ready for a change in the way it develops software, theres the slow incremental approach, fixing things one by one, or the fast track, jumping feet first into Extreme Programming. Do not be frightened by the name, it is not that extreme at all. It is mostly good old recipes and common sense, nicely integrated together, getting rid of all the fat that has accumulated over the years.” Philippe Kruchten, UBC, Vancouver, British Columbia
“Sometimes revolutionaries get left behind as the movement they started takes on a life of its own. In this book, Kent Beck shows that he remains ahead of the curve, leading XP to its next level. Incorporating five years of feedback, this book takes a fresh look at what it takes to develop better software in less time and for less money. There are no silver bullets here, just a set of practical principles that, when used wisely, can lead to dramatic improvements in software development productivity.” Mary Poppendieck, author of Lean Software Development: An Agile Toolkit
“Kent Beck has revised his classic book based on five more years of applying and teaching XP. He shows how the path to XP is both easy and hard: It can be started with fewer practices, and yet it challenges teams to go farther than ever.” William Wake, independent consultant
“With new insights, wisdom from experience, and clearer explanations of the art of Extreme Programming, this edition of Becks classic will help many realize the dream of outstanding software development.”Joshua Kerievsky, author of Refactoring to Patterns and Founder, Industrial Logic, Inc.
“XP has changed the way our industry thinks about software development. Its brilliant simplicity, focused execution, and insistence on fact-based planning over speculation have set a new standard for software delivery.”David Trowbridge, Architect, Microsoft Corporation
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 teamXP 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 possiblebeyond what we can currently imagine. Extreme Programming Explained, Second Edition, offers ideas to fuel your improvement for years to come.
Synopsis
Software development projects can be fun, productive, and even daring. Yet they can consistently deliver value to a business and remain under control.
Extreme Programming (XP) was conceived and developed to address the specific needs of software development conducted by small teams in the face of vague and changing requirements. This new lightweight methodology challenges many conventional tenets, including the long-held assumption that the cost of changing a piece of software necessarily rises dramatically over the course of time. XP recognizes that projects have to work to achieve this reduction in cost and exploit the savings once they have been earned.
Fundamentals of XP include:
x Distinguishing between the decisions to be made by business interests and those to be made by project stakeholders.
x Writing unit tests before programming and keeping all of the tests running at all times.
x Integrating and testing the whole system-several times a day.
x Producing all software in pairs, two programmers at one screen.
x Starting projects with a simple design that constantly evolves to add needed flexibility and remove unneeded complexity.
x Putting a minimal system into production quickly and growing it in whatever directions prove most valuable.
Why is XP so controversial? Some sacred cows don't make the cut in XP:
x Don't force team members to specialize and become analysts, architects, programmers, testers, and integrators-every XP programmer participates in all of these critical activities every day.
x Don't conduct complete up-front analysis and design-an XP project starts with a quick analysis of the entire system, and XP programmers continue to make analysis and design decisions throughout development.
x Develop infrastructure and frameworks as you develop your application, not up-front-delivering business value is the heartbeat that drives XP projects.
x Don't write and maintain implementation documentation-communication in XP projects occurs face-to-face, or through efficient tests and carefully written code.
You may love XP or you may hate it, but Extreme Programming Explained will force you to take a fresh look at how you develop software.
Description
Software development projects can be fun, productive, and even daring. Yet they can consistently deliver value to a business and remain under control.
Extreme Programming (XP) was conceived and developed to address the specific needs of software development conducted by small teams in the face of vague and changing requirements. This new lightweight methodology challenges many conventional tenets, including the long-held assumption that the cost of changing a piece of software necessarily rises dramatically over the course of time. XP recognizes that projects have to work to achieve this reduction in cost and exploit the savings once they have been earned.
Fundamentals of XP include:
x Distinguishing between the decisions to be made by business interests and those to be made by project stakeholders.
x Writing unit tests before programming and keeping all of the tests running at all times.
x Integrating and testing the whole system-several times a day.
x Producing all software in pairs, two programmers at one screen.
x Starting projects with a simple design that constantly evolves to add needed flexibility and remove unneeded complexity.
x Putting a minimal system into production quickly and growing it in whatever directions prove most valuable.
Why is XP so controversial? Some sacred cows don't make the cut in XP:
x Don't force team members to specialize and become analysts, architects, programmers, testers, and integrators-every XP programmer participates in all of these critical activities every day.
x Don't conduct complete up-front analysis and design-an XP project starts with a quick analysis of the entire system, and XP programmers continue to make analysis and design decisions throughout development.
x Develop infrastructure and frameworks as you develop your application, not up-front-delivering business value is the heartbeat that drives XP projects.
x Don't write and maintain implementation documentation-communication in XP projects occurs face-to-face, or through efficient tests and carefully written code.
You may love XP or you may hate it, but Extreme Programming Explained will force you to take a fresh look at how you develop software.
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 womens studies. She has worked with Kent on the social aspects of Extreme Programming since its inception. She is also affiliated with Three Rivers Institute.
0
Table of Contents
Foreword to the Second Edition.
Foreword to the First Edition.
Preface.
1. What is XP?
I. EXPLORING XP.
2. Learning to Drive.
3. Values, Principles, and Practices.
4. Values.
Communication.
Simplicity.
Feedback.
Courage.
Respect.
Others.
5. Principles.
Humanity.
Economics.
Mutual Benefit.
Self-Similarity.
Improvement.
Diversity.
Reflection.
Flow.
Opportunity.
Redundancy.
Failure.
Quality.
Baby Steps.
Accepted Responsibility.
6. Practices.
7. Primary Practices.
Sit Together.
Whole Team.
Informative Workspace.
Energized Work.
Pair Programming.
Stories.
Weekly Cycle.
Quarterly Cycle.
Slack.
Ten-Minute Build.
Continuous Integration.
Test-First Programming.
Incremental Design.
8. Getting Started.
9. Corollary Practices.
Real Customer Involvement.
Incremental Deployment.
Team Continuity.
Shrinking Teams.
Root-Cause Analysis.
Shared Code.
Code and Tests.
Single Code Base.
Daily Deployment.
Negotiated Scope Contract.
Pay-Per-Use.
10. The Whole XP Team.
Testers.
Interaction Designers.
Architects.
Project Managers.
Product Managers.
Executives.
Technical Writers.
Users.
Programmers.
Human Resources.
Roles.
11. The Theory of Constraints.
12. Planning: Managing Scope.
13. Testing: Early, Often, and Automated.
14. Designing: The Value of Time.
Simplicity.
15. Scaling XP.
Number of People.
Investment.
Size of Organization.
Time.
Problem Complexity.
Solution Complexity.
Consequences of Failure.
16. Interview.
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.
21. Purity.
Certification and Accreditation.
22. Offshore Development.
23. The Timeless Way of Programming.
24. Community and XP.
25. Conclusion.
Annotated Bibliography.
Index.