Ron Jeffries was the on-site XP coach for the original Extreme Programming project, a large financial system for a major automotive manufacturer. An independent consultant who has been involved in eXtreme Programming for over more than four years, he has presented numerous talks and published several papers on the topic. Ron has been a systems developer for more years than most of you have been alive, and his teams have built operating systems, compilers, relational database systems, and a wide range of applications. He has not, as yet, run out of new ways to make mistakes (and resolve them). Ron has recently joined forces with Object Mentor, Inc., to help more people improve their software process.
Ann Anderson is an independent consultant engaged full time in coaching XP and in teaching and using Smalltalk for financial applications development. Ann was a team member on the large payroll system that was the original proving ground for Extreme Programming. Throughout her career she has been involved in object-oriented projects spanning control systems, insurance, tax, and finance.
Chet Hendrickson is a systems architect at ThoughtWorks, Inc, where he makes sure that programmers and customers know and understand their rights. Previously, Chet was a senior software systems specialist at a major automobile manufacturer, where he worked on a large operational finance system that was the test bed for Extreme Programming. He was the winner of the Project Manager Game at OOPSLA'99 (although he thinks it might have been rigged).
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
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.
Click below for Sample Chapter related to this title:
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.
There aren't any silver bullets in software development, and there probably never will be. However, Extreme Programming is a simple set of common-sense practices that, when used together, really can give you much of what you just read in the paragraph above. In this book, we tell you what the XP practices are, and how to install them in your project.
We are software developers. We have been involved in many successful projects, and even in some that weren't so successful. The successful ones were a lot more fun, for us, and for our customers. The unsuccessful ones have taught us a great deal about software development.
We have had the privilege of working on a great project, with a great teacher, Kent Beck. We helped shape the software process named Extreme Programming, XP for short. Since then, we have been helping everyone who will listen to learn from our experience.
The first book in the Extreme Programming series, Extreme Programming Explained , covers the reasoning behind the XP process. Based on our experience on the original XP project (and others), this book describes what makes XP work, day to day and month to month.
Successful software development is a team effort--not just the development team but the larger team consisting of customers, management, and developers. Extreme Programming is a simple process that brings these people together and helps them to succeed together. XP is aimed primarily at object-oriented projects using teams of a dozen or fewer programmers in one location. We would use XP for both in-house development and development of shrink-wrapped software. The principles of XP apply to any moderately sized project that needs to deliver quality software rapidly and flexibly.
XP is about balancing the needs of customers with the abilities of programmers, and about steering (managing the project to success). If you're a customer, a programmer, or a manager, here's what this book offers you:
Customers--who have software that needs to be developed: you will learn simple, effective ways to communicate what you need, to be sure that you are getting what you need, and to steer the project to success. You will learn that you can change your mind and still get what you need on time.
Programmers--who, on an XP project, define the architecture, design the system, and write the tests and the code that support them: you will learn how to deliver business value quickly, how to deal with changing requirements, and how to build customer confidence and support. You will learn to build for tomorrow by building only what you need today.
Managers--who control the project resources: you will learn how to measure project progress, how to measure quality, and how to answer the all-important question, "When will you be done?" You will learn an important truth of management--to use the programmers' actual performance to predict completion.
Customers, programmers, and managers must all work together to build the system that's needed. Chapter 1, Extreme Programming, will describe the roles, rights, and responsibilities, and provide a road map for the book. Dig right in. We're sure that the XP practices can improve your projects, as they have ours.