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 |