Main Page

   
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


Extreme Programming (XP) has been established as a significant departure from traditional software development methods. The success of the XP 2001 and XP Universe 2001 conferences is no surprise; some of the brightest minds in software engineering gathered at these venues to discuss the discipline that is XP. These conferences showcase the continuously changing face of XP. Common programming practices will never be the same, and developers and business people alike need to bear this fact in mind as they plan for the future.

Inspired by the techniques and challenges explored at these conferences, Extreme Programming Perspectives presents 47 articles that represent the insights and practical wisdom of the leaders of the XP community. Encompassing a wide variety of key topics on XP and other agile methodologies, this book offers experience-based techniques for implementing XP effectively and provides successful transitioning strategies. Articles are grouped into six main sections: an overview of XP and agile methodologies; XP development practices; issues involved in transitioning to XP and agile methodologies; real-life experiences of working with XP; tools for facilitating XP development; and finally, ideas for expanding and extending XP.

You will find such outstanding articles as:

  • Circle of Life, Spiral of Death: Ways to Keep Your XP Project Alive and Ways to Kill It, by Ron Jeffries

  • Agile Software Development—Why It Is Hot!, by Jim Highsmith

  • An Introduction to Testing, XP-Style, by Don Wells

  • Increasing the Effectiveness of Automated Testing, by Shaun Smith and Gerard Meszaros

  • The System Metaphor Explored, by William Wake and Steven Wake

  • Pair Programming: Why Have Two Do the Work of One?, by Laurie Williams

  • A Metric Suite for Evaluating the Effectiveness of an Agile Methodology, by Laurie Williams, Giancarlo Succi, and Michele Marchesi

  • The Five Reasons XP Can't Scale and What to Do about Them, by Ron Crocker

  • Keep Your Options Open: Extreme Programming and the Economics of Flexibility, by Hakan Erdogmus and John Favaro

  • Extreme Programming from a CMM Perspective, by Mark C. Paulk

The contributions in this book comprise the best practices in Extreme Programming across a number of industries. Those already involved in XP development, or anyone interested in transitioning to this flexible approach, will find this book a fascinating and valuable resource for leveraging the power of XP and agile methodologies.


   
•  Table of Contents
•  Index
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