Extreme Programming (XP) may be the world's hottest software methodology: a lightweight, programmer-friendly approach that is delivering breakthrough results in a wide range of projects worldwide. This book brings together the proceedings of the first global XP conference: the collected "best practices" wisdom from the world's leading XP practitioners. This collection brings together case studies, experiences, and research related to all aspects of XP. It starts with the foundations, then moves on to process, practices, tool support, experiences, and the future: opportunities to apply XP in an even wider range of projects and applications. Among the many highlights: Martin Fowler's discussion of the role of design in XP methodologies; new insights into scalability and organization; an in-depth analysis of XP pair programming; new attempts to integrate XP with UML; and exciting new approaches to rapid modeling of software systems. For software professionals concerned with accelerating software development and improving software quality throughout their organizations.
Giancarlo Succi has applied the XP methodology to various projects. He is an organizer of the main XP conferences held thus far.
Michele Marchesi has applied the XP methodology to various projects. He is an organizer of the main XP conferences held thus far.
I. FOUNDATIONS OF XP AND FLEXIBLE TECHNIQUES. 1. Is Design Dead?, Marttin Fowler. 2. The Tao of Extreme Programming, Peter Merel.
II. METHODOLOGY AND PROCESS. 3. A Comparison of the Value Systems of Adaptive Software Development and Extreme Programming: How Methodologies May Learn from Each Other, Dirk Riehle. 4. Let's Get Layered: A Proposed Reference Architecture for Refactoring in XP, Mark Collins-Cope and Hubert Matthews. 5. Extreme Frameworking: How to Aim Applications at Evolving Frameworks, Stefan Roock. 6. Hierarchical XP: Improving XP for Large-Scale Projects in Analogy to Reorganization Processes, Carsten Jacobi and Bernhard Rumpe. 7. JWAM and XP: Using XP for Framework Development, Martin Lippert, Stefan Roock, Henning Wolf, and Heinz Zullighoven. 8. XP and Large Distributed Software Projects, Even-Andre Karlsson and Lars-Goeran Andersson.
III. FLEXIBLE TECHNIQUES AND UML.
Chapter 9. XP Inside the Trojan Horse: Refactoring the Unified Software Development Process, Jutta Eckstein and Rolf F. Katzenberger.
10. A Flexible Software Development Process for Emergent Organizations, Giuliano Armano and Michele Marchesi.
11. Extreme Modeling, Marko Boger, Toby Baier, Frank Wienberg, and Winfried Lamersdorf.
12. A Stochastic Model of Software Maintenance and Its Implications on Extreme Programming Processes, Sergio Focardi, Michele Marchesi, and Giancarlo Succi.
13. Patterns and XP, Joshua Kerievsky.
IV. PAIR PROGRAMMING, TESTING, AND REFACTORING.
Chapter 14. The Costs and Benefits of Pair Programming, Alistair Cockburn and Laurie Williams.
Appendix: The "Expert-In-Earshot" Project Management Pattern.15. Unit Testing in a Java Project, Peter Gassmann.
Sample Code.16. Retrofitting Unit Tests with JUnit, Kevin Rutherford. 17. Endo-Testing: Unit Testing with Mock Objects, Tim Mackinnon, Steve Freeman, and Philip Craig. 18. Refactoring and Re-Reasoning, Neelam Soundarajan.
V. TOOLS FOR XP DEVELOPMENT. Chapter 19. Developing the Refactoring Browser, Ralph Johnson. 20. Team Streams: Extreme Team Support, Jim des Rivieres, Erich Gamma, Ivan Moore, Kai-Uwe Matzel, Andre Weinand, John Wiegand. 21. Support for Distributed Teams in Extreme Programming, Till Schummer, Jan Schummer. @CHAPTER = 22. Automated Testing for a CORBA-Based Distributed System, Renato Cerqueira and Roberto Ierusalimschy.
VI. PRACTICAL EXPERIENCES. 23. The VCAPS Project: An Example of Transitioning to XP, Don Wells and Trish Buckley. 24. Adopting XP, Peter Sommerlad. 25. Introducing Extreme Programming in a Research and Development Laboratory, Karl Boutin. 26. After the Fact: Introducing XP into an Existing C++ Project, Manfred Lange. 27. The XP of TAO: Extreme Programming of Large, Open-Source Frameworks, Michael Kircher and David L. Levine.
VII. XP AND BEYOND. 28. Learn XP: Host a Boot Camp, Christian Wege and Frank Gerhardt. 29. Legacy to the Extreme, Arie van Deursen, Tobias Kuipers, and Leon Moonen. 30. The Design Is in the Code: Enhanced Reuse Techniques in C++, Andrei Alexandrescu. 31. Tracing Development Progress: A Variability Perspective, Giancarlo Succi, Paolo Predonzani, and Tullio Vernazza. 32. Flexible Manufacturing for Software Agents, Luigi Benedicenti, Ramon Paranjape, and Kevin Smith. 33. How Do Flexible Processes Relate to Software Product-Lines?, Jason Yip, Giancarlo Succi, and Eric Liu. Index. 0201710404T04232001