Agile Adoption Patterns: A Roadmap to Organizational Success

Agile Adoption Patterns: A Roadmap to Organizational Success

by Amr Elssamadisy
Agile Adoption Patterns: A Roadmap to Organizational Success

Agile Adoption Patterns: A Roadmap to Organizational Success

by Amr Elssamadisy

eBook

$35.99  $47.99 Save 25% Current price is $35.99, Original price is $47.99. You Save 25%.

Available on Compatible NOOK devices, the free NOOK App and in My Digital Library.
WANT A NOOK?  Explore Now

Related collections and offers


Overview

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.

 


Product Details

ISBN-13: 9780132702478
Publisher: Pearson Education
Publication date: 06/27/2008
Sold by: Barnes & Noble
Format: eBook
Pages: 408
File size: 2 MB
Age Range: 18 Years

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.

 

Read an Excerpt

PrefacePreface

In this book, you and I focus on adoption of agile practices. I help you answer basic questions that are on your mind:

  • Where do I start?

  • What practice(s) are best for my particular environment?

  • How can I adopt these practices incrementally?

  • What pitfalls should I watch out for?

Is This Book for You?

Are you adopting one or more Agile practices or seriously thinking about trying out one or more practices on your team? Have you read any of the Agile methodology books on Extreme Programming, Scrum, or Test-Driven Development, and are you theoretically convinced about at least trying the practices?

Or perhaps you're coming off your first project and you've been asked to join another team to help them succeed as you did previously. Of course, every project is different. Are the same practices you used the last time going to be as effective on the next project? It depends! This book helps you get past "It depends!" to determine what practices should be adopted and give you some hints how they may need to be adapted.

Or maybe you are unlucky enough to have been part of a failing Agile project (or possibly are still on one). Read this book to get an idea why the practices you are using may not be applicable. Be agile about your Agile practices.

If any of these scenarios fit, this book is for you. It helps you look at the individual practices and their relationships and gives you a strategy that has been used successfully several times on multiple projects by multiple companies. It also provides you with warnings concerning how practices have gone wrong before and how you can recognize andrespond to the problems that occur. This is not just one person's opinion or an untried method. All the patterns you will read about here come from real-world project experience.

Finally, let me say a few words about who this book isn't for:

  • Advanced practitioners who already get agile practices and are looking for new theories or practices. All the information in this book is collected from the experience of multiple projects, so chances are you've already heard about everything here.

  • Beginners who want to start from zero. This book does not adequately describe the practices from ground zero. However, this book will be a good companion to other works that delve more deeply into full agile practices.

The Plan

I give you even more questions that you should consider and answer on your journey toward adopting agile practices. Does this sound too good to be true? It isn't really. Many of us who have been in the Agile community for several years have figured this out the hard waymdby trial and error. This book shares those experiences. Here is an overview of what you will be able to accomplish by reading this book.

  • Understand some of the basic drivers or principles and values that underlie all Agile practices and make them successful.

  • Focus on business value to the customer. List important areas of value to many customers. An example of a business value would be Reduce Cost.

  • Introduce symptoms that occur when business value is not being delivered. I'll call these symptoms smells. An example of a smell related to the Reduce Cost business value is Customer Asks for Everything Including the Kitchen Sink.

  • Tie these business values and smells to individual agile practices.

  • Use the information in the first three items to decide which practices to adopt to increase your business value and remove the smells present at your company. At this point, you will be able to come up with a coarse-grained adoption strategy for your environment.

  • Provide a detailed description of each practice in pattern format, and include adoption information for each practice.

  • Call out practices that work well together as clusters. Relate these clusters to business values and smells. Describe the clusters and adoption strategies as done for the practices.

Structure and Content

This book is organized into several parts and subparts, so a quick overview of the structure and content of those parts is in order. I recommend that you read chapters 1 through 8 straight through and do all the exercises where applicable. This will give you essential context concerning software development so that you and I are on the same page, take you step by step through the creation of an Agile adoption strategy tailored to your organization's context, and introduce you to the pattern format in which all the practices are presented in the pattern catalog.

