Read an Excerpt
In this book, you and I focus on adoption of agile practices. I help you answer basic questions that are on your mind:
Is This Book for You?
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?
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.
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.
Structure and Content
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.
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. 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.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.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.
Part 3.2 Technical Practices
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"
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.
Part 3.3 Supporting Practices
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"
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.
Part 3.4 The Clusters
Chapter 35 "Coach"
Chapter 36 "Engage the Community"
Chapter 37 "Reading Circle"
Chapter 38 "Workshop"
Chapter 39 "Classroom Training"
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.
Part IV Case Studies
Chapter 40 "Agile Iteration"
Chapter 41 "Communication Cluster"
Chapter 42 "Evolutionary Design"
Chapter 43 "Test-Driven Development"
Chapter 44 "Test-Driven Requirements"
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.Appendixes
The appendixes contain material that does not quite fit in the main flow of the book but that could be useful to you.
How to Read this Book
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"
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.