| Extreme Programming Perspectives |
| By Michele Marchesi, Giancarlo Succi, Don Wells, Laurie Williams |
| | |
| Publisher | : Addison Wesley |
| Pub Date | : August 30, 2002 |
| ISBN | : 0-201-77005-9 |
| Pages | : 640 |
 | Copyright |
| |  | Foreword |
| |  | Part I. XAR: Extreme and Agile Review A Review of XP and AMs |
| | |  | Chapter 1. XP in a Thousand Words |
| | |  | About the Author |
| |
| | |  | Chapter 2. Agile Software Development Why It Is Hot! |
| | |  | What Kinds of Problems Does Agility Solve Best? |
| | |  | What Is Agility? |
| | |  | What Are Agile Software Development Ecosystems? |
| | |  | A Chaordic Perspective |
| | |  | Collaborative Values and Principles |
| | |  | A Barely Sufficient Methodology |
| | |  | What Is the Future of Agile Software Development? |
| | |  | References |
| | |  | About the Author |
| |
| | |  | Chapter 3. Which AM Should I Use? |
| | |  | Extreme Programming |
| | |  | Scrum |
| | |  | Crystal Methodologies |
| | |  | Adaptive Software Development |
| | |  | Lean Software Development |
| | |  | Feature Driven Development |
| | |  | Conclusion |
| | |  | References |
| |
| | |  | Chapter 4. Pair Programming: Why Have Two Do the Work of One? |
| | |  | Motivation: Completing Jobs on Time with High Quality |
| | |  | Motivation: Reduce the Risk of Losing a Key Person |
| | |  | Motivation: Have Happier Employees |
| | |  | Motivation: Reduce Training Time |
| | |  | Motivation: Improve Communication and Teamwork |
| | |  | Conclusion |
| | |  | References |
| |
| | |  | Chapter 5. The System Metaphor Explored |
| | |  | What Is a Metaphor? |
| | |  | How Do You Find a Metaphor? |
| | |  | What Are the Objects? |
| | |  | Can Metaphors Be Bad? |
| | |  | Conclusion |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| | |  | Chapter 6. A Lightweight Evaluation of a Lightweight Process |
| | |  | Chicken Soup and Other Recipes |
| | |  | The Quest for Silver Bullets |
| | |  | Linking Everything Together |
| | |  | References |
| |
| | |  | Chapter 7. Circle of Life, Spiral of Death: Ways to Keep Your XP Project Alive and Ways to Kill It |
| | |  | Whole Team (On-Site Customer) |
| | |  | Planning Game |
| | |  | Small Releases |
| | |  | Customer (Acceptance) Tests |
| | |  | Simple Design |
| | |  | Pair Programming |
| | |  | Programmer Tests |
| | |  | Design Improvement (Refactoring) |
| | |  | Collective Code Ownership |
| | |  | Continuous Integration |
| | |  | Coding Standard |
| | |  | Metaphor |
| | |  | Sustainable Pace |
| | |  | Conclusion |
| |
| | |  | Chapter 8. Hitting the Target with XP |
| | |  | Hitting a Target |
| | |  | Artillery The Waterfall Model and the Spiral Model |
| | |  | Missiles and Agile Methodologies |
| | |  | How Extreme Programming Enables Our Missile to Hit the Target |
| | |  | Powerful Thrust |
| | |  | Low Inertia |
| | |  | Good Sensors |
| | |  | Feedback and Efficient Guide |
| | |  | Conclusion |
| | |  | References |
| |
| |
| |  | Part II. XD: Extreme Development Analysis of XP Development Practices |
| | |  | Chapter 9. An Introduction to Testing, XP-Style |
| | |  | Four Types of Testing |
| | |  | Testing as Part of Development |
| | |  | Conclusion |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Author |
| |
| | |  | Chapter 10. Is Quality Negotiable? |
| | |  | Introduction |
| | |  | Internal and External Quality |
| | |  | The XP Tester as Quality Assurance Engineer |
| | |  | Set the Quality Criteria |
| | |  | Running Acceptance Tests |
| | |  | Conclusion: Delivering Quality |
| | |  | References |
| | |  | About the Author |
| |
| | |  | Chapter 11. A Collaborative Model for Developers and Testers Using the Extreme Programming Methodology |
| | |  | Introduction |
| | |  | Inhibitors to Collaboration between Developers and QA Members |
| | |  | Enablers to Collaboration between Developers and QA Members |
| | |  | Requirements for a Unit Testing Tool That Enables QA and Development Collaboration |
| | |  | Example Unit Testing Tool |
| | |  | Collaboration Relationship between Developers and QA Members |
| | |  | Practicalities |
| | |  | Case Study |
| | |  | Conclusion |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| | |  | Chapter 12. Increasing the Effectiveness of Automated Testing |
| | |  | Introduction |
| | |  | Developer Testing Issues |
| | |  | Possible Solutions |
| | |  | In-memory Testing Issues |
| | |  | Optimizing Test Development |
| | |  | Results |
| | |  | Conclusions |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| | |  | Chapter 13. Extreme Unit Testing: Ordering Test Cases to Maximize Early Testing |
| | |  | Introduction |
| | |  | Example and Background |
| | |  | Testing Model 1: Ad Hoc Method Ordering |
| | |  | Testing Model 2: Optimized Method Ordering |
| | |  | Discussion |
| | |  | Conclusion |
| | |  | References |
| | |  | About the Authors |
| |
| | |  | Chapter 14. Refactoring Test Code |
| | |  | Introduction |
| | |  | Test Code Smells |
| | |  | Refactorings |
| | |  | Related Work |
| | |  | Conclusions |
| | |  | References |
| | |  | About the Authors |
| |
| | |  | Chapter 15. Diagnosing Evolution in Test-Infected Code |
| | |  | Introduction |
| | |  | The Case Study |
| | |  | Diagnosing Evolution and Test Infection |
| | |  | Related and Future Work |
| | |  | Conclusion |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| | |  | Chapter 16. Innovation and Sustainability with Gold Cards |
| | |  | Introduction |
| | |  | The Gold Card System |
| | |  | Comparison with Other Approaches |
| | |  | Conclusion |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| | |  | Chapter 17. Integrating Extreme Programming and Contracts |
| | |  | Extreme Programming |
| | |  | Design by Contract |
| | |  | Simplicity Versus Contracts |
| | |  | XP Values |
| | |  | Contracts and Unit Tests |
| | |  | Contracts as an Implementation Pattern |
| | |  | Conclusion |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| | |  | Chapter 18. Refactoring or Up-Front Design? |
| | |  | Introduction |
| | |  | Does the "Cost of Fixing Errors" Curve Invalidate XP? |
| | |  | Iterative Versus Incremental |
| | |  | From Shack to Skyscraper |
| | |  | Preconditions for Incremental Methods to Work |
| | |  | Surprising Cost Curve |
| | |  | Analogy with Investment |
| | |  | Analogy with House Building |
| | |  | Typical Examples of Rapidly Rising Cost Features |
| | |  | Conclusion |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Author |
| |
| | |  | Chapter 19. A Methodology for Incremental Changes |
| | |  | Introduction |
| | |  | Role of Domain Concepts |
| | |  | Case Study |
| | |  | Observations |
| | |  | Conclusions and Future Work |
| | |  | References |
| | |  | About the Author |
| |
| | |  | Chapter 20. Extreme Maintenance |
| | |  | Introduction |
| | |  | The Problems |
| | |  | Initial History of Change |
| | |  | Extreme Maintenance |
| | |  | Starting Extreme |
| | |  | Conclusion |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| |
| |  | Part III. XTT: Extreme Technology Transfer Introducing XP and AMs |
| | |  | Chapter 21. Bringing Extreme Programming to the Classroom |
| | |  | Introduction |
| | |  | What's Extreme about XP? |
| | |  | Our Clients |
| | |  | Lecturing Using Pair Programming |
| | |  | Small Releases Mean Big Progress |
| | |  | Refactoring for Learning Design |
| | |  | Conclusion |
| | |  | References |
| | |  | About the Authors |
| |
| | |  | Chapter 22. Teaching XP for Real: Some Initial Observations and Plans |
| | |  | Introduction |
| | |  | Problems That Motivated Changing to Extreme Programming |
| | |  | Introducing XP into the Company |
| | |  | Risk Management |
| | |  | Future Experiment |
| | |  | Conclusions and Further Work |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| | |  | Chapter 23. Student Perceptions of the Suitability of Extreme and Pair Programming |
| | |  | Introduction |
| | |  | Perceptions of XP |
| | |  | Perceptions of Pair Programming |
| | |  | A Pilot Study |
| | |  | Conclusion |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Author |
| |
| | |  | Chapter 24. Extreme Programming and the Software Design Course |
| | |  | Introduction |
| | |  | Procedures |
| | |  | Observations and Student Reactions |
| | |  | Reflections |
| | |  | References |
| | |  | About the Authors |
| |
| | |  | Chapter 25. The User Stories and Planning Game Tutorial |
| | |  | Tutorial Overview |
| | |  | Planning |
| | |  | Defining Acceptance Tests |
| | |  | Estimating Stories |
| | |  | Writing Stories |
| | |  | Conclusion |
| |
| | |  | Chapter 26. Continuous Learning |
| | |  | Introduction |
| | |  | Teams Take Learning for Granted |
| | |  | Economic Incentive for Learning |
| | |  | A Bias for Action |
| | |  | A Learning Repository |
| | |  | Group Learning |
| | |  | Learning Capabilities |
| | |  | Study Groups |
| | |  | Retrospectives |
| | |  | A Continuously Learning Coach |
| | |  | Conclusion |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Author |
| |
| | |  | Chapter 27. The XP Game Explained |
| | |  | Introduction |
| | |  | Let's Play! |
| | |  | Open the Magic Bag |
| | |  | Tell Us a Story |
| | |  | Estimating: How Hard Can This Be? |
| | |  | Insanely Short Iterations |
| | |  | Planning with Risk |
| | |  | Silly Little Games |
| | |  | Playing to Win |
| | |  | Acceptance Testing: Don't Trust Developers |
| | |  | Trading Places |
| | |  | Velocity: How Much Did We Get Done? |
| | |  | Sustainable Playing |
| | |  | Conclusion |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| | |  | Chapter 28. Mob Programming and the Transition to XP |
| | |  | Introduction |
| | |  | Description of Methods |
| | |  | The Intended Benefits of Mob Programming in the Context of XP |
| | |  | Shortcomings |
| | |  | Conclusion |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| | |  | Chapter 29. A Metric Suite for Evaluating the Effectiveness of an Agile Methodology |
| | |  | Introduction |
| | |  | Agile Methodologies |
| | |  | Empirical Investigation |
| | |  | Empirical Study Hypotheses |
| | |  | Conclusion |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| |
| |  | Part IV. XR: Extreme Reality Real-Life Experiences |
| | |  | Chapter 30. Extreme Adoption Experiences of a B2B Start-Up |
| | |  | Research Hypotheses |
| | |  | Description of the Context of the Experience |
| | |  | Results from the Experience |
| | |  | What to Do Next |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| | |  | Chapter 31. Lessons Learned from an XP Project |
| | |  | Research Hypotheses |
| | |  | Description of the Context of the Experience |
| | |  | Results from the Experience |
| | |  | What to Do Next |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| | |  | Chapter 32. Challenges for Analysts on a Large XP Project |
| | |  | Research Hypotheses |
| | |  | Description of the Context of the Experience |
| | |  | Results from the Experience |
| | |  | What to Do Next |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Author |
| |
| | |  | Chapter 33. XP on a Large Project A Developer's View |
| | |  | Research Hypotheses |
| | |  | Description of the Context of the Experience |
| | |  | Results from the Experience |
| | |  | What to Do Next |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Author |
| |
| | |  | Chapter 34. A Customer Experience: Implementing XP |
| | |  | Research Hypotheses |
| | |  | Description of the Context of the Experience |
| | |  | Results of the Experience |
| | |  | What to Do Next |
| | |  | Acknowledgments |
| | |  | References |
| | |  | About the Author |
| |
| | |  | Chapter 35. Learning by Doing: Why XP Doesn't Sell |
| | |  | Research Hypotheses |
| | |  | Description of the Context of the Experience |
| | |  | Results from the Experience |
| | |  | What to Do Next |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| | |  | Chapter 36. Qualitative Studies of XP in a Medium-Sized Business |
| | |  | Research Hypothesis |
| | |  | Description of the Context of the Experience |
| | |  | Results from the Experience |
| | |  | What to Do Next |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Authors |
| |
| |
| |  | Part V. XT: Extreme Tools How Tools May Help the Practices of XP and AMs |
| | |  | Chapter 37. Automatically Generating Mock Objects |
| | |  | Introduction |
| | |  | Example of Using the Tool |
| | |  | Features of the Tool |
| | |  | State of the Implementation |
| | |  | Tool Accessibility |
| |
| | |  | Chapter 38. Testing in the Fast Lane: Automating Acceptance Testing in an Extreme Programming Environment |
| | |  | Introduction |
| | |  | Tool Features |
| | |  | Example Usage |
| | |  | State of Implementation |
| | |  | Tool Accessibility |
| | |  | About the Authors |
| |
| | |  | Chapter 39. Jester A JUnit Test Tester |
| | |  | Introduction |
| | |  | Features of the Tool |
| | |  | Example of Using the Tool |
| | |  | Conclusion |
| | |  | State of the Implementation |
| | |  | Tool Accessibility |
| | |  | References |
| | |  | Acknowledgments |
| | |  | About the Author |
| |
| | |  | Chapter 40. Stabilizing the XP Process Using Specialized Tools |
| | |  | Introduction |
| | |  | Reification of the integration Process in an Artifact |
| | |  | Features of the JWAM IntegrationServer |
| | |  | Examples of Using the JWAM IntegrationServer |
| | |  | Related Tools |
| | |  | State of the Implementation |
| | |  | Tool Accessibility |
| | |  | Conclusion and Outlook |
| | |  | References |
| | |  | About the Authors |
| |
| | |  | Chapter 41. Holmes A Heavyweight Support for a Lightweight Process |
| | |  | Requirements for a Tool Supporting Lightweight Processes |
| | |  | Structure of Holmes |
| | |  | The Holmes Model of Tool Integration |
| | |  | References |
| |
| |
| |  | Part VI. XEX: Extreme to the Extreme Ideas on How to Extend XP and AMs |
| | |  | Chapter 42. Extreme Programming from a CMM Perspective |
| | |  | Introduction |
| | |  | The Software CMM |
| | |  | Extreme Programming |
| | |  | XP, Process Rigor, and the CMM |
| | |  | Conclusion |
| | |  | References |
| | |  | About the Author |
| |
| | |  | Chapter 43. Keep Your Options Open: Extreme Programming and the Economics of Flexibility |
| | |  | Introduction |
| | |  | XP as an Options-Driven Process |
| | |  | Valuation Basics: How to Quantify the Value of Capital Investments |
| | |  | From Traditional Valuation to Real Options |
| | |  | XP and Options |
| | |  | Implications of Real-Options Thinking |
| | |  | Conclusion |
| | |  | Final Remarks |
| | |  | Further Reading |
| | |  | References |
| | |  | About the Authors |
| |
| | |  | Chapter 44. Distributed Extreme Programming |
| | |  | Introduction |
| | |  | Distributed Extreme Programming |
| | |  | Experience Report |
| | |  | Conclusion |
| | |  | References |
| | |  | About the Authors |
| |
| | |  | Chapter 45. The Five Reasons XP Can't Scale and What to Do about Them |
| | |  | Introduction |
| | |  | The Five Reasons |
| | |  | Solutions |
| | |  | Conclusion |
| | |  | References |
| |
| | |  | Chapter 46. XP in Complex Project Settings: Some Extensions |
| | |  | Context and Motivation |
| | |  | Roles in XP |
| | |  | The New User and Client Roles |
| | |  | Story Cards and the Planning Game |
| | |  | Project Stages and Baselines |
| | |  | System Architecture |
| | |  | Conclusion |
| | |  | References |
| | |  | About the Authors |
| |
| | |  | Chapter 47. Building Complex Object-Oriented Systems with Patterns and XP |
| | |  | Introduction |
| | |  | Semantic Analysis Patterns |
| | |  | Development of SAPs |
| | |  | SAPs and XP |
| | |  | Conclusion |
| | |  | References |
| |
| |
| |  | Index |