After you have finished these eight chapters, use Part III of the book as a reference to implement the strategy you've created. Skip around or read straight through. Both will work; you can read the patterns presented independently. Each chapter will help you adopt a particular practice, warn you of pitfalls, and give you references for further reading.

Read the case studies to get a feel for how this approach has translated to other organizations, but bewaremdit gets messy in real-life situations. Finally, the appendixes are chapters that were too useful not to include but didn't quite fit in with the flow of the book. They are short, so feel free to take a look at them at any time throughout your reading.Part I: Thoughts about Software Development

Part I covers some basic issues of software development and sets the context for the rest of the book. I examine reasons why software development is so difficult. I also look at why adoption of new practicesmdany practices, not just Agile practicesmdare difficult and depend on your personal involvement and commitment. Read the chapters in this section, and keep the ideas in the back of your mind as you go through the rest of the book.

  • Chapter 1
    "Learning Is the Bottleneck"

  • Chapter 2 "Personal Agility for Potent Agile Adoption"

Part II: Crafting an Agile Adoption Strategy

Part II starts to get into the meat of the problemmdpicking and choosing Agile practices for your particular context. By the time you are done with these chapters and have completed the exercises, you will have an initial set of practices that your team should start to adopt. Be aware that for the purposes of creating an adoption strategy, I will refer to many practices that are described in the remainder of the book. So don't worry if you have a set of practices to adopt that you do not completely understand yet. Their descriptions are in the later sections.

  • Chapter 3 "Business Value"

  • Chapter 4 "Smells"

  • Chapter 5 "Adopting Agile Practices"

Part III: The Pattern Catalog

Part III is the pattern catalog. The pattern catalog details how to successfully adopt and adapt the practices that you've determined in Part II meet your organization's business goals. This section should be used as a reference to put your adoption plan to practice. Read Chapters 6, 7, and 8 ,and then use the rest on an as-needed basis to execute your adoption strategy. Note that the practices are organized into subparts as well.

  • Chapter 6 "The Patterns of Agile Practice Adoption"

  • Chapter 7 "Goal"

  • Chapter 8 "Cycle"

Part 3.1 Feedback Practices

The feedback practices are predominantly concerned with working as a team and planning functions. They are practices that help you and your team "solve the right problem" by iteratively building your software system and consistently checking whether the system solves the needs of the customer.

  • Chapter 9 "Iteration"

  • Chapter 10 "Kickoff Meeting"

  • Chapter 11 "Backlog"

  • Chapter 12 "Planning Poker"

  • Chapter 13 "Stand-Up Meeting"

  • Chapter 14 "Done State"

  • Chapter 15 "Demo"

  • Chapter 16 "Retrospective"

  • Chapter 17 "Release Often"

  • Chapter 18 "Co-Located Team"

  • Chapter 19 "Self-Organizing Team"

  • Chapter 20 "Cross-Functional Team"

  • Chapter 21 "Customer Part of Team"

  • Chapter 22 "Evocative Document"

  • Chapter 23 "User Story"

  • Chapter 24 "Use Case"

  • Chapter 25 "Information Radiator"

Part 3.2 Technical Practices

The technical practices are concerned with "solving the problem right" by creating and maintaining the code of your software system. They are the bit-head practices that your team will use to build and evolve the software system.

  • Chapter 26 "Automated Developer Tests"

  • Chapter 27 "Test-Last Development"

  • Chapter 28 "Test-First Development"

  • Chapter 29 "Refactoring"

  • Chapter 30 "Continuous Integration"

  • Chapter 31 "Simple Design"

  • Chapter 32 "Automated Functional Tests"

  • Chapter 33 "Collective Code Ownership"

  • Chapter 34 "Pair Programming"

Part 3.3 Supporting Practices

