- Take an Extra 30% Off Any Book: Use promo code HOLIDAY30 at checkout to get an extra 30% off any book for a limited time. Excludes Kindle eBooks and Audible Audiobooks. Restrictions apply. Learn more
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your email address or mobile phone number.
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.
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?
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.
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.
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 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 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 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"
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"
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"
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"
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"
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"
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"
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.
A very practical book. It will prove to be a useful reference book as well.Published 14 months ago by Rubicon
This book is excellent to get the bigger picture of what agile development is. It is based on some of the classics of Agile books and studies together with real case studies. Read morePublished 23 months ago by Amazon Customer
Really good book with a lot of techniques I can use at my day-to-day work. Good choice for everyone who already knows agile project management methodologies and would like to... Read morePublished on September 29, 2013 by Karolina
This book has some great information and insights that will help management with agile adoption. From strategy to implementing scrum. Read morePublished on June 2, 2013 by Nics
This is an entirely useful and completely practical guide to essential Agile practices from author Amr Elssamadisy.
Amr is a personal friend. But wait...keep reading. Read more
Agile adoption is not a technical problem - it's about people, organizations, processes, and group and individual psychology. Read morePublished on September 24, 2009 by Craig Knighton
A very well written book, focusing on the business value. It appeals to all the members of the agile and "wanna be agile" communities!Published on August 25, 2009 by Bharadwaj Velamakanni
Well written and practical way to introduce agile to organizations based on business value. I love the diagrams that list business values (time to market, quality to market,... Read morePublished on April 7, 2009 by Ed Kraay
Amazon says kindle previews are supposed to be the first chapter, yet this book doesnt even get half way through the foward. it is all TOC and praise. Read morePublished on February 26, 2009 by Goodell-Murphy