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