Software that performs required tasks and meets expectations
Accurate estimation of time to completion and cost of development
The opportunity to decide which features to include and which to defer
Frequent small releases that incorporate continual customer feedback
Constant integration and automated testing that insures clean code and robust performance
These are some of the many benefits of Extreme Programming (XP), a software development approach especially geared for smaller teams facing vague or rapidly changing requirements. Despite the "extreme" in its name, XP actually reduces risks--the risk of putting out software that is faulty, out of date at its release, over budget, or not fully capable of performing the tasks for which it was intended. Initially considered radical, XP has proven itself successful and is entering the mainstream of software development. The greatest challenge now facing software development managers and engineers is how to implement this beneficial approach.
Extreme Programming Installed explains the core principles of Extreme Programming and details each step in the XP development cycle. This book conveys the essence of the XP approach--techniques for implementation, obstacles likely to be encountered, and experience-based advice for successful execution.
You will learn the best approaches to
Working with an on-site customer
Defining requirements with user "stories"
Estimating the time and cost of each story
Delivering small, frequent releases
Performing constant integration and frequent iterations
Running design sessions to help programmers move forward with confidence
xUnit automated testing
Handling defects in the fast-paced, team-oriented XP environment
How to refine estimates and steer the development effort through frequent changes
The authors present the personal reflections of those who have been through the eXtreme Programming experience. Readers will benefit from first hand accounts of hard-won wisdom on topics such as the art of estimation, managing development infrastructure, solving problems without finger-pointing, the importance of simplicity, and how to introduce modern development tools into an environment where none existed.