You are previewing Agile Adoption Patterns: A Roadmap to Organizational Success.
O'Reilly logo
Agile Adoption Patterns: A Roadmap to Organizational Success

Book Description

Proven Patterns and Techniques for Succeeding with Agile in Your Organization

Agile methods promise to help you create software that delivers far more business value—and do it faster, at lower cost, and with less pain. However, many organizations struggle with implementation and leveraging these methods to their full benefit. In this book, Amr Elssamadisy identifies the powerful lessons that have been learned about successfully moving to agile and distills them into 30 proven agile adoption patterns.

Elssamadisy walks you through the process of defining your optimal agile adoption strategy with case studies and hands-on exercises that illuminate the key points. He systematically examines the most common obstacles to agile implementation, identifying proven solutions. You’ll learn where to start, how to choose the best agile practices for your business and technical environment, and how to adopt agility incrementally, building on steadily growing success.

Next, he presents the definitive agile adoption pattern reference: all the information you need to implement the strategy that you’ve already defined. Utilizing the classic pattern format, he explains each agile solution in its proper context, revealing why it works—and how to make the most of it. The pattern reference prepares you to

  • Understand the core drivers, principles, and values associated with agile success

  • Tightly focus development on delivering business value–and recognize the “smells” of a project headed off track

  • Gain rapid, effective feedback practices: iteration, kickoff and stand-up meetings, demos, retrospectives, and much more

  • Foster team development: co-location, self-organization, cross-functional roles, and how to bring the customer aboard

  • Facilitate technical tasks and processes: testing, refactoring, continuous integration, simple design, collective code ownership, and pair programming

  • Act as an effective coach, learning to engage the community and promote learning

  • Integrate “clusters” of agile practices that work exceptionally well together

  • Agile Adoption Patterns will help you whether you’re planning your first agile project, trying to improve your next project, or evangelizing agility throughout your organization. This actionable advice is designed to work with any agile method, from XP and Scrum to Crystal Clear and Lean. The practical insights will make you more effective in any agile project role: as leader, developer, architect, or customer.

    Foreword xxiii & xxvi

    Preface xxvii

    Acknowledgments xxxiii

    About the Author xxxvii

    Part 1: Thoughts about Software Development 1

    Chapter 1: Learning Is the Bottleneck 3

    Chapter 2: Personal Agility for Potent Agile Adoption 13

    Part 2: Crafting an Agile Adoption Strategy 21

    Chapter 3: Business Value 23

    Chapter 4: Smells 29

    Chapter 5: Adopting Agile Practices 37

    Part 3: The Pattern Catalog 53

    Chapter 6: The Patterns of Agile Practice Adoption 55

    Chapter 7: Goal 61

    Chapter 8: Cycle 65

    Part 3.1: Feedback Practices 69

    Chapter 9: Iteration 71

    Chapter 10: Kickoff Meeting 77

    Chapter 11: Backlog 81

    Chapter 12: Planning Poker 87

    Chapter 13: Stand-Up Meeting 93

    Chapter 14: Done State 99

    Chapter 15: Demo 103

    Chapter 16: Retrospective 109

    Chapter 17: Release Often 115

    Chapter 18: Co-Located Team 119

    Chapter 19: Self-Organizing Team 125

    Chapter 20: Cross-Functional Team 131

    Chapter 21: Customer Part of Team 137

    Chapter 22: Evocative Document 143

    Chapter 23: User Story 149

    Chapter 24: Use Case 153

    Chapter 25: Information Radiator 157

    Part 3.2:Technical Practices 161

    Chapter 26: Automated Developer Tests 163

    Chapter 27: Test-Last Development 173

    Chapter 28: Test-First Development 177

    Chapter 29: Refactoring 183

    Chapter 30: Continuous Integration 189

    Chapter 31: Simple Design 197

    Chapter 32: Functional Tests 203

    Chapter 33: Collective Code Ownership 219

    Chapter 34: Pair Programming 223

    Part 3.3:Supporting Practices 229

    Chapter 35: Coach 231

    Chapter 36: Engage the Community 235

    Chapter 37: Reading Circle 239

    Chapter 38: Workshop 245

    Chapter 39: Classroom Training 249

    Part 3.4:The Clusters 255

    Chapter 40: Agile Iteration 257

    Chapter 41: Communication Cluster 263

    Chapter 42: Evolutionary Design 269

    Chapter 43: Test-Driven Development 277

    Chapter 44: Test-Driven Requirements 285

    Part 4:Case Studies 293

    Chapter 45: BabyCenter 295

    Chapter 46: Company X 305

    Part 5:Appendices 321

    Appendix A: Pattern to Business Value Mappings 323

    Appendix B: Pattern-to-Smell Mappings 325

    Appendix C: Getting the Most from Agile Practice Patterns 327

    Appendix D: Further Reading 331

    Bibliography 333

    Index 339

    Table of Contents

    1. Copyright
      1. Dedication
    2. Praise for Agile Adoption Patterns
    3. Foreword By Linda Rising
    4. Foreword By J.B. (Joe) Rainsberger
    5. Preface
      1. Is This Book for You?
      2. The Plan
      3. Structure and Content
        1. Part 1: Thoughts about Software Development
        2. Part 2: Crafting an Agile Adoption Strategy
        3. Part 3: The Pattern Catalog
          1. Part 3.1 Feedback Practices
          2. Part 3.2 Technical Practices
          3. Part 3.3 Supporting Practices
          4. Part 3.4 The Clusters
          5. Part 4: Case Studies
          6. Appendices
      4. How to Read this Book
    6. Acknowledgments
    7. About the Author
    8. 1. Thoughts about Software Development
      1. 1. Learning Is the Bottleneck
        1. A Hypothetical Experiment
        2. Examining Agile through “Learning Is the Bottleneck” Lenses
        3. Cycles for Recognizing and Responding to Change
        4. Cycle: Necessary but Not Sufficient
        5. Why Is This Important? Theory to Practice
        6. Keep Your Eye on the Bottleneck
        7. Closing
      2. 2. Personal Agility for Potent Agile Adoption
        1. Why Adopt Agile Practices?
          1. What Is a Successful Adoption?
          2. Problem: Many Unsuccessful Agile Adoptions
          3. Cause: It Depends
        2. The Responsibility Process™ Model
          1. I Want to Be More Responsible. How Can I Do It?
          2. My Teammates Are Stuck in Blame. What Shall I Do?
        3. Potent Agile
          1. Successful Teams Have Responsible Members
          2. Recognizing and Responding to Change Requires Responsibility
          3. Successful Agile Development Begins with the Individual
        4. Personal Agility
        5. Theory to Practice
    9. 2. Crafting an Agile Adoption Strategy
      1. 3. Business Value
        1. Reduce Time to Market
        2. Increase Product Utility (Value to Market)
        3. Increase Quality to Market
        4. Increase Flexibility
        5. Increase Visibility
        6. Reduce Cost
        7. Increase Product Lifetime
        8. Business Values Are Organizational Goals
        9. Theory to Practice: Determining Your Organization’s Business Values
      2. 4. Smells
        1. Business Smells
          1. Quality Delivered to Customer Is Unacceptable
          2. Delivering New Features to Customer Takes Too Long
          3. Features Are Not Used by Customer
          4. Software Is Not Useful to Customer
          5. Software Is Too Expensive to Build
          6. Us Versus Them
          7. Customer Asks for Everything Including the Kitchen Sink
        2. Process Smells
          1. Customer? What Customer?—Direct and Regular Customer Input Is Unrealistic
          2. Management Is Surprised—Lack of Visibility
          3. Bottlenecked Resources—Software Practitioners Are Members of Multiple Teams Concurrently
          4. Churning Projects
          5. Hundreds (Possibly Thousands) of Bugs in Bug Tracker
          6. “Hardening” Phase Needed at End of Release Cycle
          7. Integration Is Infrequent (Usually Because It Is Painful)
        3. Pain as an Incentive
        4. Theory to Practice: What Smells Can You Find?
      3. 5. Adopting Agile Practices
        1. The Practices
        2. Patterns of Agile Practice to Business Value Mappings
          1. Patterns of Agile Practice to Smell Mappings
        3. Crafting Your Agile Adoption Strategy
        4. Where Next?
        5. Theory to Practice: Building Your Own Agile Practice Adoption Strategy
    10. 3. The Pattern Catalog
      1. 6. The Patterns of Agile Practice Adoption
        1. What Is a Pattern?
        2. Using Patterns Effectively
        3. Character Roles
      2. 7. Goal
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      3. 8. Cycle
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
    11. 3.1. Feedback Practices
      1. 9. Iteration
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      2. 10. Kickoff Meeting
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      3. 11. Backlog
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      4. 12. Planning Poker
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. References
      5. 13. Stand-Up Meeting
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      6. 14. Done State
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      7. 15. Demo
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      8. 16. Retrospective
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      9. 17. Release Often
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variation
        9. References
      10. 18. Co-Located Team
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      11. 19. Self-Organizing Team
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      12. 20. Cross-Functional Team
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      13. 21. Customer Part of Team
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      14. 22. Evocative Document
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      15. 23. User Story
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      16. 24. Use Case
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      17. 25. Information Radiator
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
    12. 3.2. Technical Practices
      1. 26. Automated Developer Tests
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      2. 27. Test-Last Development
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. References
      3. 28. Test-First Development
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      4. 29. Refactoring
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      5. 30. Continuous Integration
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      6. 31. Simple Design
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      7. 32. Functional Tests
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
          1. Item Inventory Management Tests
          2. Benefits of Automated Functional Tests
        6. Adoption
        7. But
          1. Implementation Smells
          2. Architecture Smells
        8. Variations
        9. References
      8. 33. Collective Code Ownership
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      9. 34. Pair Programming
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
    13. 3.3. Supporting Practices
      1. 35. Coach
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      2. 36. Engage the Community
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      3. 37. Reading Circle
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      4. 38. Workshop
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      5. 39. Classroom Training
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
    14. 3.4. The Clusters
      1. 40. Agile Iteration
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      2. 41. Communication Cluster
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      3. 42. Evolutionary Design
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      4. 43. Test-Driven Development
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
      5. 44. Test-Driven Requirements
        1. Business Value
        2. Sketch
        3. Context
        4. Forces
        5. Therefore
        6. Adoption
        7. But
        8. Variations
        9. References
    15. 4. Case Studies
      1. 45. BabyCenter
        1. BabyCenter Agile Adoption Effort—Q1 2007
          1. Crafting an Agile Practice Adoption Strategy
            1. Determine Business Value
            2. Weigh Activities and Technologies in Relation to Business Values
            3. Incrementally Apply Sets of Practices That Correspond to Value Sought
          2. Conclusions
        2. BabyCenter Agile Adoption Effort Revisited—Q1 2008
      2. 46. Company X
        1. Company X Agile Adoption Effort—Q1–Q2 2007
          1. Context for This Report
          2. Current Business Goals
          3. From the Trenches
            1. QA Team
            2. Systems
            3. Remote Output
            4. OS
            5. Core System (Digital Output, Scheduler, and Imaging)
              1. Digital Output
              2. Scheduler
              3. Imaging
            6. What Currently Works
            7. Current Problems
          4. Suggested Practices for the Remainder of 2007
            1. Go Faster Practices
            2. Go Slower Practices
            3. Increase Quality Practices
            4. Moving Forward
            5. Proof and Concerns
          5. Long Term
          6. Conclusion
        2. Company X Agile Adoption Effort—Revisited
          1. Current State
    16. 5. Appendices
      1. A. Pattern to Business Value Mappings
      2. B. Pattern-to-Smell Mappings
      3. C. Getting the Most from Agile Practice Patterns
        1. Reading a Pattern Effectively
      4. D. Further Reading
        1. Working with People
        2. Theory of Constraints
        3. Lean Manufacturing and Lean Software
        4. OO Analysis and Design
      5. Bibliography