For any organization or team considering adopting the Extreme Programming (XP) software methodology, Extreme Programming in Practice
provides a downright fascinating glimpse of XP in action for a small real-world project. Short and to the point, yet filled with plenty of real details, this book can show you what works and what doesn't when it comes to using one of today's hottest approaches to successful programming.
Like today's reality TV shows, this title walks you through a real software project in real time. After introducing the reader to the basics of the XP software method (using such shibboleths as paired programming, lightweight documentation, continual refactoring, and the like), the book jumps right in with an actual project built with Java servlets and JDBC. First, the authors disclose their software design for retooling a Web site with login and security features. The scope of this project is necessarily really small, but the win is that the authors go into real detail as to how it is designed and implemented. (While most titles on software engineering hedge on the details, this book gives you the inside scoop on actual design decisions and even problems encountered along the way.)
The authors cover the design process where customer "stories" are partitioned off into deliverables (small ones are called "iterations," which are combined into larger "releases"). The authors give you sample project estimation for how long it will take for each step. They provide the details of the code that does the work for each step, along with sample automated tests. (In XP, code is not "accepted" by clients until it can be verified with tests.) The authors also show off how their initial estimates sometimes went wrong. (Most readers will be struck that almost in all cases, initial estimates for programming time are overestimated by the authors.) However, they do share a significant snag in the process of a typical miscommunication with their client about promised functionality, which is sure to resonate with many readers. By the end of the book, they share their final thoughts on what works and what doesn't in XP, along with some advice for "scaling" XP onto larger projects and teams.
Candid, concise, (and a very interesting read), Extreme Programming in Practice gives valuable insight into today's XP. Whether or not you are evaluating XP for your shop or just want to see what all the fuss is about, this text provides an excellent glimpse into the advantages of XP for creating robust software within budget and on time. --Richard Dragan
- Quick overview of Extreme Programming (XP)
- The XP process: planning, iterations, and releases
- Developing "stories" with stakeholders
- Case study for a Web application (including logon and security features)
- Prioritizing stories and features
- Team velocity defined
- Iterations and tasks (staffing and planning)
- Writing tests (including using proxies to simulate database activity)
- XP and refactoring
- "Working backwards"
- Infrastructure versus code that works right now
- Communication between customers and developers
- Scaling small projects with XP to larger projects
- Sample stories, code, tests, and project-planning documents
- Hints for successful adoption of XP in real projects
From the Inside Flap
This book is a case study describing a Web-based software project developed using a development process known as Extreme Programming (XP). The project is real, driven by the needs of a real customer. The artifacts presented in this book are real. The code is real, the user stories are real, and the anecdotes are real. We videotaped all our meetings and development episodes so that we maintained an honest and objective chronicle of the events. We wanted our readers to have as true-to-life an experience as possible. At first we thought we might have to keep the scope of the project artificially small enough to fit into this book. However, it turned out that the size of the first XP release of the project was both useful to our customer and the ideal size for this book. So even the size of the release is real. Before this project, none of us had used XP in its entirety. So this book also chronicles the adoption of XP by a team that is relatively unfamiliar with it. Our goal in writing this book is to help demonstrate how a real XP project works. We have chosen to do this by example, rather than by explanation. The examples are real. They chronicle the thought processes of the team as it struggles with the concepts of XP. You will see us make mistakes and then correct them. You will see us have insights and then find them to be invalid. You will see the ebb and flow of a real development project. This book is written for developers, managers, customers, and anyone else involved in the development of software. We welcome any feedback and can be reached at the following e-mail addresses:
James Newkirkjnewkirk@thoughtworks Robert C. Martinrmartin@objectmentor