These are not Agile practices per se, but they are practices that you can use to support your team's adoption and introduce change into your organization.

  • Chapter 35 "Coach"

  • Chapter 36 "Engage the Community"

  • Chapter 37 "Reading Circle"

  • Chapter 38 "Workshop"

  • Chapter 39 "Classroom Training"

Part 3.4 The Clusters

The clusters of practices are sets of Agile practice patterns that work especially well together. The first two clusters are focused on people, interactions, and teamwork. The practices that make up these clusters enable a team to recognize change as it happens and provide a working process for responding to those changes. The last three clusters are technical in nature and give the team the technical ability to respond to changes as they occur.

  • Chapter 40 "Agile Iteration"

  • Chapter 41 "Communication Cluster"

  • Chapter 42 "Evolutionary Design"

  • Chapter 43 "Test-Driven Development"

  • Chapter 44 "Test-Driven Requirements"

Part IV Case Studies

These are reports of two different adoption efforts. They get beyond the theory and show how two organizations are working through their Agile adoption. One has been very successful, and the other is still struggling. Both are real companies, with real people and real politics. It gets messy. But, in the end, so will your adoption effort before you succeed.

  • Chapter 45 "Case Study: BabyCenter"

  • Chapter 46 "Case Study: Company X"

Appendixes

The appendixes contain material that does not quite fit in the main flow of the book but that could be useful to you.

  • Appendix A "Pattern to Business Value Mappings"

  • Appendix B "Pattern to Smell Mappings"

  • Appendix C "Getting the Most from Agile Practice Patterns"

  • Appendix D "Further Reading"

How to Read this Book

Okay. So enough about what you are going to do. How do you do it? The first thing you have to do is come up with a set of agile development practices for you and your team. You can do that by reading Part I and taking the time to do the exercises at the end of Chapters 3, 4, and 5. It is important that you spend the time to work through the exercises. After completing these chapters, you will have a list of prioritized practices to consider.

At that point, you can start with the third part of the bookmdthe patterns. You will use the list of practices on your list to "dig deep" by reading each pattern and deciding if it is really applicable to your environment. When you find a practice that matches, you and your team will start adopting it incrementally using the guidance in that pattern. You'll also watch out for symptoms of that practice going bad by using the guidance in the "smells" documented in each pattern.

Finally, you'll continuously evaluate the effectiveness of the practices you've adopted and adapt them to get greater value from them for your business. Start right now by turning to the next chapter.

© Copyright Pearson Education. All rights reserved.

Table of Contents

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

 

Preface

Preface

In this book, you and I focus on adoption of agile practices. I help you answer basic questions that are on your mind:

  • Where do I start?

  • What practice(s) are best for my particular environment?

  • How can I adopt these practices incrementally?

  • What pitfalls should I watch out for?

Is This Book for You?

Are you adopting one or more Agile practices or seriously thinking about trying out one or more practices on your team? Have you read any of the Agile methodology books on Extreme Programming, Scrum, or Test-Driven Development, and are you theoretically convinced about at least trying the practices?

Or perhaps you're coming off your first project and you've been asked to join another team to help them succeed as you did previously. Of course, every project is different. Are the same practices you used the last time going to be as effective on the next project? It depends! This book helps you get past "It depends!" to determine what practices should be adopted and give you some hints how they may need to be adapted.

Or maybe you are unlucky enough to have been part of a failing Agile project (or possibly are still on one). Read this book to get an idea why the practices you are using may not be applicable. Be agile about your Agile practices.

If any of these scenarios fit, this book is for you. It helps you look at the individual practices and their relationships and gives you a strategy that has been used successfully several times on multiple projects by multiple companies. It also provides you with warnings concerning how practices have gone wrong before and how you can recognize and respond to the problems that occur. This is not just one person's opinion or an untried method. All the patterns you will read about here come from real-world project experience.

Finally, let me say a few words about who this book isn't for:

  • Advanced practitioners who already get agile practices and are looking for new theories or practices. All the information in this book is collected from the experience of multiple projects, so chances are you've already heard about everything here.

  • Beginners who want to start from zero. This book does not adequately describe the practices from ground zero. However, this book will be a good companion to other works that delve more deeply into full agile practices.

