About the Book
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
About the Author:
Amr Elssamadisy (www.elssamadisy.com) is a software development practitioner who works with his clients to build better, more valuable software. He and his colleagues at Gemba Systems help both small and large development teams learn new technologies, adopt and adapt appropriate Agile development practices, and focus their efforts to maximize the value they bring to their organizations. Amr's technical background and experience in C/C++, Java/J2EE, and .NET allows him to appreciate the problems of development teams and offer them support. At the same time, he realizes that most problems-even in software-are people problems that are not solved by tools and technology. Therefore, Amr and his colleagues at Gemba Systems focus on issues such as personal agility, team building, communication, feedback, and all the other soft skills that distinguish excellent teams. Amr is also the author of
Patterns of Agile Practice Adoption: The Technical Cluster. He is an editor for the AgileQ at
InfoQ, a contributor to the
Agile Journal, and a frequent presenter at software development conferences.