Extreme Programming Applied: Playing to Win
(From the Back Cover)
Extreme Programming (XP) is a significant departure from traditional software development methods, one that is ushering in a change for both developers and business people. It is an agile methodology, which enables highly productive teams to produce quality software from rapidly changing or unclear requirements. XP is disciplined software craftsmanship, elevating best practices in software analysis, design, testing, implementation, and project management to a new level. Extreme Programming Applied helps you begin using the principles behind this revolutionary concept.
Even as the popularity of XP grows, many programmers and developers are still seeking practical advice on getting started. They find themselves in search of an XP roadmap, one that points to paths around the obstacles.
Extreme Programming Applied is just that roadmap, a pragmatic guide to getting started with Extreme Programming. It helps programmers and project managers take their first steps toward applying the XP discipline. This book is not a tutorial, however. It uses real-world experience to educate readers about how to apply XP in their organizations. The authors offer guidelines for implementing XP, illustrating key points with valuable stories from successful XP pioneers.
Review By: Cathy Bell
11/14/2003What is Extreme Programming (XP)? Kent Beck, author of “Extreme Programming Explained”, explains, “XP is the starting line. It asks the question, 'How little can we do and still build great software?'” This book sets out to explain just how XP can be and has been implemented. The Introduction warns that XP is no silver bullet and makes no promises that by reading this book your next software project will be wildly successful. However, implementing XP does allow the software development team to circumvent many of the problems we face while trying to build great software. We are introduced to a cast of composite characters, ones we are all familiar with: the pitiful programmer, the die-hard developer, the sad sponsor, and the ever popular; smelly software. To improve upon these characters, we need to view software development from the XP point of view. The book shows us the way.
Section one, Before You Start, consists of Chapter 0. This chapter is meant to be a reference if you have not yet read Extreme Programming Explained. It explains the four core values of XP and the twelve practices. Section two, The Right Mindset, talks about the mindset required for XP and the resistance you will face. Chapters 1-3 cover why you should sell XP to your management, how you can and should be the champion for XP within your own company and how to overcome the resistance that you will face as XP forces people out of their comfort zones. When you have gained the support of a few fellow workers and may even have started your own XP team it’s time to face the resistance. The authors prepare us in Chapter 4 for many of the arguments that management will raise followed by Chapter 5 which helps combat developer resistance. We see in Chapter 6 that we still have some growing to do ourselves. “Having the right attitude” reminds us that we all make mistakes and XP allows for this. However, we have to be humble enough to realize our mistakes, correct them, and move on.
Chapter 7 starts section three, First Things First, and covers what to do first, why and how when you actually take the XP plunge. The experiences in this section show what problems to avoid and how others solved some of the problems you are likely to face. Chapter 8 covers the exceptions to XP and how to handle them simply, and Chapter 9 is about the importance of communication. XP is not chaotic as shown in Chapters 10-12 where they define how to plan the XP way. Getting into the habit of writing tests before writing code is not a widely accepted concept, so the book spells out the importance of this very practice. A second practice that is essential to XP is programming in pairs and Chapter 14 covers this aspect. Make it run, make it right, make it fast is the XP mantra as explained in Chapter 15. We have started on the path by implementing the XP essentials, but now we have to work on integration and how to stay on process, Chapters 16 and 17.
Section three, The Rest of the Story, covers the rest of the practices associated with XP and how to implement them. Chapters 18-21 show how to improve design, get everyone involved including the customer, and know when you are done with an all-important aspect of any project. How to handle coding standards, either current standards we must follow or creating new standards are covered in Chapter 22. The 40-hour week is dealt with in Chapter 23 not as a myth but as a realistic approach when XP is executed correctly. Chapter 24 shows that a metaphor that both the customer and programmers understand can keep the team focused on what rather than how, especially at the beginning of a project. What team doesn’t benefit from a good coach? The roles a coach can play are covered in Chapter 25, while 26 shows what data we should be tracking with an in depth example from Ken Auer.
Section 4, Uncharted Territory, shows us that there are still areas of XP that are changing and parts that have yet to be fully explored. Chapters 27- 31 cover these areas with advice on how to avoid some of the pitfalls already encountered and lots of encouragement to press forward. Chapter 32 brings home the point, shape the future or have it dictated to you. XP is the future.