Kent Beck's eXtreme Programming eXplained
provides an intriguing high-level overview of the author's Extreme Programming (XP) software development methodology. Written for IS managers, project leaders or programmers, this guide provides a glimpse at the principles behind XP and its potential advantages for small to mid-sized software development teams.
The book intends to describe what XP is, its guiding principles and how it works. Simply written, the book avoids case studies and concrete details in demonstrating the efficacy of XP. Instead, the author demonstrates how XP relies on simplicity, unit testing, programming in pairs, communal ownership of code and customer input on software for to motivate code improvement during the development process. As the author notes, these principles are not new, but when combined, their synergy fosters a new and arguably better way to build and maintain software. Throughout the book, the author presents and explains these principles, such as "rapid feedback" and "play to win," which form the basis of XP.
Generally speaking, XP changes the way programmers work. The book is good at delineating new roles for programmers and managers who Beck calls "coaches." The most striking characteristic of XP is that programmers work in pairs and that testing is an intrinsic part of the coding process. In a later section, the author even shows where XP works and where it doesn't, and offers suggestions for migrating teams and organizations over to the XP process.
In the afterword, the author recounts the experiences that led him to develop and refine XP, an insightful section that should inspire any organisation to adopt XP. This book serves as a useful introduction to the philosophy and practice of XP for the manager or programmer who want a potentially better way to build software. --Richard Dragan, Amazon.com
Topics covered: Extreme Programming (XP) software methodology, principles, XP team roles, facilities design, testing, refactoring, the XP software lifecycle, adopting XP.
From the Back Cover
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:
- Distinguishing between the decisions to be made by business interests and those to be made by project stakeholders.
- Writing unit tests before programming and keeping all of the tests running at all times.
- Integrating and testing the whole system--several times a day.
- Producing all software in pairs, two programmers at one screen.
- Starting projects with a simple design that constantly evolves to add needed flexibility and remove unneeded complexity.
- 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:
- 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.
- 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.
- Develop infrastructure and frameworks as you develop your application, not up-front--delivering business value is the heartbeat that drives XP projects.
- 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.