The Plan

I give you even more questions that you should consider and answer on your journey toward adopting agile practices. Does this sound too good to be true? It isn't really. Many of us who have been in the Agile community for several years have figured this out the hard waymdby trial and error. This book shares those experiences. Here is an overview of what you will be able to accomplish by reading this book.

  • Understand some of the basic drivers or principles and values that underlie all Agile practices and make them successful.

  • Focus on business value to the customer. List important areas of value to many customers. An example of a business value would be Reduce Cost.

  • Introduce symptoms that occur when business value is not being delivered. I'll call these symptoms smells. An example of a smell related to the Reduce Cost business value is Customer Asks for Everything Including the Kitchen Sink.

  • Tie these business values and smells to individual agile practices.

  • Use the information in the first three items to decide which practices to adopt to increase your business value and remove the smells present at your company. At this point, you will be able to come up with a coarse-grained adoption strategy for your environment.

  • Provide a detailed description of each practice in pattern format, and include adoption information for each practice.

  • Call out practices that work well together as clusters. Relate these clusters to business values and smells. Describe the clusters and adoption strategies as done for the practices.

Structure and Content

This book is organized into several parts and subparts, so a quick overview of the structure and content of those parts is in order. I recommend that you read chapters 1 through 8 straight through and do all the exercises where applicable. This will give you essential context concerning software development so that you and I are on the same page, take you step by step through the creation of an Agile adoption strategy tailored to your organization's context, and introduce you to the pattern format in which all the practices are presented in the pattern catalog.

After you have finished these eight chapters, use Part III of the book as a reference to implement the strategy you've created. Skip around or read straight through. Both will work; you can read the patterns presented independently. Each chapter will help you adopt a particular practice, warn you of pitfalls, and give you references for further reading.

Read the case studies to get a feel for how this approach has translated to other organizations, but bewaremdit gets messy in real-life situations. Finally, the appendixes are chapters that were too useful not to include but didn't quite fit in with the flow of the book. They are short, so feel free to take a look at them at any time throughout your reading.

Part I: Thoughts about Software Development

Part I covers some basic issues of software development and sets the context for the rest of the book. I examine reasons why software development is so difficult. I also look at why adoption of new practicesmdany practices, not just Agile practicesmdare difficult and depend on your personal involvement and commitment. Read the chapters in this section, and keep the ideas in the back of your mind as you go through the rest of the book.

  • Chapter 1 "Learning Is the Bottleneck"

  • Chapter 2 "Personal Agility for Potent Agile Adoption"

Part II: Crafting an Agile Adoption Strategy

Part II starts to get into the meat of the problemmdpicking and choosing Agile practices for your particular context. By the time you are done with these chapters and have completed the exercises, you will have an initial set of practices that your team should start to adopt. Be aware that for the purposes of creating an adoption strategy, I will refer to many practices that are described in the remainder of the book. So don't worry if you have a set of practices to adopt that you do not completely understand yet. Their descriptions are in the later sections.

  • Chapter 3 "Business Value"

  • Chapter 4 "Smells"

  • Chapter 5 "Adopting Agile Practices"

Part III: The Pattern Catalog

Part III is the pattern catalog. The pattern catalog details how to successfully adopt and adapt the practices that you've determined in Part II meet your organization's business goals. This section should be used as a reference to put your adoption plan to practice. Read Chapters 6, 7, and 8 ,and then use the rest on an as-needed basis to execute your adoption strategy. Note that the practices are organized into subparts as well.

  • Chapter 6 "The Patterns of Agile Practice Adoption"

  • Chapter 7 "Goal"

  • Chapter 8 "Cycle"

Part 3.1 Feedback Practices

