You are previewing Questioning Extreme Programming.
O'Reilly logo
Questioning Extreme Programming

Book Description

Extreme Programming (XP) has been the subject of heated debate since its arrival on the programming scene in 1998—understandably so, as it contradicts many traditional software development beliefs. We¿ve heard success stories about sweeping changes made to organizations as a result of XP. We’ve read books about how this approach can work for our teams. However, are there times when XP isn’t appropriate? There are certainly instances when making the leap to XP could potentially jeopardize a whole project. What’s missing from all of this rhetoric? Witness Pete McBreen, software craftsman, examine the issue from both sides.

In Questioning Extreme Programming, the author helps you examine and answer the following questions:

  • Is the cost of change really low?

  • Does XP allow proper testing?

  • Does XP make sense?

  • Is XP a return to the dark ages?

  • Can we adopt XP practices for other approaches?

  • Do you need process improvement or process change?

  • Why are developers so zealous about adopting XP?

  • Is XP suitable for your projects?

  • What is the next step after Extreme Programming?

  • After reading this thought-provoking book, software developers can make informed decisions about Extreme Programming, and whether it is suitable for their organization. Readers will also be able to determine whether Extreme Programming is inappropriate for a particular project. The author challenges you to look past the hype and start asking the hard questions about how software is built. Discover for yourself.


    Table of Contents

    1. Copyright
      1. Dedication
    2. Foreword
    3. Preface
      1. Adopting Extreme Programming
      2. Resisting Extreme Programming
      3. Looking for Alternatives to Extreme Programming
      4. Improving Your Current Software Development Process
      5. Why You Should Read This Book
    4. Acknowledgments
    5. I. Introduction
      1. 1. XP: Hype or HyperProductive?
        1. Sample Claims, Counter Claims, and Misinformation
        2. Is There Any Hard Evidence to Support the Claims for XP?
          1. Should We Ask for Comparative Studies?
          2. Anecdotal Evidence Is Not Necessarily Bad
          3. Reevaluating the Cost of Change
        3. All Processes Are Situational
        4. Do You Need Process Improvement or Process Change?
          1. Signs That Your Process Is Broken
        5. Understanding Software Development Processes
          1. XP Is Optimized for Predictable Pace Delivery
        6. Understanding the Controversy Around XP
        7. Is XP an Option for You?
        8. Summary
    6. II. What Is a Methodology?
      1. 2. What Do Methodologies Optimize?
        1. Why the Focus on Fear?
        2. Methodologies Record Bad Experiences on Projects
          1. How Do Methodologies Record Bad Experiences?
        3. What Do Developers Look for in a Process?
        4. Experience, Talent, and Tacit Knowledge
        5. Heavy, Rigorous, Tailorable, Light, Minimal, and Agile Methodologies
        6. Summary
      2. 3. What Are XP Projects Scared Of?
        1. XP Was Created to Address Project Risks
        2. But Project Risks Are Symptoms, Not the Disease
        3. Summary
      3. 4. What Do Other Methodologies Consider Important?
        1. What Do Software Engineering Projects Consider Important?
          1. Traditional Waterfall Projects
          2. Ad Hoc Projects
          3. Game Development
          4. Unified Process Projects
        2. What Do Open Source Projects Consider Important?
          1. Cathedral/Bazaar
          2. Ruby Community
        3. What Is Important to Agile Projects?
          1. Adaptive Software Development
          2. Crystal
          3. Dynamic Systems Development Method
          4. Feature-Driven Development
          5. Pragmatic Programming
          6. Scrum
        4. Summary
      4. 5. What Is Important for Your Projects?
        1. Reinterpreting Experience in the Light of New Knowledge
        2. Understanding Process, Culture, and Methodologies
        3. Maintenance and Evolution of the Software
        4. Can a Methodology per Project Really Work?
        5. So What Is Important to Your Projects?
        6. Learning From XP to Improve Your Process
        7. Summary
    7. III. Questioning the Core XP Practices
      1. 6. Planning Incremental Development
        1. Small Releases
        2. User Stories
        3. Planning Game
        4. Open Questions
        5. What Can Other Approaches Learn From XP?
        6. Summary
      2. 7. Truly Incremental Development
        1. Simple Design
        2. Refactoring
        3. System Metaphor
        4. Collective Code Ownership
        5. Continuous Integration
        6. Open Questions
        7. What Can Other Approaches Learn From XP?
        8. Summary
      3. 8. Are We Done Yet?
        1. Coding Standards
        2. Test First Development
        3. Acceptance Tests
        4. Open Questions
        5. What Can Other Approaches Learn From XP?
        6. Summary
      4. 9. Working at This Intensity Is Hard
        1. Forty-Hour Work Week
        2. Pair Programming
        3. On-Site Customer
        4. Open Questions
        5. What Can Other Approaches Learn From XP?
        6. Summary
      5. 10. Is That All There Is to Extreme Programming?
        1. Keeping an XP Project On Process
        2. Continuous Reflection
        3. Distributed Development and Extreme Programming
        4. Open Questions
        5. What Can Other Approaches Learn From XP?
        6. Summary
    8. IV. Questioning XP Concepts
      1. 11. The Source Code Is the Design?
        1. Software Development Is Mainly a Design Activity
        2. Managing Complexity
        3. Why Now? What Has Changed?
        4. What Does This Mean for XP?
        5. Summary
      2. 12. Test First Development?
        1. But Do Programmers Know Enough About Testing?
        2. How Expensive Are Automated Acceptance Tests?
        3. Effectively Defect-Free Versus Good Enough Software
        4. What About Code That Is Hard to Test?
        5. Can Acceptance Tests Be Used to Measure Progress?
        6. Does XP Do Proper Testing?
        7. Why Now? What Has Changed?
        8. What Does This Mean for XP?
        9. Summary
      3. 13. Large-Scale XP?
        1. Are Large Teams a Goal?
        2. Long-Running Projects
        3. Coordinating Multiple Teams
        4. Is It OK for a Process to Have Limits?
        5. Why Now? What Has Changed?
        6. What Does This Mean for XP?
        7. Summary
      4. 14. Is the Cost of Change Really Low?
        1. What Is the Cost of a Requirements Change?
        2. What Is the Cost of Fixing a Bug?
        3. What Is the Cost of Fixing a Design Error?
        4. What Is the Cost of Fixing an Error of Understanding?
        5. What Is the Cost of a Release?
        6. Why Now? What Has Changed?
        7. What Does This Mean for XP?
        8. Summary
      5. 15. Setting the Dials on Ten
        1. What About the Overdose Effect?
        2. Pretty Adventuresome Programming
        3. Why Now? What Has Changed?
        4. What Does This Mean for XP?
        5. Summary
      6. 16. Requirements: Documentation or a Conversation?
        1. Can Changes to Requirements be Controlled?
        2. Requirements Traceability Is One Way to Handle Change
        3. Does the On-Site Customer Know Enough?
        4. Emergent Requirements
        5. Why Now? What Has Changed?
        6. What Does This Mean for XP?
        7. Summary
      7. 17. Is Oral Documentation Enough?
        1. Who Reads the Documentation?
        2. Is a Handoff to Maintenance Useful?
        3. Can Maintainers Really Rely on the Documentation?
        4. Why Now? What Has Changed?
        5. What Does This Mean for XP?
        6. Summary
      8. 18. Playing to Win?
        1. Does XP Actively Manage All Risks?
        2. Does XP Require Experienced Teams?
        3. Can We Win With a Team of Novices?
        4. Why Now? What Has Changed?
        5. What Does This Mean for XP?
        6. Summary
    9. V. Understanding the XP Community
      1. 19. ReallyStrangeSayings
        1. MixedCase and Initial-Slang
        2. WikiWords Are Not Always Politically Correct
        3. YouAren'tGonnaNeedIt
        4. The Source Code Is the Design
        5. OnceAndOnlyOnce
        6. Do the Simplest Thing That Could Possibly Work
        7. Getting Beyond the Sayings
        8. Summary
      2. 20. Feel the Hostility; Experience the Joy
        1. Just a Bunch of Undisciplined Hacker Cowboys?
        2. Is XP a Return to the Dark Ages?
        3. The Best Project We Have Ever Worked On!
        4. Developers Are Attracted to XP
        5. So Is XP a Cult?
        6. Summary
      3. 21. Transitioning Away From Extreme Programming
        1. Does XP Lock a Project into the Extreme Practices?
        2. Welcome to the Hotel California?
        3. Retraining Extreme Programmers
        4. Retraining Customers
        5. What Is Next After Extreme Programming?
        6. Where Will the Next Process Come From?
        7. Summary
    10. VI. Your Choice
      1. 22. Is XP for You?
        1. Is Your Current Approach Broken?
        2. Is Your Organization Ready for XP?
        3. Do Your Developers Want to Use XP?
        4. Is Your Customer Ready for XP?
        5. Are Your Projects Suitable for XP?
        6. But We Can Overcome These Difficulties
        7. Applying the Lessons of Extreme Programming
        8. Do You Really Need to Adopt XP?
        9. Rolling Your Own Process
        10. Summary
      2. 23. Do You Have a Suitable First Project?
        1. Assessing Projects for Suitability to Extreme Programming
        2. Preparing Your XP Team
        3. Summary
    11. Epilogue
    12. Bibliography