- 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.
Table of contents
1. Extreme Programming.
2. The Circle of Life.
3. On-Site Customer.
4. User Stories.
5. Acceptance Tests.
Sidebar: Acceptance Test Samples.
6. Story Estimation.
Interlude: Sense of Completion.
7. Small Releases.
8. Customer Defines Release.
9. Iteration Planning.
10. Quick Design Session.
Sidebar: Code Quality.
12. Pair Programming.
13. Unit Tests.
14. Test First, by Intention.
15. Releasing Changes.
16. Do or Do Not.
17. Experience Improves Estimates.
18. Resources, Scope, Quality, Time.
20. Steering the Iteration.
21. Steering the Release.
22. Handling Defects.
Sidebar: Advanced Issue: Defect Databases.
Sidebar: Advanced Practice: Tests as Database.
24. We'll Try.
25. How to Estimate Anything.
27. It's Chet's Fault.
28. Balancing Hopes and Fears.
29. Testing Improves Code.
30. XPer Tries Java.
31. A Java Perspective.
32. A True Story.
33. Estimates and Promises.
34. Everything That Could Possibly Break.
All the material you need to teach your courses.Discover teaching material