The feedback practices are predominantly concerned with working as a team and planning functions. They are practices that help you and your team "solve the right problem" by iteratively building your software system and consistently checking whether the system solves the needs of the customer.

  • Chapter 9 "Iteration"

  • Chapter 10 "Kickoff Meeting"

  • Chapter 11 "Backlog"

  • Chapter 12 "Planning Poker"

  • Chapter 13 "Stand-Up Meeting"

  • Chapter 14 "Done State"

  • Chapter 15 "Demo"

  • Chapter 16 "Retrospective"

  • Chapter 17 "Release Often"

  • Chapter 18 "Co-Located Team"

  • Chapter 19 "Self-Organizing Team"

  • Chapter 20 "Cross-Functional Team"

  • Chapter 21 "Customer Part of Team"

  • Chapter 22 "Evocative Document"

  • Chapter 23 "User Story"

  • Chapter 24 "Use Case"

  • Chapter 25 "Information Radiator"

Part 3.2 Technical Practices

The technical practices are concerned with "solving the problem right" by creating and maintaining the code of your software system. They are the bit-head practices that your team will use to build and evolve the software system.

  • Chapter 26 "Automated Developer Tests"

  • Chapter 27 "Test-Last Development"

  • Chapter 28 "Test-First Development"

  • Chapter 29 "Refactoring"

  • Chapter 30 "Continuous Integration"

  • Chapter 31 "Simple Design"

  • Chapter 32 "Automated Functional Tests"

  • Chapter 33 "Collective Code Ownership"

  • Chapter 34 "Pair Programming"

Part 3.3 Supporting Practices

These are not Agile practices per se, but they are practices that you can use to support your team's adoption and introduce change into your organization.

  • Chapter 35 "Coach"

  • Chapter 36 "Engage the Community"

  • Chapter 37 "Reading Circle"

  • Chapter 38 "Workshop"

  • Chapter 39 "Classroom Training"

Part 3.4 The Clusters

The clusters of practices are sets of Agile practice patterns that work especially well together. The first two clusters are focused on people, interactions, and teamwork. The practices that make up these clusters enable a team to recognize change as it happens and provide a working process for responding to those changes. The last three clusters are technical in nature and give the team the technical ability to respond to changes as they occur.

  • Chapter 40 "Agile Iteration"

  • Chapter 41 "Communication Cluster"

  • Chapter 42 "Evolutionary Design"

  • Chapter 43 "Test-Driven Development"

  • Chapter 44 "Test-Driven Requirements"

Part IV Case Studies

These are reports of two different adoption efforts. They get beyond the theory and show how two organizations are working through their Agile adoption. One has been very successful, and the other is still struggling. Both are real companies, with real people and real politics. It gets messy. But, in the end, so will your adoption effort before you succeed.

  • Chapter 45 "Case Study: BabyCenter"

  • Chapter 46 "Case Study: Company X"

Appendixes

The appendixes contain material that does not quite fit in the main flow of the book but that could be useful to you.

  • Appendix A "Pattern to Business Value Mappings"

  • Appendix B "Pattern to Smell Mappings"

  • Appendix C "Getting the Most from Agile Practice Patterns"

  • Appendix D "Further Reading"

How to Read this Book

Okay. So enough about what you are going to do. How do you do it? The first thing you have to do is come up with a set of agile development practices for you and your team. You can do that by reading Part I and taking the time to do the exercises at the end of Chapters 3, 4, and 5. It is important that you spend the time to work through the exercises. After completing these chapters, you will have a list of prioritized practices to consider.

At that point, you can start with the third part of the bookmdthe patterns. You will use the list of practices on your list to "dig deep" by reading each pattern and deciding if it is really applicable to your environment. When you find a practice that matches, you and your team will start adopting it incrementally using the guidance in that pattern. You'll also watch out for symptoms of that practice going bad by using the guidance in the "smells" documented in each pattern.

Finally, you'll continuously evaluate the effectiveness of the practices you've adopted and adapt them to get greater value from them for your business. Start right now by turning to the next chapter.

© Copyright Pearson Education. All rights reserved.

From the B&N Reads Blog

Customer Reviews