This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Praise for Succeeding with Agile “Understanding the mechanics of an agile process is just not enough. Mike Cohn has compiled a superb and comprehensive collection of advice that will help individuals and teams with the intricate task of adopting and adapting agile processes to fit their specific challenges. This book will become the definitive handbook for agile teams.” —Colin Bird, Global Head of Agile, EMC Consulting “Mike Cohn’s experience working with so many different organizations in the adoption of agile methods shines through with practical approaches and valuable insights. If you really want agile methods to stick, this is the book to read.” —Jeff Honious,Vice President, Innovation, Reed Elsevier “Mike Cohn has done it again. Succeeding with Agile is based on his experience, and all of our experience, with agile to date. He covers from the earliest days of the project up to maturity and offers advice for the individual, the team, and the enterprise. No matter where you are in the agile cycle, this book has something for you!” —Ron Jeffries, www.XProgramming.com “If you want to start or take the next step in agile software development, this book is for you. It discusses issues, great solutions, and helpful guidelines when scaling up in agile projects. We used the guidelines from this book extensively when we introduced agile in a large, FDA-regulated department.” —Christ Vriens, Department Head of MiPlaza, part of Philips Research “If making the move to agile has always baffled you, then this book will unlock its mysteries. Mike Cohn gives us all the definitive, no-nonsense guide to transforming your organization into a high-powered, innovative, and competitive success.” —Steve Greene, Senior Director, Program Management and Agile Development, www.salesforce.com “Mike Cohn is a great advisor for transforming your software organization. This book is a distillation of everything Mike has learned over the years working with companies that are trying to become more agile. If you are thinking of going agile, pick up this book.” —Christopher Fry, Ph.D.,Vice President Development, Platform, www.salesforce.com “Whether you’re just starting out or have some Scrum experience under your belt, in Succeeding with Agile, Mike Cohn provides a wealth of information to guide you in your quest toward continuous improvement. Throughout the book, concepts are reinforced with practical everyday advice, including how to handle objections and thought-provoking ‘things to try now.’ An extensive list of recommended readings round this out to be a must have book.” —Nikki Rohm, Studio Director Project and Resource Management, Electronic Arts
“The first steps along the path of improving your software process with Scrum are hard, and every step reveals new challenges. In Succeeding with Agile, Mike Cohn shows how other organizations have followed this path, how you can learn from them to have a successful implementation of Scrum, and put your organization on the path of constant improvement and delivery of value.” —Johanes Brodwall, Chief Scientist, Steria Norway “I began to recommend Mike Cohn’s new book as soon as I began to review it. It seems that as soon as someone asked me a question about some corner of agile development, I would realize that I had just read something excellent in one of Mike’s chapters. I am so glad the book is finally out so I can stop saying, ‘Mike Cohn has a great new book coming out soon that will talk about this problem.’ Now I can say, ‘Mike’s book is out! Get it!’” —Linda Rising, Coauthor with Mary Lynn Manns of Fearless Change: Patterns for Introducing New Ideas “The title says it all; this is an astonishingly insightful and pragmatic guide to succeeding with agile software development. If you only read one agile book, this is the one. I want to give it to all my clients now!” —Henrik Kniberg, Agile Coach, Agile Alliance Board Member, Author of Scrum and XP from the Trenches “Mike Cohn blends thorough theoretical knowledge with practical hands-on techniques. This is another great agile book from Mike. It will help your team, your department, or your whole organization Succeed with Agile.” —Matt Truxaw, Application Delivery Manager, Kaiser Permanente IT, Certified Scrum Master “Mike Cohn’s new book is the definitive guide for companies transitioning to Scrum. Its contents are practical and easily accessible. Get it, read it, and apply it!” —Roman Pichler, Author of Agile Product Management with Scrum “Succeeding with Agile is at once enormously practical, deeply insightful, and a pleasure to read. It combines great ideas with stories and examples from around the software industry and will appeal to a wide range of readers, from those looking to adopt a new company-wide agile process to developers who just need to improve the way a team is running a single project.” —Andrew Stellman, Developer, Project Manager, and Author of Head First PMP, Beautiful Teams, Applied Software Project Management “Adopting agile methods is hard enough on a greenfield web app in a small company. Transforming an enterprise is another matter. This book captures challenges like the ones we faced and offers insight and, more importantly, practical approaches.” —Michael Wollin, Senior Development Manager, Broadcast Production Systems, CNN
“Mike Cohn has put together a fantastic book of guidelines to not only start the Scrum implementation, but to turn your entire corporation into an agile community. I have already implemented many of the recommendations included in this text and have seen a positive influence on the support for Scrum within our organization.” —James Tischart, CSM, CSP, CTFL,Vice President, Product Delivery, Mx Logic, Inc “In Succeeding with Agile, Mike Cohn has scoured and sifted through the collective experience and lessons of not only scores of different projects, teams, and organizations from his own agile experience, but also from the experience of countless others. He provides realworld stories from the trenches, useful data and studies, and invaluable insights into what has and hasn’t worked well when adopting, adapting, and scaling Scrum. What I like best about the book is where Mike provides wisdom on several different alternatives and approaches and the circumstances in which each is most suitable.” —Brad Appleton, Internal Agile Consultant at a Fortune 100 telecommunications company “I believe Mike Cohn’s book will answer many questions and issues that people and teams struggle with in terms of how to improve collaboration, communication, quality, and team productivity. I especially appreciate and agree with Mike’s statement that ‘there can be no end state in a process that calls for continuous improvement.’ This is hard work and it requires persistence, teamwork, and good people. I plan to make Succeeding with Agile mandatory reading within my organization, just like we did with his book on Agile Estimating and Planning.” —Scott Spencer,Vice President Engineering, First American CoreLogic, Inc. “Mike Cohn has done it again. This comprehensive study of agile software development provides numerous techniques and methodologies to achieve success. I enthusiastically recommend this book to anyone who wants to start using agile or wants to improve their software development process.” —Benoit Houle, Senior Development Manager, BioWare (a Division of Electronic Arts) “There’s no doubt that Mike Cohn’s new book will become the reference on how to run software projects with Scrum. The book is very carefully crafted and avoids the trap of giving you the one, simple recipe to all your problems. Though mainly centered on Scrum, Mike draws on various other techniques to produce a handbook that is thorough and complete. This is not a hasty mash-up supported by just an act of faith or a single experience. The examples are credible and are a testimony of Mike’s vast personal experience of the topic.” —Philippe Kruchten, Professor of Software Engineering at University of British Columbia “This book is packed with useful advice on how your organization can become agile. It’s a practical handbook for coaches and change agents who face real-world challenges, such as scaling agile for distributed teams, and who seek to engage with the wider organization. I love the way that Mike Cohn brings the book to life with stories from situations he’s faced in the industry and follows up with data and insights from research. I learned something new from every chapter, and I bet you will too.” —Rachel Davies, Coauthor of Agile Coaching
Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
Succeeding with Agile
Download from www.wowebook.com
Succeeding with Agile Software development using Scrum
Mike cohn
Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Cape Town • Sydney • Tokyo • Singapore • Mexico City
Editor-in-Chief Karen Gettman Executive Editor Chris Guzikowski Senior Development Editor Chris Zahn Managing Editor Kristy Hart Project Editor Jovana San Nicolas-Shirley Copy Editor San Dee Phillips Indexer Lisa Stumpf Proofreader Karen Gill Publishing Coordinator Raina Chrobak Cover Designer Alan Clements Compositors Jake McFarland Bumpy Design
Pearson Education, Inc. Rights and Contracts Department 501 Boylston Street, Suite 900 Boston, MA 02116 Fax (617) 671-3447 ISBN-13: 978-0-321-57936-2 ISBN-10: 0-321-57936-4 Text printed in the United States on recycled paper at Edwards Brothers in Ann Arbor, Michigan. Second printing January 2010
Download from www.wowebook.com
To Laura, Savannah, and Delaney for making me the one who knows.
All the time I hear people talking about software projects as journeys, and I think
they are implying that software projects are not just journeys, but they are journeys into the unknown. We start with funding from a sponsor, muster together a stout-hearted crew, head out in what we guess might be a useful direction, and the rest is The Odyssey. We live the tales of the brave Odysseus: tales of Lotus Eaters, the Cyclops, Circe, the Sirens, Scylla, and Calypso. We succeed or fail only with the help or rage of the gods. How wonderfully romantic, and how perfectly silly. I think that the more appropriate analogy along this line is the project as an expedition.We have a goal or a short list of goals.We have some well-proven maps; we have some vaguer ones, too. We have the advice and journals from those who have been out there and made it back to tell their stories. We don’t walk out the door and face the unknown; but on the other hand, there are some big question marks, and these bring us into a high-risk position.We accept these risks, because if the expedition can succeed there are surely significant rewards. We have skills, but there are uncertainties. How do we deal with this? I recommend that we look back, oh, about 300 years, to the York Factory on Hudson Bay in Canada. At that time this was the headquarters of the Hudson Bay Company. The Hudson Bay Company’s main line of business was to be the supplier of all necessary provisions for fur traders going out on, you guessed it, expeditions, from Hudson Bay.The fur traders developed a great way to start an expedition, and it was called “The Hudson Bay Start.” Having done their one-stop shopping at The Company, the fur traders would go out of Hudson Bay only a mile or two and set up camp.Why? Certainly not to set up traps; they wanted to discover what they forgot to bring while they were less than an hour’s hike back into town! Being the excellent project person that you are, you know that for the vast majority of time the leather-faced expert fur trader would reappear for another shopping trip. What the heck does all this have to do with the book in your hands right now? With Succeeding with Agile, Mike Cohn has delivered The Hudson Bay Start for agile development. This is it. This is a weather-beaten experienced fur trapper giving you the checklist to work through before you begin your expedition. By reading this book, you will find that Mike brings up issues that you never thought of, offers advice on how you might handle situations, and helps you define new roles on your team.
xvii
Download from www.wowebook.com
Don’t be the only person on your team to read this book; with self-organizing teams anyone can be expedition leader at any given time. This book is going to lead to many very interesting discussions; I guarantee it. I worry a bit that I am saying that Mike has handed you a book without choices for you. He points out early and often that you must make your choices on individual, team, and organizational issues. Succeeding with Agile is not about having a single successful project; it is about how agility can transform an organization. I guess in Hudson Bay terms, it’s about how to have a great career as Voyageurs. If you have any lingering doubts about Mike as an experienced expedition leader, notice that his company is Mountain Goat Software. Tim Lister Principal, The Atlantic Systems Guild, Inc. New York City
xviii Download from www.wowebook.com
Acknowledgments
I owe a tremendous debt to my official reviewers: Brad Appleton, Johannes Brodwall, Rachel Davies, Ron Jeffries, Brian Marick, and Linda Rising. They read and commented on the entire manuscript, sometimes multiple times. Each offered tremendously valuable insights that have immeasurably improved the book. Special thanks also to Tod Golding, Kenny Rubin, Rebecca Traeger, and my wife, Laura, who spent hours discussing the table of contents with me.There were times we thought those conversations would never end. There’s no way to thank Rebecca Traeger enough. She is a miracle worker as an editor, adviser, and sounding board. As she is the former editor for the Agile Alliance and the Scrum Alliance, I contend that she is the best-read person in the agile world. She’s also the world’s greatest editor. She worked wonders with this book, doing more slicing and dicing than a Veg-O-Matic on a late-night infomercial. This book is significantly better for her involvement in it. Wow. A foreword by Tim Lister. I’m incredibly honored. I’ve known Tim for a handful of years, and so I e-mailed him to ask if he’d write the Foreword. I didn’t know it, but he was vacationing at the time I e-mailed him and so he replied a week later. I saw the e-mail reply first on my phone, which only displayed the first two lines. Before I tapped the message to see the full e-mail, I had flashbacks of getting college admission letters—would it be good news or bad news? I was ecstatic when he said yes. I was then doubly thrilled when he had such nice things to say in his Foreword. Thank you, Tim. My assistant, Jennifer Rai, provided invaluable help throughout this project. From tracking down references, to getting permissions, to keeping my research organized, she did it all. I appreciate her dedication, professionalism, and the consistent thoroughness of her work. I couldn’t ask for more in an assistant. For the past two years I have been posting chapters to this book’s website at www.SucceedingWithAgile.com. I have been fortunate to have had a wonderful group of people download, review chapters, and provide comments to me. I would like to thank the following individuals for reading draft chapters posted on that site or for providing anecdotes that made their way into the book: Fridtjof Ahlswede, Peter Alfvin, Ole Andersen, Joshua Boelter, Mikael Boman, Rowan Bunning, Butterscotch, Bill Campbell, Mun-Wai Chung, Scott Collins, Jay Conne, John Cornell, Lisa Crispin, Alan Dayley, Ken DeLong, Scott Duncan, Sigfrid Dusci, Mike Dwyer, Pablo Rodriguez Facal, Abby Fichtner, Hillel Glazer, Karen Greaves, Janet Gregory, Ratha Grimes, Geir Hedemark, Fredrik Hedman, Ben Hogan, Matt Holmes, Sue Holstad, Benoit Houle, Eric Jimmink, Quinn Jones, xix Download from www.wowebook.com
Martin Kearns, Jeff Langr, Paul Lear, Lowell Lindstrom, Catherine Louis, Rune Mai, Artem Marchenko, Kent McDonald, Susan McIntosh, Alicia McLain, Ulla Merz, Ralph Miner, Brian Lewis Pate, Trond Pedersen, David Peterson, Roman Pichler,Walter Ries, Adam Rogers, René Rosendahl, Kenny Rubin, Mike Russell, Michael Sahota, George Schlitz, Lori Schubring, Raffi Simonian, Jamie Tischart, Ryan Toone, Matt Truxaw, J. F. Unson, Srinivas Vadhri, Stefan van den Oord, Bas Vodde, Bill Wake, Daniel Wildt, Trond Wingård, Rüdiger Wolf, Elizabeth Woodward, Nick Xidis, Alicia Yanik, and Mauricio Zamora. Thank you to Jeff Schaich who did a wonderful job creating the illustrations for this book. When I was first introduced to Jeff, I was told he might be as much of a perfectionist as I am. He may be, and his drawings show it. Stephen Wilbers, author of Keys to Great Writing, provided some much needed editing and advice early on. I am thankful for his suggestions and encouragement. As always, the staff at Pearson was wonderful to work with. Chris Guzikowski showed tremendous patience with me, especially early on when I refused to commit to a deadline of any sort. Chris Zahn provided excellent guidance during those early days when I was working to organize what I wanted to say. Jake McFarland designed the interior of the book and did a wonderful job. Jake also showed tremendous patience with my endless barrage of InDesign questions, for which I am extremely thankful. Raina Chrobak was extremely helpful throughout the project, but especially down the home stretch, which is always a frantic period. Jovana San-Nicolas Shirley was fantastic as this book’s project editor. She kept everything moving smoothly, coordinating each of us involved in the final months of the project. I appreciate her willing replies to my e-mails at all hours of the day and night. San Dee Phillips did a top-notch (or is it top notch?) job for the final copy edit. I thank her for going over the manuscript at exactly the right level and for so carefully finding all the last little errors that really polished the text. Thank you as well to cover designer Alan Clements. What a beautiful cover! Can you judge a book by its cover? I hope so based on the number of people who have already told me they love this one. Lisa Stumpf did a marvelous job with our indexing. She herself should be indexed under thorough and meticulous. Karen Gill did the final proofreading and was fantastic at finding all the little inconsistencies and problems. Kim Scott of Bumpy Design took care of the final page composition. I appreciate her joining at the end to help all of us make the deadline. I would also like to thank Chris Guzikowski and Karen Gettman of Pearson for offering me the opportunity to edit a Signature Series of books for AddisonWesley. I can still clearly remember sitting at Ken Kaplan’s place in Ben Lomond in the woods of California in 1985 reading C Primer Plus. It was written by Stephen Prata but was part of a series by Mitchell Waite. I didn’t know what a series editor did, but it sounded important and cool. Now I’m learning what a series editor does and am incredibly honored by their confidence in me. xx Download from www.wowebook.com
My thanks also go to Lyssa Adkins, Lisa Crispin, Janet Gregory, Clinton Keith, Roman Pichler, and Kenny Rubin. Each has written or is writing a book that will be part of this series. We have had many discussions about writing, agile, how to make certain points, and more. Through these discussions, each has improved this book. A special thank you to all of my clients and to everyone who has ever attended one of my classes. I’m not smart enough to sit around, think big thoughts, and come up with great ideas on my own. Everything I know I’ve learned from working with teams and observing what worked or from talking with participants in classes. This book would be four pages long if not for you. Thank you. Thank you to Ken Schwaber, Jeff Sutherland, Mike Beedle, Jeff McKenna, Martine Devos, and others who were there in the earliest days of Scrum. Without them writing about Scrum, presenting about it at early conferences, and talking about it, Scrum wouldn’t be what it is today. Thank you as well to all of the trainers and coaches in the Scrum community who push so hard to improve how we do Scrum while pushing just as hard to keep Scrum from becoming more than the simple framework it is. My conversations with you so many of you have influenced me in more ways than you know. There’s no way to thank my family enough for all the sacrifices they made while allowing me the time to work on this book. I couldn’t ask for a more wonderful and loving wife than I have in Laura. Our daughters, Savannah and Delaney, remain my practically perfect precious princesses. I cherish every moment with them. And with this book finally done, I promise them many more hours and days doing all the things we haven’t done enough of lately—now it’s my turn to make you the ones who know how far love goes.
xxi
Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
About the Author
Mike cohn is the founder of Mountain Goat Software, through which he pro-
vides training and consulting on Scrum and agile software development. Mike specializes in helping companies adopt Scrum and become more agile as a way of building extremely high performance development organizations. In addition to this book, he is the author of User Stories Applied for Agile Software Development, Agile Estimating and Planning, and books on Java and C++ programming. With more than 25 years of experience, Mike has previously been a technology executive in companies of various sizes, from start-up to Fortune 40. He has also written articles for Better Software, IEEE Computer, Cutter IT Journal, Software Test and Quality Engineering, Agile Times, and the C/C++ Users Journal. Mike is a frequent speaker at industry conferences and is a founding member of the Agile Alliance and Scrum Alliance. He is also a Certified Scrum Trainer, having cotaught the first Certified ScrumMaster class with Ken Schwaber in May 2003. For more information, visit www.mountaingoatsoftware.com. Mike maintains a popular blog at blog.mountaingoatsoftware.com. He can also be found on Twitter as mikewcohn and by e-mail at [email protected].
xxiii
Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
Introduction
This is not a book for those who are completely new to Scrum or agile. There
are other books, classes, and even websites for that. If you are completely new to Scrum, start with one of those.1 Nor is this a book for purists. They can find many blogs that will argue the one, true way of agile or Scrum. This is a book for pragmatists. It is for those who have started with Scrum and then encountered problems or for those who have not yet started with Scrum but who know they want to. They don’t need to read again about how to draw a burndown chart or what three answers each person gives at the daily scrum. They need advice on the harder stuff—how to introduce and spread Scrum, how to get people to let go of doing a big design at the start of the project, how to deliver software that works by the end of each sprint, what managers do, and more. If these concerns sound familiar, this is a book for you. To answer these questions, this book draws on my experience with Scrum over the past 15 years, but especially over the last 4. For the last 4 years, every evening after I spent the day with one of my clients, I would go back to my hotel room and make notes about the problems they were facing, the questions they asked, and the advice I gave. I then followed up, either with return visits or e-mails. I wanted to know for sure what advice was working to solve which problems. As I collected the questions, problems, and advice, I was able to look for common themes. Some obstacles were completely unique to one client or one team. Others were more prevalent and repeated across many teams and organizations. It is these more universal problems—and my advice on overcoming them—that form the basis of this book. This advice is particularly evident in two ways: First, most chapters include boxes labeled Things to Try Now. These re-create the advice I found myself giving most often or that was most helpful in particular situations. Second, most chapters also include boxes labeled Objection. I have tried in these boxes to reproduce a typical conversation in which someone disagreed with the point I was making at the time. As you read these objections, try to hear the voice of some of your coworkers. I suspect you have heard many of the same objections. In these boxes, you will see how I’ve sought to overcome them. 1
A good starting point is www.mountaingoatsoftware.com/scrum. xxv
Download from www.wowebook.com
xxvi
Introduction
What Else I’ve Assumed About You Beyond assuming that you understand the basics of Scrum and now want to either introduce it into your organization or get good at it, I assume that you have some influence within the organization. That doesn’t mean I have aimed this book at directors, vice presidents, and the CEO. The type of influence I am assuming is just as likely to come from your personality and individual credibility with your coworkers as it is to come from whatever job title is on your business card. Sure, having a fancy title can help. But as we’ll see, the type of influence needed to succeed with Scrum more often comes from opinion leaders.
How This Book Is Organized When I began this book four years ago, my working subtitle was Getting Started and Getting Good, as those were the two things I really wanted to help with. In collecting anecdotes and giving advice, I realized that getting started and getting good at Scrum are the same thing. There are not separate techniques we apply to start and then different techniques we use to get good at it. Part I is about getting started—it includes advice on whether to start small or convert everyone at once, how to help people move from being aware that a new process is needed to desiring change to having the ability to do it, and how to select initial projects and teams.You will use the basic mechanisms introduced in this section not only to get started but also to get good. Among these are the improvement communities and improvement backlogs of Chapter 4, “Iterating Toward Agility.” In Part II, I focus on individuals and the changes each needs to make as part of the process of adopting Scrum. Chapter 6, “Overcoming Resistance,” describes the type of resistance some individuals may exhibit. In it, I offer advice for thinking about why someone is resistant and then provide guidance on how to help the person get past the resistance. Chapters 7 and 8 describe the new roles that exist on a Scrum project and the changes necessary in the traditional roles, such as programmer, tester, project manager, and so on. Chapter 9, “Technical Practices,” describes some of the technical practices (continuous integration, pair programming, test-driven development, and so on) that should be used or at least experimented with and that can change much of how individuals approach their day-to-day work. In Part III, we expand outward from individuals to teams.We look first at how to structure teams to best achieve the benefits of Scrum. Next, in Chapter 11,“Teamwork,” I cover the nature of teamwork on a Scrum project. In Chapter 12,“Leading a Self-Organizing Team,” we look at what it means to lead a self-organizing Scrum team. In that chapter, I provide specific advice for what ScrumMasters, functional
Download from www.wowebook.com
A Note on Some Terms
xxvii
managers, and other leaders can do to help a team self-organize for success. Chapters 13–15 round out Part Three with a discussion of sprints, planning, and quality. Part IV expands our focus outward once more, this time to the organization. In Chapter 17, “Scaling Scrum,” we take an extended look at what is necessary to scale Scrum up to work on large, multi-team projects. In Chapter 18, “Distributed Teams,” we consider the additional complexities of distributed teams. Then, in Chapter 19,“Coexisting with Other Approaches,” we add yet more complexity by discussing how to make Scrum work when part of the project uses a sequential process or when there are compliance or governance requirements. Part IV concludes with Chapter 20, “Human Resources, Facilities, and the PMO,” focusing on special considerations of the impact of Scrum on an organization’s human resources, facilities, and project management office groups. Part V contains two chapters. Chapter 21, “Seeing How Far You’ve Come,” summarizes various approaches to measuring how far an organization has progressed in becoming agile. Chapter 22,“You’re Not Done Yet,” concludes the book with the reminder that being agile requires continuous improvement. It doesn’t matter how good you are today; to be agile you must be better next month.
A Note on Some Terms As with most things, writing about Scrum is harder than talking about it. It is too easy to misinterpret a sentence or take one sentence out of context.To avoid these problems, I have tried to be careful and precise in my use of certain terms. I use the word developer, for example, to refer to anyone on the development side of the project.This includes programmers, testers, analysts, user experience designers, database administrators, and so on. The word team poses its own challenges. It, of course, includes the developers, but does team include the ScrumMaster and product owner? Naturally, this depends on the context. When I have wanted to be especially clear, I use whole team to refer to everyone: developers, product owner, and ScrumMaster. However, slavish use of whole team would have reduced the readability of the book. So you will encounter team as well, but usually in places where the context makes it sufficiently clear which group I’m referring to. In referring to Scrum and agile teams, I have also needed a term to refer to those teams that are neither. In various places, I have used sequential, traditional, and even non-agile. Each conveys a slightly different meaning and is used appropriately.
Download from www.wowebook.com
xxviii
Introduction
How to Use This Book Many books have a heading like the one above this sentence. But those headings usually say How to Read This Book. The best way to read this book is to use it. Don’t just read it. When you encounter a Things to Try Now section, try some of them. Or note them and try them at your next retrospective or planning meeting, if that is what I recommended. It is not necessary to read the book in order. In fact, there could well be entire chapters you do not need to read. If in your organization’s quest to become good at Scrum, you have no significant problems with planning and no distributed teams, then skip or skim those chapters. I do, however, recommend that everyone read at least the first four chapters and read them in order.They lay the foundation for much of what follows. In Chapter 4 you will be introduced to the idea of improvement communities and improvement backlogs. An improvement community is a group of likeminded individuals who are passionate about driving improvements in a particular area. One improvement community could form when three people passionate about the product backlog decide to collect best practices and advice to share across teams. Another improvement community could include hundreds of people interested in improving how your organization tests its applications. An improvement backlog is exactly what it sounds like—a prioritized list of things that an improvement community would like to help the organization get better at. One of my hopes is that improvement communities—including the Enterprise Transition Community that guides and energizes the transition effort—will use this book to load their improvement backlogs. In fact, many of the top-level section headings have been deliberately worded so that those headings can go right onto an improvement backlog. As examples, consider “Shift from Documents to Discussions” in Chapter 13,“Prepare in This Sprint for the Next” in Chapter 14, and “Automate at Different Levels” in Chapter 16. As a long-time Scrum trainer and consultant, I have worked with hundreds of teams and organizations, and I’ve come to believe that success with Scrum is possible for every organization. Some will have a harder time than others. Some will be challenged by a rigid corporate culture. Others will confront entrenched, difficult personalities facing personal loss. The lucky ones will have supportive leadership and passionately engaged employees. What each of these organizations will have in common, though, is the need for pragmatic and proven advice. I have written this book with the hope of providing it.
Download from www.wowebook.com
Part I Getting Started
Willingness to change is a strength even if it means plunging part of the company into total confusion for a while. —Jack Welch
1 Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
Chapter
1
Why Becoming Agile Is Hard (But Worth It)
Many software development organizations are striving to become more agile. And who can blame them? Successful agile teams are producing higher-quality software that better meets user needs more quickly and at a lower cost than are traditional teams. Besides, who wouldn’t want to be more agile? It just plain sounds good, doesn’t it? It is almost as though one cannot be too thin, too rich, or too agile. But beyond the buzzword and hype, organizations that take becoming agile seriously by adopting a process such as Scrum are seeing dramatic benefits. They are seeing significant gains in productivity with corresponding decreases in cost. They are able to bring products to market much faster and with a greater degree of customer satisfaction. They are experiencing greater visibility into the development process, leading to greater predictability. And for them, out-ofcontrol, will-it-ever-be-done projects have become a thing of the past. One company to realize these benefits by adopting Scrum is Salesforce.com. Founded in 1999 in a San Francisco apartment, Salesforce.com is one of the true, lasting dot-com-era success stories. With revenue of more than $450 million and 2,000 employees in 2006, Salesforce.com had noticed the frequency of its releases had dwindled from four a year to one a year. Customers were getting less and waiting longer to get it; something needed to be done. The company decided to transition to Scrum. During the first year of making the switch, Salesforce. com released 94% more features, delivered 38% more features per developer, and delivered over 500% more value to its customers compared to the previous year (Greene and Fry 2008). In the ensuing two years, revenue more than doubled to more than $1 billion. With results like these, it is not surprising that so many organizations have transitioned to Scrum. Or at least tried to. I say “tried to” because transitioning to Scrum and other agile methods is hard—much harder than many companies anticipate. The changes required to reap all of the rewards being agile can bring are far reaching. These changes demand a great deal from not only the developers but the rest of the organization as well. Changing practices is one thing; changing minds is quite another. It is my aim in this book to show not only how to transition well but also how to succeed long term. 3 Download from www.wowebook.com
4
Chapter 1
Why Becoming Agile Is Hard (But Worth It)
I’ve personally witnessed several failed agile adoptions that could have been prevented. The first was in a company that had spent more than a million dollars on its transition effort. Executives brought in outside trainers and coaches and hired five people into an “Agile Office” to which new Scrum teams could turn for advice. The company’s failure was the result of thinking that the implications of adopting Scrum would be restricted to only the development organization.The executives who initiated this transition thought that educating and supporting developers would be sufficient. They failed to consider how Scrum would touch the work of salespeople, the marketing group, and even the finance department. Without changes to these areas, organizational gravity pulled the company back where it had started. For completely different reasons, Josef ultimately failed at introducing Scrum to his company. A newly promoted and first-time project manager, Josef was instantly attracted to Scrum because it fit his natural management style. Josef easily convinced his team—who had all been his peers as little as one month before—to try Scrum on their new project. The project was wildly successful, earning accolades for the team and winning Josef the chance at a much larger project. Josef introduced the new project team to Scrum, and most members were willing to try the new approach. Although those working on the project were happy to use Scrum, some of the functional managers to whom they reported got nervous about what Scrum might mean to their careers. Josef ’s luck ran out. The functional managers—in particular the directors of quality assurance and database development—banded together and convinced the vice president of engineering that Scrum was inappropriate for projects of the complexity and importance being done in their company. Caroline fared a little better. A vice president of development in a large data management company, Caroline had more than 200 developers in her organization. After seeing the benefits of Scrum on one project, she excitedly launched an initiative to introduce Scrum across her division. All employees were provided with training or coaching. Within a few months nearly all teams were producing working software at the end of each two-week sprint. This was great progress. When I visited this company a year later, though, the employees had failed to make any additional headway. To be sure, teams were producing higher-quality software and doing it a bit faster than they had before starting with Scrum, but her company’s gains were only a fraction of what they could have been. Caroline’s company had forgotten that continuous improvement is part of Scrum. Frightening, isn’t it? Each of these failures was a well-intentioned effort to transition to Scrum.Yet all the good intentions in the world could not keep them from failing. Don’t worry, though. Transitioning to Scrum may be hard, but it’s entirely possible with the right approach. In this chapter we examine why transitioning to any agile development process, including Scrum, is especially difficult.
Download from www.wowebook.com
Why Transitioning Is Hard
5
We detail some of the challenges that derailed the companies I’ve mentioned. Most important, though, we look at the reasons why the benefits of becoming an agile organization are more than worth the effort.
Why Transitioning Is Hard All change is hard. I’ve seen employees in an uproar over something so small as a change in their company’s healthcare plan. Larger changes can be even more painful. But there are certain attributes of transitioning to Scrum that make it more difficult than most other changes. They are as follows: ●
Successful change is not entirely top-down or bottom-up.
●
The end state is unpredictable.
●
Scrum is pervasive.
●
Scrum is dramatically different.
●
Change is coming more quickly than ever before.
●
Best practices are dangerous.
Successful Change Is Not Entirely Top-Down or Bottom-Up Successful organizational change cannot be fully top-down or bottom-up. In a top-down change, a powerful leader shares a vision of the future and the organization follows the leader toward that vision. Imagine a charismatic, respected, and powerful leader such as Steve Jobs telling his Apple employees that they are moving beyond computer hardware and software to dominate digital music. His reputation and style might have pointed the company in a new direction, but that alone would not have been enough to pull off such a monumental feat. Change management expert John Kotter agrees. No one individual, even a monarch-like CEO, is ever able to develop the right vision, communicate it to large numbers of people, eliminate all the key obstacles, generate short-term wins, lead and manage dozens of change projects, and anchor new approaches deep in the organization’s culture. (1996, 51–52) By contrast, in a bottom-up change, a team or some individuals decide that a change is needed and they set about making it happen. Some teams undertake a bottom-up change with an “ask for forgiveness later” attitude. Others flaunt that they are breaking the rules. Still others attempt to fly under the corporate radar as long as possible. Most successful changes, and especially a change to an agile process like Scrum, must include elements of both top-down and bottom-up change. Mary
Download from www.wowebook.com
6
Chapter 1
Why Becoming Agile Is Hard (But Worth It)
Lynn Manns and Linda Rising agree, writing in Fearless Change, “We believe that change is best introduced bottom-up with support at appropriate points from management—both local and at a higher level” (2004, 7). An organization attempting to transition to Scrum without support from the top will encounter resistance that cannot be overcome from below. This usually occurs as soon as the new Scrum process begins to affect how areas outside the original team do their work. In response, middle managers protect their departments by striking out against changes created by Scrum. Top-down support will be needed to remove these kinds of impediments and obstacles. Similarly, without bottom-up engagement, the transition will feel like sitting under a ceiling fan in an open-air restaurant in Mexico: just a bunch of hot air blowing down from above. When this happens, individuals resist being told what to do. Bottom-up participation will be needed because it will be the individual team members who work through the issues of discovering how Scrum will work best within their organization. Key to any successful adoption of Scrum will be combining elements of both bottom-up and top-down change.
The End State Is Unpredictable Perhaps you’ve read a book on Extreme Programming and have decided that is the right approach for your company. Or maybe you attended a Certified ScrumMaster training course and think Scrum sounds good. Or maybe you read a book on a different agile process, and it sounds perfect for your organization. In all likelihood, you’re wrong. None of these processes as described by their originators is perfect for your organization. Any may be a good starting point, but you will need to tailor the process to more precisely fit the unique circumstances of your organization, individuals, and industry. Alistair Cockburn concurs: “Having a chance to change or personalize a process to fit themselves seems to be a critical success factor for a team to adopt a process. It’s the act of creation that seems to bind teams to ‘their own’ process.”1 You may have a clear vision of what “doing Scrum” means to you, and you may get others to buy into exactly that same vision, but where the organization ends up is likely to be somewhat different. In fact, to even refer to end states in a Scrum transition is incorrect; there can be no end state in a process that calls for continuous improvement. This creates a problem for an organization that wants to transition to Scrum through a traditional change approach that relies on gap analysis and then on closing the identified gaps. If we cannot anticipate the end state of a Scrum 1 This and all other uncited references are personal communications between the speaker and me.
Download from www.wowebook.com
Why Transitioning Is Hard
7
transition, we cannot identify all of the gaps between there and the current state. So, a gap analysis–driven change approach will not work.The closest we can come is to identify gaps between where we are now and an improved, intermediate state. After identifying these smaller gaps, though, we are still left with the problem of how to close them. It is difficult (and often impossible) to predict exactly how people will respond to the many small changes that will be needed on the way to becoming agile. Teamwork expert Christopher Avery views organizations as living systems. We can never direct a living system, only disturb it and wait to see the response….We can’t know all the forces shaping an organization we wish to change, so all we can do is provoke the system in some way by experimenting with a force we think might have some impact, then watch to see what happens. (2005, 22–23) So, a transition to Scrum cannot be a process that “articulates and defines the entire change process required to bridge the gap between ‘as is’ and ‘to be’ and creates tactical plans,” as I read in a traditional change management book (Carr, Hard, and Trahant 1996, 144–5). Creating such a plan would require leaping two impossible hurdles: first, knowing exactly where we’ll want to end up; and second, SEE AlSo knowing exactly the steps to get there. Because we cannot overcome these impos- Chapter 4, “Iterating sibilities, the best we can do is adopt a “provoke and observe” approach (Avery Toward Agility,”will describe the overall 2005, 23) in which we try something, see if it moves us closer to an intermediate, process I recommend improved state, and if so do more of it. These pokings and proddings of the orga- when adopting Scrum. nization are not random.They are carefully selected based on experience, wisdom, and intuition to drive a successful transition to Scrum.
Scrum Is Pervasive When a change is isolated, when it doesn’t affect everything a person does, that change is often easier to introduce into an organization. Consider the case of an organization using a non-agile process that decides to introduce a mandatory operational readiness review before an application is deployed onto the company’s web servers.This is a relatively isolated change. Sure, there will be some developers who will hate the new procedure and will complain, perhaps loudly. But, when it comes down to it, this is not a pervasive change. Even if they don’t like this change, they can still continue doing the majority of their work unscathed. Consider now the case of a developer transitioning to Scrum. This developer has to work on smaller pieces of work at a time to complete something by the end of each timeboxed sprint. The developer might have to write automated tests to go with each new bit of code. She might even alternate short bouts of testing and coding in something called test-driven development. And she might need to do all this with her headphones off while pair programming. These are fundamental
Download from www.wowebook.com
8
SEE AlSo The impact of Scrum on other groups, such as finance, operations, human resources, and others is discussed in Chapter 20, “Human Resources, Facilities, and the PMO.”
Chapter 1
Why Becoming Agile Is Hard (But Worth It)
changes. They aren’t something relegated to a few hours a day or week, as code inspections might be. This type of fundamental change is difficult because it pervades everything about a developer’s workday. Resistance will be greater because the impact is greater. Adopting Scrum is pervasive in a second way as well. Being agile will have implications to the organization that reach far outside the software development department. Introducing the operational readiness review would almost certainly not impact finance, sales, or other departments. But each of those departments can be impacted by Scrum. Finance groups will have to reconcile company policies on capitalizing or expensing with the way Scrum projects run. Sales will want to consider altering how they communicate date and scope commitments and may change how they structure contracts. With more groups affected by a move to Scrum, there is more chance for resistance and certainly more chance for misunderstandings. These add up to make transitioning to Scrum harder than other changes.
Scrum Is Dramatically Different Not only do the changes created by adopting Scrum pervade everything development team members do, but also many of the changes go against much of their past training. Many testers, for example, have learned that their job is testing for compliance to a specification. Programmers have been trained that a problem is to be analyzed in depth and a perfect solution designed before any coding begins. On a Scrum project, testers and programmers need to unlearn these behaviors. Testers learn that testing is also about conformance with user needs. Programmers learn that a fully considered design is not always necessary (and sometimes not even desirable) before coding begins. Abby Fichtner, who shares her thoughts on her Hacker Chick blog, has told me she agrees with how hard this adjustment can be for programmers. Getting used to emergent design is hard because it feels like you’re going to be just hacking! And if you’ve prided yourself on being a very good developer and always doing well-thought-out designs, it turns your whole world upside down and says “no, all those things you thought made you great, now those same things actually make you a bad developer.” Very world-rocking stuff. SEE AlSo Emergent design and test-driven development are discussed in Chapter 9, “Technical Practices.”
Because transitioning to Scrum involves asking people to work in ways that are unfamiliar and run counter to training and experience, people are often hesitant, if not outright resistant, to the change. Consider, for example, the case of Terry, a senior and respected programmer in his company. Terry had participated in a hands-on full-day class on test-driven development and was convinced of its benefits. An enthusiastic Terry returned to the office expecting to stop doing big,
Download from www.wowebook.com
Why Transitioning Is Hard
9
up-front designs and allow design to emerge through the use of test-driven development. It didn’t go as smoothly as he thought it would. He wrote me an e-mail describing his deflating experience. Getting the other programmers to even try test-driven development was much harder than I thought. I tried pushing it as a way to skip the long up-front design phases we’d become accustomed to, but failed miserably. After a few months I got the other developers to start writing tests first, but only because it was a good idea on its own.They still wouldn’t abandon the lengthy up-front design phase. It took me another year to make much progress shortening that, and we could still go much shorter.
Change Is Coming More Quickly Than Ever Before Back in 1970 Alvin Toffler coined the term future shock, saying that it is the disorientation people feel when confronted with “too much change in too short a period of time” (1970, 4). Human, and therefore organizational, capacity to change is limited—ask people to change too many things at the same time and they shut down; the shattering stress and disorientation of future shock kicks in. In many organizations, employees have been suffering from future shock for years.Teams are asked to do more with fewer people. Outsourcing and distributed teams have become increasingly common. These adjustments were preceded by the rush to move applications to a client/server model, then onto the web, and then into services. Add to these the constant, and constantly accelerating, rate of change in technology itself—new languages, new tools, new platforms—and future shock is now. It should not be surprising that transitioning to Scrum can often be the change that pushes people into future shock. The pervasive nature of adopting Scrum and the fundamental changes it causes in how people work and interact have a higher risk of triggering the future shock effect.
Best Practices Are Dangerous With most organizational change, after someone figures out the right or best way to do something, that way of doing it is captured as a “best practice” and shared with everyone else. For some types of work, collecting and reusing best practices is a tremendous aid to the change effort. An organization that is selling a product to a new type of customer may, for example, capture best practices for overcoming objections from potential customers. When transitioning to Scrum, however, collecting best practices can be dangerous. Like sirens singing to us from the rocks, best practices tempt us to relax and stop the effort of continuous improvement that is essential to Scrum.Taiichi Ohno, originator of the Toyota Production System, has written that “there is something
Download from www.wowebook.com
10
Chapter 1
Why Becoming Agile Is Hard (But Worth It)
called standard work, but standards should be changed constantly. Instead, if you think of the standard as the best you can do, it’s all over.” Ohno goes on to say that if we establish something as the “best possible way, the motivation for kaizen [continuous incremental improvement] will be gone” (1982). Although team members should always look to share with one another their newly discovered good ways of working, they should resist the urge to codify them into a set of best practices. One example of a best practice gone awry is the company that decided that all daily scrums needed to be held no later than 10:00 a.m. I found this an extremely unnecessary dictate. I’m not entirely sure what purpose the dictate served. But many employees took the rule to be further proof that “Scrum is all about micro-management.” ❑
Things To Try now
Think about your current transition to Scrum. Are you just getting started, in the middle, or feeling like you’re nearing the end of the transition push? No matter where you are, identify the primary obstacle you think may be holding you back from the next level of success.
Why It’s Worth the Effort Despite all the reasons why transitioning to Scrum can be particularly difficult, stakeholders in companies that have made the transition are happy they’ve done so. One reason stakeholders are so satisfied is that time-to-market is reduced when using an agile process like Scrum. This faster time-to-market is enabled by the higher productivity of agile teams, which is in turn the result of the higher quality seen on agile projects. Because employees are freed up to do high-quality work and because they see their work delivered sooner into the hands of waiting users, job satisfaction goes up. With higher job satisfaction comes more engaged employees, which leads to more productivity gains, initiating a virtuous cycle of continued improvement. The rest of this chapter looks in more depth at these claims. In doing so I present evidence in support of each. Some of the evidence is anecdotal and drawn from my experience, experiences of my clients and colleagues, or experiences reported in magazines or at conferences. Additionally, though, the claims are supported by data from the following sources: ●
A rigorous comparison of 26 agile projects against a baseline database of 7,500 primarily traditional development projects. This study was conducted by Michael Mah, managing partner of QSM Associates (QSMA), which has been collecting productivity, quality, and other metrics on projects for more than 15 years. The agile projects Mah studied ranged in size from 60 to 1,000 people (Mah 2008).
Download from www.wowebook.com
Why It’s Worth the Effort ●
●
Various academic and research papers, including aggregate research by David Rico, Ph.D., who surveyed 51 published studies of agile projects (2008). An online survey of more than 3,000 people conducted by agile tool vendor,VersionOne (2008), and another of 642 people conducted by Dr. Dobb’s Journal (Ambler 2008a), a popular development magazine. Each survey was conducted in 2008. Industry surveys such as these cannot, of course, be taken as definitive. Individuals opting to take such surveys are probably predisposed toward favorable views of agile. Results from these surveys are presented because they are more representative than conclusive. These surveys will be referenced as VersionOne and DDJ in the sections that follow.
11
SEE AlSo Data from this chapter is summarized in Microsoft PowerPoint and Apple Keynote presentations available at www.succeedingwithagile.com.
In the following sections we look at these reasons why transitioning to an agile process like Scrum is worthwhile: ●
Higher productivity and lower costs
●
Improved employee engagement and job satisfaction
●
Faster time to market
●
Higher quality
●
Improved stakeholder satisfaction
●
What we’ve been doing no longer works
Higher Productivity and lower Costs There is unfortunately no universally agreed-upon measure of productivity. Martin Fowler has gone so far as to say that measuring productivity of developers is impossible (2003). And although I agree with Fowler, I do think it is possible to measure proxies or stand-ins for productivity. Some teams use the number of lines of code as a proxy for productivity. Others use as a proxy the number of function points delivered or simply the number of features delivered, ignoring that not all features are the same size. Are there problems with these proxies? Absolutely. But I think the usefulness of proxy productivity measures is justified if we can reasonably make the assumption that data has not been gamed by teams fabricating lines of code or function points by duplicating code, failing to take advantage of reuse, or so on. In many cases, especially those involving large data sets as the QSMA study does, I think this is a reasonable assumption. QSMA calculates a productivity index for the projects in its database. This index takes into consideration effort, schedule, technical difficulty, and more and is an attempt to help make cross-team comparisons more meaningful. In his comparison between agile and traditional projects, Mah found agile projects to be 16%
Download from www.wowebook.com
12
Chapter 1
Why Becoming Agile Is Hard (But Worth It)
more productive, an increase that he found to be statistically significant. Figure 1.1 shows the agile projects (as dots) compared to the average productivity and one standard deviation around it in the QSMA database. As you can see, most of the dots are above the industry average line, with a handful of projects more than one standard deviation more productive than the industry average.
Agile teams are significantly more productive than the industry average. Source: Mah 2008.
Higher
+/- 1 Standard deviation
Productivity
FIgUrE 1.1
I ndust
rage ry ave
Agile projects Lower
Smaller
Project Size
Larger
The QSMA results are corroborated by both the DDJ and VersionOne surveys. Eighty-two percent of participants in the DDJ survey felt that productivity was somewhat or much higher when using agile methods like Scrum than it was before. Only 5% felt productivity was somewhat or much lower. Seventy-three percent of the VersionOne respondents believed that being agile had significantly improved (23%) or improved (50%) productivity. It stands to reason that if people are productive, costs will be lower. The VersionOne and DDJ studies both bear this out, as can be seen in Table 1.1.2 David Rico’s survey of case studies of agile teams published through 2008 is shown in Table 1.2. Rico found that the median reported productivity increase was 88% and the median cost savings was 26%. These indicate solid evidence that agile teams are more productive, which leads to cost savings to their projects. 2 The VersionOne survey asked respondents to answer on a scale that included Significantly Improved, Improved, No Benefit, Worse, and Much Worse. The DDJ survey used a similar scale but used Much Higher, Somewhat Higher, No Change, Somewhat Lower, and Much Lower. For improved readability, all tables in this chapter use the labels from the VersionOne survey.
Download from www.wowebook.com
Why It’s Worth the Effort Development Cost
DDJ
Versionone
Improved
32%
30%
Significantly Improved
5%
8%
13 TABlE 1.1 A significant number of survey respondents report that agile improved development costs.
As encouraging as these numbers are, they tell only part of the story. A significant benefit to being agile—but one not reflected here—is that agile teams are less likely to build functionality that is no longer needed. A common criticism of a sequential development process is that by the time the software is delivered, the users no longer need the functionality being provided. Because of the frequent feedback, timeboxed sprints, and ability to reprioritize each sprint, a Scrum team is more likely to work only on features users really need. Were we to include this in our measurement of productivity, we would see even more dramatic results. Category
lowest reported Improvement
Median Improvement
Highest reported Improvement
Productivity
14%
88%
384%
Cost
10%
26%
70%
TABlE 1.2 Impact of agile on productivity and cost. Source: Rico 2008.
Improved Employee Engagement and Job Satisfaction One factor contributing to the higher productivity and lower costs on agile projects may be that employees enjoy their jobs more. Fifteen months after adopting Scrum, Salesforce.com surveyed its employees and found that 86% were having a “good time” or the “best time” working at the company. Prior to adopting Scrum, only 40% said the same thing. Further, 92% of employees said they would recommend an agile approach to others. Results such as these are common; many of my clients have done employee satisfaction surveys and always with similar results. In its industrywide survey, VersionOne found that 74% of those surveyed reported morale was improved (44%) or significantly improved (30%). One reason why employees may enjoy their jobs more is because of the sustainable pace promoted by agile processes. Chris Mann and Frank Maurer of the University of Calgary studied the amount of overtime worked by one team for the year before becoming agile and the first year after (2005). They found that before implementing agile practices, team members worked an average of 19% overtime. After adopting an agile process, that dropped by nearly two-thirds to an average of 7% overtime. Further, even though overtime was occasionally needed even after adopting agile practices, there was less variability in the amount Download from www.wowebook.com
14
Chapter 1
Why Becoming Agile Is Hard (But Worth It)
required, as measured by the standard deviations of the team before and after moving to agile. Johannes Brodwall, an agile software architect, says, “Overtime seems to be much less common after we started with agile.Testers are especially noticing the effect. They used to have extremely chunky workloads.” A lack of overtime is likely just one factor contributing to higher job satisfaction among people working on agile teams. There are also the benefits of having more control over your day-to-day work, seeing the results of your work get used sooner, working more closely with coworkers, creating products that are more likely to meet customer and user expectations, and so on. Employees who are happier with their jobs and with their employers will be more engaged in the work they do. Greater employee engagement will result in numerous benefits to the organization.
Faster Time to Market Agile teams tend to release their products more quickly than do traditional teams. According to the VersionOne study, 64% of participants report that time to market has been improved (41%) or significantly improved (23%). The QSMA study comparing 26 agile projects to a database of 7,500 mostly traditional projects found that agile projects have a 37% faster time to market, as shown in Figure 1.2. Agile teams have faster times to market for two reasons. First, the higher productivity of an agile team allows them to produce functionality more quickly. Second, agile teams are more likely to release incrementally. When stakeholders realize that a team can produce valuable functionality every sprint, they often decide that they do not need to wait for one big-bang delivery of all functionality.
Agile projects have a 37% faster time to market compared to the industry average. Source: Mah 2008.
Higher Time-to-Market
FIgUrE 1.2
Agile projects +/- 1 Standard Deviation
Lower Smaller
I ndust r
Project Size
ag y aver
e
Larger
Download from www.wowebook.com
Why It’s Worth the Effort
15
Salesforce.com noticed the benefit of this immediately after its rapid transition to Scrum (Greene and Fry 2008). Figure 1.3 shows the cumulative number of features delivered to customers in 2006 (before adopting Scrum) and 2007 (after initiating the transition around the start of the year).This figure shows a simple metric: the raw number of features delivered and when they were delivered and a powerful view of the additional value provided to customers in the first year of using Scrum. Cumulative Value (features) delivered in Major Releases
2000 1500 1000
2007
2006 500
The cumulative value of features delivered by Salesforce.com in 2006 (pre-Scrum) and 2007 (Scrum).
Cumulative Value (features)
2500
FIgUrE 1.3
Mar April May June July Aug Sep Oct Nov Dec Jan Feb
Month
Higher Quality If you ask a Scrum team what enables them to be more productive than in their pre-Scrum days, most will say that at least part of their success is that they are consistently producing higher-quality work. Without bugs left behind to drag the team down, they can move quickly and consistently forward. Quality is improved because working at a sustainable pace prevents sloppiness. Quality is also improved through many of the engineering practices such as pair programming, refactoring, and a strong emphasis on early and automated testing. David Rico’s research bears out the claim that agile teams produce higherquality products. In his survey of 51 published studies of agile projects, he found a minimum quality improvement of 10% and a median improvement of 63%. Rico’s research matches my experience at clients where I’ve been able to measure and report on quality. For example, ePlanServices provides retirement plans to medium-sized businesses. The service is provided largely through a powerful web application. In the first nine months after initiating a Scrum transition, their defect rate per thousand lines of code dropped by 70%. The VersionOne survey also bears out the claim for higher quality with agile processes such as Scrum. Sixty-eight percent of participants answered that agile had improved (44%) or significantly improved (24%) software quality. Further,
Download from www.wowebook.com
16
Chapter 1
Why Becoming Agile Is Hard (But Worth It)
84% of respondents felt that agile had reduced the number of software defects by 10% or more; 30% felt agile had reduced the number of defects by 25% or more. The DDJ survey reported similar results, with 48% saying quality was somewhat higher and 29% saying it was much higher.
Improved Stakeholder Satisfaction Given all of the benefits of agile processes thus far, it is not surprising that they lead to improved stakeholder satisfaction. The DDJ survey found that 78% of survey participants believe that using an agile process has led to somewhat higher (47%) or much higher (31%) stakeholder satisfaction. One reason stakeholders are more satisfied by agile processes is because their practices are more friendly toward the shifting priorities that are a fact of life in today’s fast-paced, competitive organizations. In the VersionOne study, 92% of participants felt that agile improved the ability to manage changing priorities. Additionally, along with gaining the ability to more easily change priorities, stakeholders on agile projects learn the impact of change. A stakeholder at PetroSleuth, a small development company in the oil and gas industry, found that to be true. The Scrum process has led to our being more involved in the daily review and discussion. This has led to us being more aware, and being held accountable earlier in the process for any changes. (Mann and Maurer 2005, 77) The VersionOne survey looked deeper into additional factors leading to stakeholder satisfaction. Table 1.3 shows the high percentages of survey participants who reported that agile leads to better alignment between the technology and business groups, reduced project risk, better ability to manage changing priorities, and improved project visibility. Steve Fisher, a senior vice president at Salesforce. com and stakeholder to many of the agile teams there, says adopting Scrum has “delivered total visibility, total transparency, and unbelievable productivity…a complete win” (Greene 2008). TABlE 1.3 Some of the reasons stakeholders are satisfied with agile.
Improved
Significantly Improved
Enhanced ability to manage changing priorities
41%
51%
Improved project visibility
42%
41%
Improved alignment between IT and business goals
39%
27%
Reduced project risk
48%
17%
Download from www.wowebook.com
Looking Forward
17
What We’ve Been Doing No longer Works One final reason to consider changing to Scrum is if your current development process is no longer working. When a process that has worked in the past stops working, a common tendency is to do more of it. This was certainly the case at Yahoo!, where chief product officer Pete Deemer was one of the first to recognize the need for change. Originally, Yahoo! tried Scrum purely out of desperation—the waterfall approach was clearly not working—and a year-long attempt to do the waterfall “better” through more thorough planning and analysis, more in-depth documents, more sign-offs, and so on was making things worse, not better. For the teams that saw benefits, which were most of the teams that tried Scrum, the benefits were visible almost immediately. Clinton Keith, former chief technology officer at High Moon Studios, developer of console-based video games, tells a similar story. As successful project managers at a well-funded startup, we felt we could “apply more waterfall” to our ambitious new projects. This had the opposite effect of what we hoped for and the projects spiraled out of control. Our assumptions were wrong and forced us to rethink how we were managing projects. ❑
Identify the benefits you have gained from using Scrum so far.
❑
If you have not yet gathered metrics on quality, employee morale, stakeholder satisfaction, or so on, select a few factors of interest and measure a baseline you can compare against later.
❑
If you gathered baseline measurements earlier and have been doing Scrum for at least three or six months, remeasure and see what progress has been made. Create your own “why Scrum is worth it” charts that you can share with other teams as they begin to transition to Scrum or with existing teams who are having difficulty sticking with it.
Things To Try now
looking Forward Becoming agile is hard. It is harder than most other organizational change efforts I’ve witnessed or been part of. I started this chapter by laying out some of the reasons why this is so, including the need to change from the top-down and bottomup simultaneously, the impossibility of knowing exactly what the end state will look like, the dramatic and pervasive changes caused by Scrum, the difficulty of
Download from www.wowebook.com
18
Chapter 1 Why Becoming Agile Is Hard (But Worth It)
adding more change on top of all that is already occurring, and the need to avoid turning Scrum into a list of best practices. Because you’re still reading, I can assume that this list of challenges didn’t send you away. That’s fortunate because there are tremendous advantages to be had by the organization that overcomes the challenges. These include more productive teams, lower costs, happier employees, reduced time to market, better quality, and improved stakeholder satisfaction. In the next chapter we look more closely at what is involved in moving you, your team, and your organization from the stage where you know change is necessary and you believe that Scrum is the answer to a point where you can begin making real progress and continuous improvements.
Additional Reading Ambler, Scott. 2008. Agile adoption rate survey, February. http://www.ambysoft.com/ surveys/agileFebruary2008.html. This article presents the results of a survey conducted in February 2008 and goes beyond the results presented here. Greene, Steve, and Chris Fry. 2008.Year of living dangerously: How Salesforce.com delivered extraordinary results through a “big bang” enterprise agile revolution. Session presented at Scrum Gathering, Stockholm. http://www.slideshare.net/sgreene/ scrum-gathering-2008-stockholm-salesforcecom-presentation. Greene and Fry led the rollout of Scrum at Salesforce.com. They have shared this entertaining slide deck that covers how they did it, what they learned, and what they’d do differently. Mah, Michael. 2008. How agile projects measure up, and what this means to you. Cutter Consortium Agile Product & Project Management Executive Report 9 (9). This is Mah’s comparison of 26 agile projects to his baseline database of productivity data on over 7,500 mostly traditional projects. Rico, David F. 2008. What is the ROI of agile vs. traditional methods? An analysis of extreme programming, test-driven development, pair programming, and Scrum (using real options). A downloadable spreadsheet from David Rico’s personal website.http:// davidfrico.com/agile-benefits.xls. An extensive survey of the available literature on agile projects that summarizes key percentage improvements in productivity, cost, quality, schedule, customer satisfaction, and return on investment.
Download from www.wowebook.com
Additional Reading
19
VersionOne. 2008. The state of agile development: Third annual survey. Posted as a downloadable PDF in the Library of White Papers on the VersionOne website.http:// www.versionone.com/pdf/3rdAnnualStateOfAgile_FullDataReport.pdf. Every year, agile tool developer VersionOne conducts the largest survey of the state of agile adoption. The survey is international in scope and is the broadest view into the use of agile practices.
Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
Chapter
2
ADAPTing to Scrum
Lori Schubring was among the first to realize that things had to change. An ap-
plication development manager for a large manufacturing company, Lori realized that its development process had become “so formalized that we hindered our ability to remain flexible for the business. It got to the point where we weren’t turning around project requests fast enough” (2006, 27). Aware of the need to change, Lori attended a free, half-day seminar introducing Scrum. What she saw there was a better way to develop software, a framework she thought might help her organization. As such, Lori developed the desire to change to Scrum. Next, she acquired the ability to do it by participating in a ScrumMaster class, attending an agile conference, and visiting a company that had already adopted Scrum. Lori then promoted Scrum to her boss and team, convincing them of its benefits. Finally, Lori transferred some of the implications of her team using Scrum to the rest of her company so that organizational gravity would not pull the team back to where it had started. Lori’s story encapsulates the five common activities necessary for a successful and lasting Scrum adoption: ●
Awareness that the current process is not delivering acceptable results
●
Desire to adopt Scrum as a way to address current problems
●
Ability to succeed with Scrum
●
●
Promotion of Scrum through sharing experiences so that we remember and others can see our successes Transfer of the implications of using Scrum throughout the company
Conveniently, these five activities—Awareness, Desire, Ability, Promotion, and Transfer—can be remembered by the acronym ADAPT.1 These activities are also 1 The five activities of ADAPT are based on ADKAR (Hiatt 2006), a general model of change that includes the steps of Awareness, Desire, Knowledge, Ability, and Reinforcement. In practice, I have found separating Knowledge and Ability to be unnecessary. In a field such as software development, knowledge without ability is meaningless. Additionally, the Reinforcement step of ADKAR is replaced in ADAPT with separate Promotion and Transfer steps, emphasizing the importance of these activities to a successful transition. 21 Download from www.wowebook.com
22
Chapter 2
ADAPTing to Scrum
summarized in Figure 2.1, which shows Awareness, Desire, and Ability as overlapping, whereas Promotion and Transfer repeat and occur throughout the transition effort. After you have transitioned, this cycle will continue as you continuously improve. Figure 2.1
Tr a n sf e r
The five activities of adapting to Scrum.
Awareness Desire
Ability
Pr o m o t i o n
An organization that successfully adopts Scrum can be thought of as engaging in these activities at multiple levels: ●
●
●
Organizationally. The organization as a whole will engage in these activities. No matter how aware one person or group is, there must be a critical mass of people with a similar awareness before the organization will be able to collectively move forward. In thinking of the ADAPT model at this level, we may speak of a company with an organizational desire to adopt Scrum. Or we may say that our organization currently lacks the ability to do Scrum. As individuals. Because organizations are made up of individuals, it is important to acknowledge that individuals will progress through the overall transition at different rates. For example, you personally may already have acquired the ability to do Scrum; you’ve learned some new skills and some new ways of thinking about software development. A colleague, on the other hand, is only starting to become aware that the current approach isn’t working. As teams. Individuals can be aided or hindered in the transition to Scrum by their teams. Teams tend to progress through the ADAPT cycle more or less together. In the same way that studies have shown individuals are more likely to be overweight if their friends are overweight (Thaler and Sunstein 2009), you are more likely to have a desire to do Scrum if the rest of your team does as well.
Download from www.wowebook.com
Awareness ●
23
Per practice. The ADAPT model can also be applied to each new skill that is acquired as part of adopting Scrum. Consider the increased reliance on automated unit testing that is common on Scrum teams.The team and its members must first become aware that the current approach to testing isn’t working. They must then develop the desire to automate more tests and to do so earlier in the process. To do this will require that some team members learn new skills. Promoting the team’s success with automated testing will encourage other development teams to emulate them. Finally, transferring the implications of the team doing more automated testing to other groups ensures that forces external to the team do not prevent it from continuing with the new practice.
One of the first things you’ll need to do, whether you are currently using Scrum or just starting your adoption, is to decide where your individuals, teams, and organization are in their ADAPT sequence. It could be that you are acquiring the ability to do test-driven development on a team that is promoting its success inside a department that desires to implement Scrum. The overall organization, however, may be aware of only a general need to change. This chapter will discuss not only the five ADAPT activities but also the tools you will need to encourage and develop awareness, desire, ability, promotion, and transfer throughout all levels of the organization.
Awareness Change begins with an awareness that the status quo is no longer desirable. However, becoming aware that what worked in the past is no longer working can be extremely difficult. The most dramatic example of this I personally experienced was when I was a development director for a healthcare software company back in the mid-1990s. Our company founder recognized that the company’s sole product—the one that had led to an extremely successful public offering and tremendous growth in the company—had at most one year of sales left because of the fundamental shift occurring at the time in the United States healthcare industry. Our company would need to develop a new product that could capitalize on the shift toward managed care. In a meeting of the entire company, our founder presented a slide with the chart shown in Figure 2.2. While most employees had been congratulating ourselves on our success, which we anticipated would last forever, our founder realized we were entering what he called the “Valley of Death.” While in the Valley of Death, revenue from the current product would quickly decline well in advance of increases in revenue from the new product we hadn’t started developing yet.
Download from www.wowebook.com
24
FIGURE 2.2 The “Valley of Death” shows declining revenue from the current product in advance of the release of a new product.
Chapter 2 ADAPTing to Scrum
Revenue
New product
Current product T ime Few of us can be as prescient as this company founder was. There is almost always a lag between when the need to change first arises and when we become aware of it. The lag can be particularly long if the company is doing well. Other common reasons why individuals can be slow to develop an awareness of the need to change include the following: ●
●
●
●
A lack of exposure to the big picture. The need to adopt Scrum may be the result of a confluence of factors not visible to everyone. The need for a change may be apparent only to those who have seen the decline in sales to new customers, heard the rumors of a strong competitor entering the company’s space, and anticipate the need to do more without adding staff. A refusal to see what’s right in front of us. Even when the need to change is clear, we sometimes deny it. We may think the problems are temporary and often fear what change may have in store. The “if it ain’t broke, don’t fix it” mentality is about as far as can be from an agile “if it ain’t perfect (and it never will be), keep improving” mindset. Confusing motion with progress. Every day we see a flurry of activity. Meetings are being held, status reports are being circulated, documents are being written, and code is being checked in. It is easy to confuse all of this motion with progress. When a lot is happening, it can be hard to admit that all that activity is not leading us any closer to the desired products. Listening to our own propaganda. The company newsletter is full of rahrah articles predicting the boundless future. The glass case in the lobby proudly displays past Product of the Year trophies. Hallways are full of gleeful, self-congratulatory chatter. Yet customers ask, “What have you done for me lately?” Listening to our own cheerleading and propaganda causes complacency. By all means, celebrate success but remember the hard work that earned it.
Download from www.wowebook.com
Awareness
25
Tools for Developing Awareness Team members will become aware of the need to change at different times.Those who have come to this realization quickly have the opportunity to assist in bringing others along to the same conclusion. In this section we will look at tools you can use to help develop awareness of the need to change. Communicate that there’s a problem. BioWare is one of the world’s leading developers of story-driven video games, with more than 400 employees and wellknown games such as Mass Effect, Jade Empire, Dragon Age, Knights of the Old Republic, Neverwinter Nights, and Baldur’s Gate. Although BioWare’s products had been successful, the projects to deliver them were not very efficient. Projects were afflicted by the usual symptoms of overtime, communication issues, and deliverables that occasionally failed to meet expectations. Because of its strong track record of successful products, it wasn’t obvious to all involved that the projects themselves could be more successful. Fortunately, producer Trent Oster’s search for a better way to develop games led him to Scrum, and he was able to hire several project managers with Scrum experience. But this nucleus of early Scrum proponents could not make much progress until they helped others become aware of the need to improve. They did this by communicating a goal that would be shared by all projects.
High-quality games at a lower cost that are as fun to develop as they are to play This goal was wonderful for a couple of reasons. First, it is very hard to argue with. I can’t imagine a team member arguing that it was as fun working all those long nights as it was playing the game that resulted. Second, it neither preached nor proposed the solution. Consider the likely impact if BioWare’s early Scrum advocates had instead chosen “High-quality games built with an agile approach.” This would have convinced no one of the need to change except for those already in favor of it. William Bridges, author of Managing Transitions, stresses the importance of selling the problem, not a specific solution to it (2003, 16). use metrics. As part of an overall communication strategy, metrics provide great reinforcement of the core reasons for change. I have seen companies use employee turnover, results from job satisfaction surveys, revenue per employee, and other simple metrics to convey the message that change is necessary. Provide exposure to new people and experiences. Encourage people to attend conferences or training so that they hear about new techniques and practices. Or send people to a trade show for your industry. Let them see what products competitors are releasing. Or arrange meetings between team members and customers
Download from www.wowebook.com
26
Chapter 2
ADAPTing to Scrum
so they can hear firsthand about what features are needed and in what time frame. A good long-term strategy for providing exposure to new people and ideas is to value diversity in new hires. Intentionally seeking people from different backgrounds helps not only bring new ideas into the organization when they’re hired, but it also helps the organization with exposure to future new ideas. See ALSO Chapter 3, “Patterns for Adopting Scrum,” contrasts the merits of starting with a pilot project or transitioning everyone at once. Chapter 5, “Your First Projects,” describes how to select an initial or pilot project.
run a pilot project. A successful pilot project demonstrates that things can be better. It is hard to argue with success. When those who aren’t yet aware of the need to change see a highly successful project run in a different way, they must either discount the results on that project or become a bit more aware that a change could be appropriate. Focus attention on the most important reasons to change. If your organization is like most others, you could probably create a lengthy list of reasons why the current development process is broken: Products do not meet user expectations, products take too long to develop, quality is poor, developer morale is low, overtime is excessive, schedules are unpredictable, the cost of development is high, and so on. In helping people become aware of the need to change, it is often best to replace such a laundry list with one that is much shorter. What two or three reasons are causing most of the problems? These reasons alone should be sufficient to justify adopting Scrum. By narrowing the full list of reasons down to just the critical ones, we focus more attention on the most compelling reasons. One of my clients decided to adopt Scrum because its products had lost their best-in-class status. Customers were continuing to use the products but mostly out of years of loyalty and familiarity. To focus attention on this problem, I asked them to remove all plaques, trophies, and industry awards from the lobby except those earned within the past year. By removing old Product of the Year awards from the lobby, we reinforced the fact that customers were asking “but what have you done for me lately?” After the old mementos had been removed, the lobby still showcased a decent number of awards. But the contrast with what employees had become accustomed to was startling and helped increase the awareness that the company’s glory days were behind it unless changes were made.
Desire Beyond being aware of the need to change, one must also have the desire to change. I am aware that I should eat more vegetables; I don’t yet desire to make that change in my diet. Until my awareness turns to desire, my diet will remain the same. Scrum trainer and consultant Michele Sliger tells of a company whose transition was stalled by a similar lack of desire. A few weeks after a training class, Sliger called the company to see how people were doing.
Download from www.wowebook.com
Desire
27
Due to the politics at their company, they decided that agile really wouldn’t work there. That’s the only group I know that took the time to learn about agile (from an experienced agile consultant and not just a book), really examined their culture and politics, and then said “No.” Were they being practical? realistic? or were they being fearful? pessimistic? I don’t know. But no other company I’ve worked with has ever said no like that. Perhaps more should. I really respected the fact that these people decided that they weren’t ready, for whatever reason, rather than making some half-hearted attempt. Because they’d gone to the expense of bringing a Scrum trainer into the company, at least some employees must have been aware of the need to do things differently. But from Sliger’s story we can conclude that there was insufficient desire to take the change effort further. Moving from an awareness that the current development process isn’t working to the desire to use a different one can be very hard for many people. After all, we’ve been educated to prefer a sequential approach, both through our schooling and years of experience. Additionally, although we may be dissatisfied with elements of our projects, we’ve worked hard to get the right boss and the right team. Scrum would change all that. Finally, as simple as it may seem, sometimes the timing may just not be right. Twenty years ago a friend of mine recommended I read one of the Travis McGee novels by John D. MacDonald. I bought The Girl in the Plain Brown Wrapper that evening and started reading it. I hated it and stopped halfway through. About a year later I saw the book on my shelf and decided to give it another try. I loved it and went on to read all 20 of the other books featuring McGee. Something about my mindset, where I physically was, or such, was wrong when I first read the book. The same can be true when team members hear messages about the benefits of Scrum. If the time isn’t right for people, you will not be able to convince them. The good news is that the same message delivered the same way but at a different time will often be enough to move someone along from awareness to desire.
Tools for increasing Desire Increasing the desire to adopt Scrum is often much harder than creating an awareness that the status quo must change. Fortunately, there are many tools for moving people from awareness to desire. Communicate that there’s a better way. When building awareness, communication centers on the key problems facing the organization or team adopting Scrum. After we shift from building awareness to increasing desire, communication then focuses on how Scrum can help address those problems. Mixing the two messages
Download from www.wowebook.com
28
Chapter 2
ADAPTing to Scrum
(that the current approach isn’t working well enough and that Scrum can help) can cause some people to shut down and become unreceptive to either message. However, as more employees become aware of the need to change, the change agent’s message can shift to one of evangelism. Lori Schubring, whose story started this chapter, writes of the contagious nature of desire. I was convinced agile could help us. I put a plan together, got support from our director, and became the internal evangelist. Because I believed so strongly, it was tough for anyone to ignore. If people challenged the idea, I challenged them right back. My desire caught on to some, others came along a little less willing. A few key people took interest, and that really helped the rest of the group open up to the possibilities of Scrum. Create a sense of urgency. One way to turn awareness into desire is to turn up the heat. By creating a sense of urgency, we make it clear to others that the status quo cannot continue as such for long. Remember my awareness that I need to eat more vegetables? Suppose my doctor called tomorrow and said that I would die in six months if I didn’t start eating broccoli, asparagus, cauliflower, and the like. I would likely respond by figuring out how to like them. Build momentum. Rather than focus on those who are reluctant or opposed to Scrum, spend your time and effort helping those who are already enthusiastic. Rather than argue what can or can’t be done, do it with those who are willing. The goal is to build an unstoppable momentum with each success leading to another. When Steve Greene and Chris Fry of Salesforce.com look back on their company’s successful transition, they advise others to “focus on getting several teams to excellence” (2008). Rather than spread support too thinly across all teams, strive to make the adoption of Scrum look inevitable through these early successes. Then others will desire to be part of it. get the team to take Scrum for a test drive. Rather than allow team members to argue about Scrum in the abstract, have them get some quick experience with it. Then they can discuss it and argue about specifics. A good approach is to agree to a three-month trial.This will give the team ample opportunity to get past the first one or two sprints, which are likely to still feel very uncomfortable. Hold a thorough retrospective with the entire team at the end of the three months and collectively decide how to move forward. The decision does not need to be “Scrum” or “not Scrum.” If the test drive was inconclusive or the team is divided, another option is to continue the test drive for a few more months. Or perhaps the team
Download from www.wowebook.com
Desire
29
decides that it is not ready for a particular practice and chooses to temporarily shelve it but will otherwise continue to work with Scrum. Align incentives (or at least remove disincentives). There are many incentive programs, financial and otherwise, in organizations that can work against the adoption of Scrum. Many organizations have bonus programs to reward one employee for significant contributions to the team or department. Although such a program may appear beneficial at first glance, it works against the “we’re all in this together” teamwork mentality we want of Scrum team members. Bonus programs that reward testers based on the number of defects found (and logged in a defect tracking system) have a similarly debilitating effect. One organization I worked with revised its annual review form, removing the individual-oriented criteria, such as job knowledge, time management, and ability to balance multiple priorities. It replaced them with team-oriented criteria, such as makes others better at their jobs, contributes to shared knowledge, willingness to work beyond job title, and met team deliverable and quality goals. In another company, I got the product owner and functional managers to promise a unique nonmonetary bonus to the team if the product would be released on schedule with an agreed-upon set of features. Although the product owner and managers trusted the team to continue to do high-quality work, I asked the team members to propose a quality metric. I didn’t want them to receive their bonus by sacrificing quality. They proposed that quality would be measured by the number of defects reported in the 30 days following release. Their goal was to have fewer reported defects than two prior releases of a similar size. Four months later the team delivered slightly more functionality than promised on the planned date. When quality was measured a month later, the team members were given their bonus—a four-week sprint during which they would be their own product owners and could work on whatever they wanted. They took the opportunity to do some refactoring that had been bothering them. One tester took time to explore a new testing tool. Two developers added a scripting interface to a part of the application. This type of bonus was a win all around and avoided the problems that tend to arise with cash or similar bonuses. Focus on addressing fear. How we behave is often influenced by what we fear. Because of bad past experiences, a product owner may fear an out-of-control development organization that builds only what it wants. This leads the product owner to prefer a development process with a detailed, up-front requirements gathering phase, as this will prevent the developers from building only what they want. On the other hand, executive management may fear excessive schedule delays. This leads them to favor a development process that provides early, precise
Download from www.wowebook.com
30 See ALSO Many fears are the result of waterfallacies and agile phobias. These are discussed in Chapter 6, “Overcoming Resistance.” Many other fears are addressed in the objection sidebars throughout this book.
Chapter 2
ADAPTing to Scrum
estimates of delivery dates. Managers almost always know they won’t get the product by the date promised. But, they reason, by getting the team to commit to an early date and by keeping the pressure on them, they will get it earlier than they would otherwise and can avoid large schedule slips. An architect may favor doing a detailed up-front system design because she excels at this. She fears that if the project’s design phase is removed, then she will look no more brilliant than her coworkers. When communicating with individuals whose desire may be impeded by a fear, look for opportunities to address why the fears are likely unfounded. Help people let go. People will not desire a new future until they can let go of the past. Every transition brings with it the possibility of loss, and with loss comes grief. Allow people time to grieve. Listen and accept their losses without arguing. Loss is personal and subjective. You will never convince people who are grieving that they are overreacting and that what was lost wasn’t “that important.” So don’t try. Don’t discredit the past. In describing the transition and the brave, new agile world you are moving to, do not downplay or discredit the past. Whatever development process existed until now helped the organization succeed to the extent it has. It deserves our sincere appreciation and respect. It couldn’t have been all bad.William Bridges, author of Managing Transitions, describes the consequences of building support for new initiatives at the expense of past efforts.
Many managers, in their enthusiasm for a future that is going to be better than the past, ridicule or talk slightingly of the old way of doing things. In doing so they consolidate the resistance against the transition because people identify with the way things used to be and thus feel that their self-worth is at stake whenever the past is attacked. (2003, 34) See ALSO Chapter 4, “Iterating Toward Agility,”describes the use of improvement communities as a way of engaging employees in the transition to Scrum.
engage employees in the effort. Enlist as many allies at this stage as possible. An ideal ally is an opinion leader who has earned the respect of a large part of the audience you are targeting.The infectious enthusiasm of a few opinion leaders can rapidly spread to others in the organization. Benoit Houle, a ScrumMaster with BioWare, experienced this firsthand.
I was very fortunate to establish a great working relationship with one of the senior programmers on the team who was very respected. He was the ScrumMaster of our initial “pilot” Scrum team for several sprints. He got extremely excited about the process and bought numerous books about Scrum and Extreme
Download from www.wowebook.com
Ability
31
Programming. He did a great job as a ScrumMaster, and his enthusiasm was echoing in every corner of the office. Get skeptics involved as well. Ask employees what they would need to see, experience, or know before wanting to try Scrum; then find ways to give it to them.
Ability All of the awareness and desire in the world won’t get a team anywhere if it does not also acquire the ability to be agile. As we touched on briefly in Chapter 1, “Why Becoming Agile Is Hard (But Worth It),” succeeding with Scrum requires team members not only to learn new skills but also to unlearn old ones. Some of the larger challenges Scrum teams will face include the following: ●
●
●
Learning new technical skills. It is common for developers new to Scrum to discover that while they are still good at their jobs, they aren’t yet good at being agile. They will have to develop skills they didn’t require previously (or could justify ignoring). For example, programmers will need to learn how to evolve the design of a system. Testers often must learn how to test a system without as much reliance on documentation. Both usually need to learn new ways of automating tests. Learning to think and work as a team. Many of us have enjoyed years of working silently in a cubicle, headphones securely on, with as little team interaction as possible. “You develop your part; I’ll develop mine. We’ll talk if we find any problems when we integrate.” Scrum teams are encouraged not to think in terms of my tasks and your tasks but of our tasks. This forces collaboration among team members to new highs. Working in this way also creates a mindset of shared responsibility that will be new to many team members. Learning how to create working software within short timeboxes. Scrum’s short, focused, timeboxed sprints present significant challenges to most teams who are new to working that way. Scrum teams strive to avoid unnecessary handoffs from one specialist team member to another. Developing working software by the end of each sprint will challenge team members to find ways to eliminate wasteful handoffs and to work more closely with each other.
Tools for Developing Ability In most organizations, developing the ability to become agile (and then becoming good at it) will take longer than building awareness or creating desire. Fortunately, there are many good tools for developing ability, including the following:
Download from www.wowebook.com
32
Chapter 2
ADAPTing to Scrum
Provide coaching and training. Scrum is sufficiently different from traditional software development in that training along with on-site coaching or mentoring is usually required. Lori Schubring, who led a successful Scrum adoption, says, “Our ability to be successful with agile started with an educational process. In my opinion, that was key. If we didn’t understand something, we couldn’t possibly welcome it with open arms.” Elizabeth Woodward, one of the leaders of IBM’s agile adoption, concurs.
We initiated our agile transformation by setting a goal to conduct instructor-led two-day Disciplined Agile Development classes at every major site world wide within the first quarter. Within the first three quarters, we had taught over 4,400 software engineers world wide.This was important for getting everyone on the same page, for sharing the vision, and for building a sense of urgency. We found that there was misinformation about agile that needed to be addressed in order for teams to more willingly embrace agile. What seems to work best for most companies is some initial training, oriented at creating a willingness to try Scrum and to understanding its core principles. This general training is usually then followed up with practice-specific training or coaching, such as bringing a test-driven development expert on-site to work hands-on with teams in their code. Shortly after initiating its Scrum adoption, Salesforce.com had me do an onsite training course for more than 30 ScrumMasters, including some individuals who would not be in that role on projects. Two months later it had me do a formal, two-day training session for 35 product owners. Additional on-site coaches were also brought in to work with the teams during this period. In hindsight, even with this early and strong commitment to training and coaching, Chris Fry and Steve Greene wish they had “trained product owners earlier and with more intensity” and that they had gotten “outside coaching earlier.” They offer the following advice to companies transitioning to Scrum: “Get professional help” (2008). Hold individuals accountable. Along with providing coaching and training, employees need to know they will be held accountable for applying the new skills the organization is paying them to acquire. Share information. While developing the ability to be agile, team members will be awash with new information and challenges. Provide opportunities for them to share information and problems. One way to do this is by cross-pollinating teams: Encourage team members to occasionally attend another team’s daily scrum
Download from www.wowebook.com
Ability
33
meeting or sprint review. Another option is to make use of the departmental intranet, Wikis, communities of practice, and reading groups to disseminate infor- See ALSO of pracmation.Yet another avenue for sharing is to ask those who have learned a new skill Communities tice will be described to present a short training session on it to others. Or, if your group is large enough, in Chapter 17, “Scaling go further and have a day-long miniature agile conference. This is exactly what Scrum.” Yahoo! did in its California headquarters. J. F. Unson, a Scrum coach with Yahoo! at the time, describes the approach. At Yahoo! we had a full-day internal open space conference, where anyone could come in and propose topics. We had a number of good sessions, especially ones dealing with enterprise adoption, distributed agile, and so on. We had folks as far as the UK schedule meetings around the open space and participate. It really helps to build community within your company and get people to come up with and own their solutions. Of course, it helped that as a company we had critical mass to generate enough participation. (2008) IBM takes a similar approach, conducting two four-day meetings each year that include technical leaders and managers from around the world plus the technical staff at the local site. Elizabeth Woodward describes how the company conducts a number of smaller “mini-conferences” around the world for IBM employees adopting agile. Each of those meetings has focused on agile, with presentations, education, experience reports, and community working sessions on agile topics. The working sessions were particularly productive because we were able to address key challenges such as using Scrum in a distributed environment, with face-to-face debate and discussion from a diverse, experienced group of people. Set reasonable targets. Presented with a goal such as “be agile now,” many teams freeze, not knowing how to start. A successful Scrum transition needs to be split into smaller pieces. So rather than asking a team to “start doing test-driven development,” the ScrumMaster should ask the team to develop one feature that way in the next sprint. Similarly, organizations must balance a push for rapid progress against the risk of pushing for too much too quickly. By encouraging teams to select realistic, actionable targets, you can help them avoid the hesitation that can occur before initiating any immense undertaking. Just do it. Don’t stall, waiting to know all the answers before you start. The best way to develop the ability to do something is to start doing it. As Greene and Fry advise, “Experiment, be patient, and expect to make mistakes” (2008).
Download from www.wowebook.com
34
Chapter 2
ADAPTing to Scrum
Promotion There are three goals during promotion. The first is to lay the groundwork for the next pass through the ADAPT cycle. By promoting current successes you will have a jump start on creating awareness for the next round of improvements. The second goal is to reinforce agile behavior on existing teams by spreading the news of the good things those teams have achieved. Finally, the third goal is to create awareness and interest among those outside the groups directly involved in adopting Scrum. Many of those groups (such as human resources, sales, marketing, operations, and facilities) can have a dramatic influence on the success of your transition. In the transfer phase, you will actively pursue making sure that such groups will not pull the development organization back away from an agile mindset. In seeking to promote Scrum, avoid turning your efforts into a marketing campaign. Many employees have been through countless change initiatives. The endless parade of such initiatives has left them jaded. Employees in many organizations have learned that if they don’t like one change initiative, wait; another will soon follow to replace it. An announcement that “we’re going agile” is likely to result in derisive comments and skepticism. A good way to counter this cynicism is to avoid naming the transition effort. Teams that have lived through the “Quality 2000” initiative that was followed by “Better, Faster, Cheaper” and then “Customers First!” will not respond well to the “Scrum and Proud of It” campaign. Organizational development expert Glenn Allen-Meyer says that organizations name and brand their change initiatives because this type of marketing is what most organizations do. When people at work hear the marketed messages of change, they know they must either commit, comply, or leave.When they do not see the value-adding features of the change, and they feel they must comply in order to keep their jobs, then the difference between their true feelings and their compliance creates a detachment—a schism—between themselves and their place of work. (2000c, 24) Getting coworkers to commit to a Scrum transition effort rather than merely comply with it (perhaps waiting for it to blow over) is what we would like to achieve with a successful promotion. One of Allen-Meyer’s recommendations is to keep the change process nameless (2000a). My experience from the transitions I’ve directly managed, participated in, or observed confirms this. One benefit to pursuing a nameless transition process is that it is harder to resist what you can’t name. Thomas, a team leader at a very large commercial software developer, experienced this. After reading some of the early books and articles on Scrum, Thomas thought it would be a good fit for his 40-person project. Without any training or access to people with experience, he introduced
Download from www.wowebook.com
Promotion
35
Scrum to the team. Employees were receptive and agreed to try. The team openly promoted the fact that it was doing Scrum as there was no reason to hide it. Unfortunately, it misunderstood a few key elements of Scrum and failed miserably. When I met Thomas, he was still interested in Scrum and had continued reading about it and learning more. Since his failed project, he’d attended a conference and a two-day training class. Eighteen months had passed since the team’s failed attempt at Scrum, and Thomas felt ready to give it another go. So did his team. Despite failing earlier, team members had gotten enough of a glimpse of the benefits that they were willing to try again. Unfortunately, the unique vocabulary of Scrum—ScrumMaster, sprint, product backlog, daily scrum, and even Scrum itself—had taken on negative connotations within the organization. Thomas knew he would not be able to tell his boss they were going to use Scrum again. He told his boss that they would instead use “agile.” (Note the lowercase a rather than the capital A, which would have again implied a brand.) Thomas and his team went on to successfully apply their version of “agile,” which was Scrum without the giveaway vocabulary.
Tools for Promoting Scrum Having established that coming up with an effective naming strategy and matching T-shirts is one tool we won’t use to promote the change process, let’s turn our attention to some tools we can use. Publicize the success stories. As always, communication plays a key role during the promotion activity of the ADAPT cycle. It is especially important to broadcast the successes of the early adopters of Scrum within the organization. A study by McKinsey & Company found that in successful change efforts, the emphasis was on encouraging employees to build on successes rather than on having them fix problems (2008). Promotional activities help shift employees’ energy away from all the problems they uncovered during awareness and focus them instead on the successes they have been able to achieve. A great way to communicate success is through internal experience report presentations from teams that have already adopted Scrum. Nothing beats hearing from someone who is already doing it.These experience reports can be combined with a general “Introduction to Scrum” presentation so that those unfamiliar with Scrum can learn not only what Scrum is but also hear one team’s story of using it. If teams have begun collecting metrics, those can be included in the presentations as well. Early metrics may be nothing more than a survey showing the percentage of people who enjoy using Scrum, the percentage who think it has made them more productive, and the percentage who think quality is higher. Later you can add more rigorous metrics.
See ALSO An editable, redistributable presentation for introducing Scrum is available at www. mountaingoatsoftware. com/scrum-apresentation.
See ALSO Some metrics are presented in Chapter 21, “Seeing How Far You’ve Come.”
Download from www.wowebook.com
36
Chapter 2
ADAPTing to Scrum
Fortunately, the best way to promote the transition to Scrum requires no effort on your part. As Benoit Houle, ScrumMaster at BioWare, puts it: “Like viral marketing, the best vehicle was word of mouth. The staff who worked on an agile team praised the process—greater team ownership, more predictability, less wasted effort and crunch time. Others heard and wanted to be part of it.” Matt Truxaw, a development manager and agile advocate at First American CoreLogic, had a similar experience. I liken the agile process to a whirlpool that builds over time, sucking in new people and groups as it builds. We started with limited buy-in from the developers themselves. By regularly talking about it and helping to promote the successes, we got more developers excited about the process. Working both from within the teams and providing coaching and guidance to the project management group, we gained acceptance across most of that team. Host an agile safari. One of my favorite ways to promote Scrum comes from Google. Team members who are curious about agile but who haven’t had the opportunity to work on an agile team are allowed to go on an “Agile Safari.” When employees go on safari, they join an agile team for a couple of weeks to get a feel for what agile is like and how it works. They experience agile “in the wild” rather than merely reading about it. I really like this idea because it addresses a concern Machiavelli identified 500 years ago when he wrote that people “do not truly believe in new things unless they have actually had personal experience of them” (2005, 22). Attract attention and interest. Shamelessly seek attention. The more often people hear about Scrum (or better, see it or experience it), the better you will be doing at the goal of making its ultimate adoption seem inevitable. A few months into her department’s transition, Lori Schubring attracted attention to the effort in a novel way.
We also held an “Open House” on Halloween for the business to come visit our department and see what we were doing with Scrum. We created a Scrum-themed crossword puzzle and gave away prizes. We put up posters explaining the different aspects of Scrum such as the Scrum Board, Burndown Chart, Product Backlog, and ScrumMaster. We gave away prizes and provided food and beverages. The internal information services staff helped make the food and decorate the building, and the event was a huge success.
Download from www.wowebook.com
Transfer
37
In their book Fearless Change, Mary Lynn Manns and Linda Rising point out that providing food is always a good idea. Not only will you get more attendees, they are likely to be in a better mood (2004). Benoit Houle brought food to sprint reviews at BioWare to encourage broad attendance at those meetings, which he says were “a great way to promote the successes. Everyone in the company was invited to attend.” Houle also successfully used team rooms and walls full of index cards detailing the work of the sprint to attract attention and interest. Our war rooms full of 4" × 6" cards, team composition pictures, and burndown charts were also quite communicative of our team progress and accomplishments. Because of limited wall space in team rooms, we started to spread miles of corkboards within our corridors for our task boards and to show team progress and achievements.
Transfer After three years of pushing, attending literally thousands of daily scrums himself, and running dozens of one-day “Intro to Scrum” classes for more than 500 team members, Gino had much to be proud of. Much of the development department was now using Scrum. Gino had started the company’s shift to Scrum when he was one of its many development managers.Through early results by his teams, he gained a promotion to director of a new group in the company called the “Scrum Office.”The Scrum Office provided support and services to any team that wanted help. It was similar to the project management office (PMO) of a company doing traditional software development. Gino was good in his new role and soon had more than half of the company’s development staff working on projects that were to some extent agile. Before the transition was fully realized, Gino accepted a bigger, better position at a company with bigger, harder challenges in transitioning to Scrum. Back at his old company, the Scrum adoption eventually failed—not because Gino was no longer there, but because no one (not even Gino) ever transferred the implications of Scrum outside the development organization. I visualize Scrum as a rocket. Pushing that rocket forward is the power of its engines. But pulling it back are the forces of gravity. If the rocket is able to push far enough, it can enter into orbit. But if it cannot, it will inevitably get pulled back to earth, right where it started. The implications of Scrum must be pushed far enough into other parts of the organization so that the entire transition is not pulled back by organizational gravity. Gino did a wonderful job of gaining acceptance for Scrum among programmers, testers, project managers, database developers, user experience designers, analysts, and so on. But the use of Scrum by more than 500 developers never
Download from www.wowebook.com
38
Chapter 2
ADAPTing to Scrum
led to changes in human resources, sales, marketing, or other groups. The same individual-oriented bonus and annual review programs existed. Salespeople could still promise one-off enhancements to customers without first discussing such promises with teams. It is impossible for a development team to remain agile on its own permanently. If the implications of using Scrum are not transferred to other departments, organizational gravity from those departments will eventually stall and kill the transition effort. By this, I do not mean that the rest of the organization needs to start using Scrum. What I mean is that the rest of the organization must become at least compatible with Scrum.
Sources of Organizational gravity
See ALSO The new role of product owner is described in Chapter 7, “New Roles.” Changes to the role of tester are described in Chapter 8, “Changed Roles.”
See ALSO Implications of Scrum on the human resources group are discussed further in Chapter 20, “Human Resources, Facilities, and the PMO.”
See ALSO Implications of Scrum on the facilities group are discussed further in Chapter 20.
Previous sections in this chapter provided a list of tools you could use to help move your organization forward in ADAPTing to Scrum. There is really only one tool for transferring agile to other departments: communicating with those departments. So, rather than provide a list of tools, let’s look instead at the departments or groups most likely to possess a lot of organizational gravity. These are the groups that deserve attention during the transfer part of the ADAPT cycle. In working with these groups, maintain a goal of educating, not evangelizing. You want other groups to understand how the development organization benefits from Scrum. You do not need to convert them into staunch supporters of your process. Rather, you want them to understand some of its unique principles and how those might lead to friction between your group and theirs. The following is a list of groups to whom you must transfer the implications of using Scrum. Notice that I have not included testing and product management. These groups are fundamental participants in Scrum rather than groups to which the effects of Scrum are transferred. Involvement of product owners and testers in Scrum is critical and needs to be established at the beginning of the transition effort. Human resources. A development organization using Scrum and the human resources (HR) group are likely to clash in a number of ways. Many organizations have human resources policies that work against the successful adoption of Scrum. A periodic review process that forces managers to rank employees from most to least valuable will undermine efforts to encourage teamwork. Equally damaging is a review process that values individual contributions while ignoring teamwork. Facilities. Tales of meddling from the “Furniture Police” are common (DeMarco and Lister 1999). Many teams are told they cannot hang index cards, burndown charts, or others signs of progress or work on the walls. Few teams are allowed to adjust their own cubicles; many have learned that the best way around this is
Download from www.wowebook.com
Transfer
39
to tear down or move cubicles over the weekend in the vein of “it’s better to ask forgiveness than permission.” Benoit Houle of BioWare has a more encouraging story of successfully transferring the implications of Scrum to his facilities group. Facilities redesigned our floors to support agile team rooms.They built us bigger rooms to support teams of six to eight people. Our facilities team has a web application that catalogues everyone’s location and allows us to easily submit a move through our intranet. We all have the same desks, so most of the time the only items we are moving are the computer and accessories. It is quick and painless. Marketing. In many organizations, development groups are so bad at projecting ship dates that the marketing group stops asking and just makes them up.This also happens in organizations where the marketing group is much more powerful than the development group and can therefore dictate desired dates. In transferring the effects of Scrum to the marketing group, a key focus should be on educating them about the transparency provided by Scrum. Most marketing groups don’t like having to lock down plans a year in advance any more than development teams do.The marketing group may need to schedule an ad campaign nine months in advance. But, just like development teams, they usually prefer to have a little flexibility. Rather than specify the exact contents of the ad now, they’d prefer to commit today to running an ad but specify the exact contents of the ad closer to publication date. A Scrum team’s progressive refinement of plans combined with its strict adherence to dates should prove beneficial to marketing groups that are open to it. Finance. The finance group often intersects with Scrum projects in two areas. First is the forecasting of project schedules and budgets. It will be important to get the finance group to understand that—regardless of the development process employed—a team cannot create an estimate that is accurate within 5% from a new product description written on a napkin. Such unrealistic requests usually come from a finance department that has been burned in the past by bad estimates from development teams. It will take time to restore the finance group’s confidence and trust in developers. After a few Scrum teams have started to demonstrate success with the new approach, it is usually helpful to meet with your finance department. In that meeting, acknowledge past project-planning sins, but also show that while Scrum still cannot guarantee on-time delivery, it can provide early exposure to possible schedule slips.
Download from www.wowebook.com
40
Chapter 2
ADAPTing to Scrum
The second area in which development and finance often intersect is in the tracking or reporting of hours. Although Scrum does not require a team to track hours worked, the team should be willing to do so if the finance department needs this information.This would be the case, for example, in a contract development company that bills customers by the hour. Related to the tracking of hours can be a finance department’s desire to capitalize the cost of the project. Capitalizing a project refers to spreading the development cost over the projected useful life of the project rather than accounting for those costs in the month they occurred. Capitalization guidelines vary from country to country, and many of them are based on outdated concepts, including that a project cannot be capitalized until technical feasibility has been demonstrated. From past exposure to development processes, we’ve trained finance departments to think that technical feasibility is achieved after analysis and design are done. Without distinct analysis and design phases on a Scrum project, the finance group may find it hard to determine when technical feasibility has been achieved. I’ve discussed this with many finance departments and have always been able to make the case that technical feasibility is achieved after no more than a few sprints. After all, if the team has produced working software that includes one feature from the finished product, then it must be technically feasible. While I can understand the counterarguments to this position, those arguments could also be applied to considering something technically feasible after analysis and design are done but when nothing has been coded. There are groups beyond these to whom you will need to eventually also transfer the implications of Scrum. For example, you may work with a project management office, sales, information technology, operations, hardware development, and other groups with organizational gravity. Transferring the implications of Scrum to them will be important to your long-term success. ❑
Identify the ADAPT activity that most closely describes you. Do this for your team, your department, and your organization. Identify three things you could do to move one of these to the next level of adaptation. Choose one (or work with your team to narrow down the list, if applicable) and begin to implement it.
❑
If you have already begun to adopt Scrum, think about promotion. Identify ways to promote your early successes so that others become intrigued by the process.
Things To Try now
Putting it All Together Like Scrum itself, ADAPTing to Scrum is iterative. It begins when some in the organization develop an awareness that the current way of working is no longer
Download from www.wowebook.com
Additional Reading
41
producing acceptable results. As awareness spreads, some individuals develop the desire to try Scrum in an attempt to improve the situation. Through trial-anderror, these early adopters within the organization develop the ability to be successful with Scrum. A new status quo may emerge with a small number of teams successfully using Scrum within a broader organization that does not. As these initial Scrum teams continue to improve their use of Scrum, they begin to promote their successes—sometimes informally as might occur over lunch with friends on another team, other times more formally as in a department-wide presentation. This helps individuals on other teams begin their own progressions from awareness to desire to ability. And then soon these other teams begin to promote their successes as well. All of this early success is nice, but it is jeopardized if adopting Scrum is viewed as something that occurs entirely within the development organization. For continued long-term success, it will be necessary to transfer the implications of using Scrum to other departments that will be affected, including sales, marketing, operations, human resources, and facilities. These groups do not need to use Scrum—we don’t need salespeople drawing burndown charts or facilities doing daily scrums. But, unless these groups make small but important changes in how they interact with the development group, they will affect the development group’s ability to be agile. In the next chapter, we’ll explore choices among patterns you can emulate as you become able to transition to Scrum. We’ll consider whether it’s best to start small or go all in and how much promotion should occur at the beginning of the transition effort.We’ll also discuss several ways to spread Scrum beyond your initial project or projects. Understanding the ADAPT process laid out in this chapter will inform the decisions you will be asked to make in the next.
Additional reading Derby, Esther. 2006. A manager’s guide to supporting organizational change. Crosstalk, January, 17–19. In this article, Esther Derby, coauthor with Diana Larsen of Agile Retrospectives (2006), presents ten insights on what a manager can do to support a change initiative. Most of the insights are focused on the awareness and desire phases. Hiatt, Jeffrey. 2006. ADKAR: A model for change in business, government and our community. Prosci Research. ADKAR, which is an acronym for Awareness, Desire, Knowledge, Ability, and Reinforcement, is a generic model for personal and organizational change. It served as an inspiration in creating the ADAPT model. This book offers excellent, although general, advice on awareness, desire, and ability.
Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
Chapter
3
Patterns for Adopting Scrum
There are many different routes an organization can take to adopt Scrum. For-
tunately, from looking at companies that have already transitioned, we are able to identify some common patterns of how to do it successfully. In this chapter, we look at the strengths and weaknesses of four patterns, as well as when each may be appropriate. The four patterns form a pair of questions that must be addressed at the start of any Scrum adoption effort. These questions are as follows: ●
●
Should we start with one or two teams, or should we convert all teams at the same time? Should we announce our intent (perhaps just to others in the company but perhaps publicly as well), or should we keep the change quiet for now?
In addition to providing guidance for answering those two questions, we explore three options for spreading Scrum after the initial effort is underway. Finally, the chapter concludes by considering how soon a new Scrum team should begin focusing on adopting agile technical practices.
Start Small or Go All In Conventional, long-standing advice regarding transitioning to Scrum or any agile process has been to start with a pilot project, learn from it, and then spread agile throughout the organization. This approach is the frequently used start-small pattern in which an organization selects typically one to three teams (of five to nine people each), gets them successful, and then expands Scrum from there. As Scrum spreads through the organization, new teams benefit from the lessons learned by the teams that have gone before. There are many variations of start small, depending on how many people the organization wants to transition and how quickly they want to do it. Start small can also be applied differently based on how riskaverse or uncertain about the transition the organization is. For example, in some cases the first team or teams will finish their projects before a second set of teams 43 Download from www.wowebook.com
44
Chapter 3
Patterns for Adopting Scrum
even begins. Other organizations will take an overlapping approach, where the second set of teams starts only one or two sprints after the first. The start-small pattern, while popular, is not for everyone. Salesforce.com, for example, followed the opposite pattern (Fry and Greene 2006). I remember answering my phone on October 3, 2006, and hearing Chris and Steve from Salesforce.com tell me that they had just converted 35 teams to Scrum overnight. They asked if I’d like to help. My initial thought was that they needed a psychiatrist more than a Scrum consultant. Not one to shrink from a challenge, though, I agreed to help, packed a copy of Freud alongside my laptop, and set off for their office in San Francisco. Part of what I saw there wasn’t entirely unexpected— teams and individuals in an uproar over such a sudden, far-reaching change—but I also saw other things that helped this large-scale, rapid adoption succeed. Salesforce.com was pursuing the all-in pattern, which draws its name from a poker player who bets all of his chips on one hand. Salesforce.com has a harddriving, aggressive, achievement-driven culture that would not have been a good fit for a cautious start-small approach.When key executives were presented with a proposal to adopt Scrum, they were convinced. They felt that if Scrum was worth doing for one team, it was worth doing for all teams, so they chose to go all in. Surprisingly, the all-in and start-small patterns can be combined. An increasingly common approach is a one- to three-team pilot project followed immediately by going all in. The pilot in this case serves the typical purpose of allowing the organization to learn about Scrum and how it will function there. However, the pilot in this scenario also serves the more important purpose of increasing organizational awareness about Scrum. If you’re going to transition 200 or more people all at once, it is extremely helpful to be able to point to one team who has already done it and say, “We’re all going to do what they did.”
Reasons to Prefer Starting Small The start-small approach offers several advantages. ●
●
Starting small is less expensive. An all-in transition will almost certainly cost more than starting small. Because of the greater number of people learning a new way of working all at the same time, all-in transitions generally rely more heavily on outside coaches, ScrumMasters, and trainers. The slower pace of a start-small adoption allows the organization to build internal expertise and then use that to help the teams that start later. Starting small also saves money because early mistakes affect only a subset of the organization.Tom Gilb, who was perhaps the original agilist, has written, “If you don’t know what you’re doing, don’t do it on a large scale” (1988, 11). Early success is almost guaranteed. By carefully selecting the initial project and team members, you can almost guarantee the success of your first
Download from www.wowebook.com
Start Small or Go All In
●
●
●
45
Scrum project. You may consider this cheating; I don’t. When starting small, a goal of the first few projects is to generate the knowledge that will enable the successful rollout of Scrum.There may be value in starting with a project and team that make success easy and then learning from its experiences. Additionally, an early success can be vital to gaining buy-in from skeptics or fence-sitters. Starting small avoids the big risk of going all in. An all-at-once transition can be very risky. Small mistakes will be magnified across the entire transition effort. Perhaps the most significant risk to an all-in approach is that you will be unlikely to get a second chance. If you start to transition the entire organization, make a mistake that increases resistance, and then revert to your pre-Scrum process while figuring out how to overcome the newly discovered issues, it is unlikely that team members will give you a second chance to start the transition. Resistance by that point will likely be so entrenched that the transition effort will have failed. By contrast, if you start small and find a fatal flaw in how you’ve started, you can keep the next round the same size as the current one, rather than expanding, effectively restarting the transition process. Starting small is less stressful. Twenty-first century organizations and their employees are under constant stress. An announcement that the whole development organization is adopting Scrum, which affects so many aspects of everyday work, could be the proverbial straw that breaks the camel’s back. The stress of transitioning is reduced by starting small because early adopters become coaches and ambassadors.They encourage other groups to make the transition with stories of their successes and honest discussions of the challenges they faced and overcame. Starting small can be done without reorganizing. Most organizations that fully adopt Scrum will eventually undergo some degree of reorganizing. This can create further stress and can increase resistance from some individuals. By starting small, the need to reorganize can be put off longer, ideally until valuable experience with Scrum has been gained.
Reasons to Prefer Going All In Just as there are reasons to prefer starting small, there are reasons to prefer an all-in transition: ●
Going all in can reduce resistance. In anything less than an all-at-once transition, there will always be some skeptics who will hold out hope that the whole effort is a pilot that will soon be abandoned. Like Cortez burning his boats at Vera Cruz to prove his resolve to his soldiers, an organization that goes all in is demonstrating both its commitment to the
Download from www.wowebook.com
46
Chapter 3
●
SEE AlSo Advice on how a Scrum team can best work in conjunction with a traditional team is offered in Chapter 19, “Coexisting with Other Approaches.”
●
Patterns for Adopting Scrum
new process and also that it will not turn back. This level of visible commitment to the change can be beneficial in helping the change succeed. It avoids problems created by having Scrum and traditional teams work together. If you transition anything short of the entire company all at once, you run the risk of having some teams using Scrum and others not. This means there will be times when a Scrum team needs to coordinate work with a traditional team, which creates challenges because of the different attitudes Scrum and traditional teams bring to things like planning, deadlines, and communication. These problems go away when the entire organization adopts Scrum at the same time. Chris Fry and Steve Greene of Salesforce.com report that “the key factor driving us toward a big-bang rollout was to avoid organizational dissonance and a desire for decisive action. Everyone would be doing the same thing at the same time” (2007, 137). An all-in transition will be over more quickly. One of the central tenets of this book is that an organization is never “done” becoming agile; there are always improvements to be made. However, there is definitely a time when employees can look back and say of the transition that the worst is over. An organization that goes all in can reach this point more quickly.
Choosing Between Going All In and Starting Small
SEE AlSo We explore ways to spread Scrum to other teams later in this chapter.
As I mentioned at the start of this chapter, starting small has been the default approach recommended by most agile authors and used in most agile adoptions. The combination of this approach’s low risk and high likelihood of success make it hard to find fault with. Always choose to start small when there is a reluctance by leaders in the organization to fully commit to Scrum. Success, even on a small scale, can be the best way to convince the skeptics. Always start small when there is a high cost associated with failure. If the cost of failure is too high for those leading the transition, starting small is the way to go, even if it may not be best for the organization as a whole. Start small is probably not the best approach when your organization urgently needs the benefits of Scrum. (But if you do choose to start small, scale quickly.) Starting small is safe, but it’s slow. Going all in should be used in limited cases. Consider going all in if time is critical. Although an all-in approach may cost more money, it will cost less time. If time is your primary concern, all in may be the best solution. Consider going all in if you, like Salesforce.com, want to send a clear message to a small number of critics and stakeholders that Scrum is here to stay. Never go all in without enough experienced ScrumMasters to serve each team. It doesn’t matter in the short term whether these ScrumMasters are internal or external; but remember that eventually you’ll want all of your ScrumMasters to be internal employees. Finally, size
Download from www.wowebook.com
Public Display of Agility or Stealth
47
matters. If there are only ten of you, you might as well go all in. But for teams of more than perhaps 400, going all in may not be logistically possible. Whichever route you choose for adopting Scrum, remember that choosing this pattern is only the first of the many decisions you’ll need to make when transitioning.You will next need to decide whether to make your transition public.
Public Display of Agility or Stealth The next choice to make is whether or not to publicize your transition. One option is to make a public display of agility. In this approach, the team or organization announces with great fanfare that it is adopting Scrum. Depending on the scope and significance of the transition, the announcements may range from lunchroom comments to other teams all the way up to press releases in the national media. No matter the extent of the publicity, with a public display of agility, teams make an effort to inform others that something agile is going on. In contrast to a public display of agility is a stealth transition. In a stealth transition, only the team members know they are using Scrum until the project is complete. I found a group doing a stealth transition at one of my clients. On my first visit to this client, I spoke with Sarah, the director of the company’s project management office. She told me that the transition to Scrum was well underway. It had begun shortly after I delivered a two-day training class to many developers in its headquarters office. Sarah shared with me a well-thought-out plan she had outlined to introduce Scrum across her company’s more than 200 developers. Sarah’s plan showed four initial pilot teams, each of which had been selected for specific reasons. One team was chosen for its willingness to relocate into a shared team space very different from the dedicated cubicle environment in use at the time. Another team was chosen because it would be one of the first to use a new technology in which the company was making a significant investment. The other two teams were selected to be part of the pilot for equally good reasons. Sarah’s plan was great because it would enable teams to maximize the learning right from the outset of this transition effort. I left Sarah’s office planning to visit each of the four teams so that I could get their perspective on how things were going. Strangely, though, I didn’t find four teams—I found five. When I figured out which of the five wasn’t one that Sarah had told me about, I went back and talked with that team some more. I discovered that it was not an officially sanctioned part of Sarah’s pilot effort. The members had noticed the goings on of one of the official teams, liked what they had seen, and decided to try it themselves. They had a vague sense that they probably shouldn’t be doing what they were doing and had placed their wall-hanging task board and burndown chart well inside a labyrinth of cube walls. I had only
Download from www.wowebook.com
48
Chapter 3
Patterns for Adopting Scrum
stumbled across it because I was unfamiliar with the building and had gotten lost looking for one of the official teams. This team was doing a stealth transition. Members were using Scrum but were keeping their activities to themselves until the project was complete. There are varying degrees of stealth—some teams may actively try to keep what they’re doing quiet while others merely don’t publicize the change.
Reasons to Favor a Public Display of Agility There are many good reasons for making a public display of agility. Among them are the following: ●
●
●
●
●
Everyone knows you’re doing it, so you’re more likely to stick with it. Standard advice to anyone attempting to adopt or abandon a habit is to solicit the help of your friends. Whether you are starting a diet, quitting smoking, or starting an exercise program, telling your friends about the change is a good idea. You’ll likely feel an unspoken pressure to succeed because you’ve announced your intentions; your friends will also be able to support and encourage you. The same is true when transitioning to Scrum. A public display establishes a vision to work toward. Publicly proclaiming your intent provides an opportunity to create thought and discussion around the goal. With the intent out in the open, team members will feel comfortable talking about the transition with those outside the team. They’ll be able to share successes and failures. Those interested in the transition (perhaps wishing they could be part of it) will offer advice; those opposed will offer resistance. A public display can provide the opportunity to engage both groups, providing the opportunities to encourage the former group and to overcome the objections of the latter. operating in the open is a firm statement of your commitment. A stealth transition can be perceived as a bit wishy-washy. It is as though the team or organization is saying, “We believe in this but we want to hedge our bets by having the chance to back away if it doesn’t go well.” There’s no backing away from a public display. It makes a powerful statement that not only does the organization plan to initiate the transition, but it also plans to be successful at it. You can solicit organizational support. If you’re trying to keep the use of Scrum quiet, you’ll have limited ability to reach outside the team for assistance. There are many obstacles you may encounter as you transition; before abandoning the assistance of possible allies in overcoming them, make sure the advantages to stealth are compelling. Stating your goal and then achieving it sends a powerful message. Announcing at the end of a project that the project was successful because
Download from www.wowebook.com
Public Display of Agility or Stealth
49
it secretly used Scrum is much less compelling to skeptics than telling them up front. Baseball player Babe Ruth’s most famous home run was the 1932 “called shot.” With a count of two balls and two strikes, Ruth pointed to the centerfield fence and hit the next pitch into the centerfield bleachers. Saying what you’ll do and then doing it is more powerful than announcing your goal after it has been achieved.
Reasons to Favor a Stealth Transition Stealth transitions may seem a bit sneaky, but there are actually quite a few advantages to keeping a low profile. These include ●
●
You have a chance to make progress before resistance starts. A public announcement about the transition will bring resistors and naysayers out of the woodwork. Their best chance to avert the change is before it gains much momentum, and so they will argue strongly against it after it is announced. A stealth transition keeps additional pressure off. If adopting Scrum is a high-publicity affair with proclamations in company newsletters, the intranet, and so on, the team can feel a great deal of pressure to succeed— both at the project and at the transition. For teams that thrive under pressure this might be good. However, when the project is finished you won’t know if it had been successful because of Scrum or because of the additional pressure the team was under. Bob Schatz and Ibrahim Abdelshafi did not announce a grand change of process when they led Primavera’s successful transition to Scrum.
One of the first things we didn’t do was start telling everyone that we planned to use a new process. We didn’t want to make people apprehensive, and we wanted to give them time to adjust to the changes. Plus, when you run around announcing your new process and all its benefits, you can quickly set unrealistic expectations. (2005, 37–38) ●
●
No one knows about it until you tell them. When operating in stealth mode, you can wait until the project is successful before indicating that the project was run in a different way. Or, if the project fails, you can adjust how you are doing Scrum, try again, and only tell people after you’ve figured out the nuances of doing so that lead to success in your environment. If no one knows you’re doing Scrum, no one can tell you to stop. If you start so quietly that no one but the individuals involved know, there’s no one who can tell you to stop. I’ve seen individual teams choose the stealth approach under the premise of it being easier to ask forgiveness than permission. I’ve also seen vice presidents of development or project
Download from www.wowebook.com
50
Chapter 3
Patterns for Adopting Scrum
management offices choose to introduce Scrum in stealth mode so that they could prove tangible benefits before having to debate the merits of Scrum with groups they knew would resist.
Choosing Between a Public Display and Stealth I find that organizations willing to make a public display of agility are more likely to enjoy a successful transition than those that try a stealth approach. Always choose to make the transition publicly known when you are confident in Scrum and committed to the transition. Similarly, strongly consider a public display if you expect there will be stiff resistance to the change but want to overcome it quickly. In contrast, choose a quieter approach when you want to experiment either with all of Scrum or just parts of it. For example, maybe you introduce daily meetings—don’t call them daily scrums in this case—and see how that works. Then introduce the idea of working in timeboxed sprints. If these go well, maybe start calling what you’re doing agile or Scrum and proceed from there. Additionally, always choose a stealth approach when it is your only option. If you don’t have the political clout to say, “We’re doing Scrum,” or if doing so will create too much resistance, start quietly.
Patterns for Spreading Scrum Getting started with Scrum is one thing; spreading it across the organization is another. Unless you have chosen an all-in transition, you will need to build upon the successes of the first few teams as you move Scrum into other teams.There are three general patterns you can use for spreading Scrum beyond the initial teams. The first two patterns involve taking a team that has begun to be successful with Scrum and then using its members to seed new teams. The third pattern takes a different approach and involves spreading Scrum using internal coaches.
Split and Seed The split-and-seed pattern is typically put into use after the first couple of teams have adopted Scrum and run at least a handful of sprints. By that point, team members are beginning to understand what it is like to work on a Scrum team. They certainly won’t have figured everything out, but sprints should be ending with working software, and team members should be working together well. In short, the team probably has a long way to go to get good, but Scrum is starting to feel natural. It is at this unlikely point that we split the team up.
Download from www.wowebook.com
Patterns for Spreading Scrum
51
In the split-and-seed pattern, one functioning Scrum team is split in two, with each half of the original team forming the basis of a new team. New people are then added to these splinter teams to form new Scrum teams. This pattern is shown in Figure 3.1, which shows the creation of two teams from one original team. A large initial team could be used to seed as many as four new teams, especially if the initial team included some members with previous Scrum experience or a natural aptitude for it. FIGuRE 3.1 The split-and-seed pattern applied to two initial teams.
The new team members can be either newly hired employees or existing employees moving onto their first Scrum projects. The idea behind the splitand-seed pattern is that newly formed, second-generation Scrum teams will have an easier time learning the mechanics and practices of Scrum because they will have guidance from the experienced members of the team. The new teams are left together for a few sprints until that team begins to jell and its new members have developed a feel for Scrum.Then, again, the functioning teams are broken up into smaller teams and new members are added to fill out the teams. This cycle is repeated until Scrum has been fully introduced. In a large, enterprise rollout of Scrum, you do not need to leave each generation of teams together for the same number of sprints.You can instead split each team whenever it’s ready.
Grow and Split The grow-and-split pattern is a variation of the split-and-seed approach. It involves adding team members until the team is large enough that it can be comfortably split in two, as shown in Figure 3.2. Immediately after splitting, each of the new teams will probably be on the small end of the desirable size range of five to nine members. After allowing the new teams one sprint at this reduced size, new members are added until each team becomes large enough that it can also be split. This pattern repeats until the entire project or organization has transitioned.
Download from www.wowebook.com
52
Chapter 3
Patterns for Adopting Scrum
FIGuRE 3.2 The grow-and-split pattern used to create two teams.
Internal Coaching Philips Research’s Scrum adoption is an example of the third pattern for spreading Scrum: internal coaching. Philips had begun adopting Scrum and was facing a problem. Like many organizations, it had some teams that were excelling with their new agile approach and others that were struggling. Philips’ Christ Vriens solved the problem by using internal coaching. On each team that was doing well, he identified one person who truly understood what it meant to be agile and designated that person as a coach to another team that had not yet progressed as far in its understanding and use of Scrum. Coaches were given specific responsibilities, such as attend sprint planning, review, and retrospective meetings; attend one daily scrum each week; and be available for two hours each week to provide other assistance to the mentored team as needed. Coaches were not excused from their responsibilities on their original teams, but it was acknowledged that each coach would have fewer hours to contribute to those teams.
Reasons to Prefer Split and Seed The split-and-seed pattern’s advantages are rooted in its quick-spreading nature. ●
●
You can add teams more quickly than with most other approaches. Each new team should ideally include at least 2 members of the previous team. This means that possibly as soon as after 2 or 3 sprints, a team of 8 people could conceivably be split into four 2-person groups used to seed a second set of teams. If each of those 4 teams had 8 people you would have 32 Scrum team members. A few sprints later these 32 people could be used to seed 16 more teams, each with 8 team members for a total of over 100 Scrum-experienced people after only 5 or 6 sprints. Each team has someone with Scrum experience to help guide them. Only the very first teams to transition will be forced to do so without someone
Download from www.wowebook.com
Patterns for Spreading Scrum
53
on the team with Scrum experience. All subsequent teams will benefit from having at least two (and hopefully three or four) team members with at least a couple of sprints of experience under their belts. This can help reduce the discomfort some people will feel about transitioning to something new and unfamiliar.
Reasons to Prefer Grow and Split The grow-and-split pattern spreads Scrum a bit more slowly than does the splitand-seed approach but comes with some key advantages. ●
●
You don’t have to destroy any existing teams. The primary problem with the split-and-seed strategy is that teams who are just starting to jell and get a handle on Scrum are demolished to form the basis of new teams. Breaking up a good team is always something that should be done with caution. Growing the team before splitting it overcomes this shortcoming because the team is kept together until it is large enough to form two complete teams, each with agile experience. Team members feel more continuity from sprint to sprint. When using the split-and-seed pattern, teams are constantly being split and reformed before a true sense of team camaraderie is established. Because the growand-split approach divides a team only when it has gotten too big, members can stay together longer, and there is less feeling of disruption.
Reasons to Prefer Internal Coaching The internal coaching approach is generally my preferred approach. Not surprisingly, there are a strong set of advantages to it, including the following: ●
●
●
Well-running teams do not need to be split. A drawback to the prior patterns is that functioning teams are split to form the foundations of new teams.When using internal coaches, teams stay intact with only the minor disruption of an occasional outsider (the coach) joining the team. Coaches can be hand-selected for new teams. An approach like the splitand-seed pattern takes a whole-team approach to coaching: The new team is coached collectively by the seeding team members. Some of those individuals will be good in that role; some will not. With internal coaching, the most appropriate coach can be selected for each new team. Coaches can be moved from team to team. After awhile a team and its coach become stale. A fresh pair of eyes can be helpful in identifying new ways to improve.When internal coaches move from team to team they act like bees, pollinating each team with new ideas.
Download from www.wowebook.com
54
Chapter 3
Patterns for Adopting Scrum
Choosing Your Approach There are two driving factors in choosing among these three patterns for spreading Scrum: How quickly do we need to spread Scrum to additional teams, and do we have good internal coaches who can assist the new teams? The answers to these questions will be key to helping you choose the pattern that best fits your organization. In general, consider using split and seed when you are in hurry. The splitand-seed approach can be one of the fastest ways to spread Scrum through an organization. The approach can be accelerated in a couple of different ways: First, you can split teams a bit earlier than might be ideal. Second, you can split teams into more new teams than might be ideal, perhaps four new teams instead of two, even if this means that some new teams get some less-than-ideal coaches from the earlier teams. Be cautious, though, about using split and seed if the technology and domain cannot support moving people among teams. Changing team membership is always detrimental to productivity. That loss can be offset, however, by the benefits of quickly spreading Scrum through a large project or organization. However, in some cases, it is just not practical to move people between teams. For example, seeding a .NET team with Java programmers just because they have three sprints of Scrum experience would not be a good idea. The grow-and-split pattern is perhaps the most natural approach, as it mirrors what would probably happen if no one intervened to help the spread of Scrum. In most organizations, people move between projects, carrying good practices with them. The grow-and-split approach is simply a more directed approach than letting this happen naturally, which would take much, much longer. Consider using grow and split when there is not enough urgency to push you to the split-and-seed approach. Because growing and splitting a team is a less aggressive (and less risky) approach than splitting and seeding a team, it is often used in similar situations but when there is a bit less urgency. Also consider using grow and split when the team size is growing anyway. True to its name, the grow-andsplit approach works best when teams are expanding. Internal coaching can be used as a spreading strategy on its own, or it can be used to augment either of the other approaches. This approach works best under certain conditions: ●
●
When the group is large enough that good practices won’t fully spread on their own. One of the strengths of this pattern is that coaches can move from one team to another, spreading good practices as they do so. If your organization is small enough that sharing good practices won’t be a problem, then you may not need this approach. When splitting teams is not practical for your projects. If any of the drawbacks to splitting teams concern you, the internal coaching approach is a good antidote.
Download from www.wowebook.com
Introducing New Technical Practices ●
55
When you have enough internal coaches or can bring in outside help. An ideal coach is someone who fundamentally understands Scrum and has probably worked in an agile way for years before even hearing the word. These individuals can be hard to identify in advance; they aren’t necessarily the most experienced team members. If you don’t have enough good coaches, consider using one of the other patterns initially. After enough teams have run a few sprints, you can begin to augment a seeding approach with internal coaches.You can also spread the coaches you do have out a bit more by having each coach assist more than one team. If budget allows, you can also bring in outside consultants until you have built up your internal coaching corps.
Introducing New Technical Practices One final decision facing change agents, ScrumMasters, and new Scrum team members themselves is how soon the team should adopt new technical practices. One school of thought is that everything should start with the technical practices. If a team is using the right technical practices—simple design, automated testing, pair programming, refactoring, and so on—then agility will be the natural result. The alternative view is that a team should be left alone longer and given time to discover the technical practices that work best in its environment. ScrumMasters, managers, and coaches may eventually nudge a team toward trying different practices. “Would this have happened if we had more automated tests?” a ScrumMaster might ask the team. But in general, the team is given longer at the start to work without pressure to adopt or even try specific new technical practices. In this section, we’ll consider both the reasons to encourage an early start at trying new technical practices and the reasons why delaying might be a better choice.
Reasons to Start Soon There are three very good reasons for putting an early emphasis on adopting new technical practices: ●
Very rapid improvements are possible. Many of the technical practices can provide some quick wins to the team and organization. Pair programming, for example, can help cross-train programmers across more areas of the system. Introducing a continuous build process can reduce integration hassles to near zero. Other practices—test-driven development, for example—have steeper learning curves, but even these are measured in days and weeks rather than months and years.
Download from www.wowebook.com
56
Chapter 3 ●
Patterns for Adopting Scrum
If the team doesn’t try new technical practices early, it might never try them. Too many Scrum teams adopt the bare minimum of Scrum and stop there, deciding that the improvements already achieved through their new iterative and incremental work style are sufficient. By not considering or trying new or improved technical practices, these teams forgo much of the improvement they could have made. I tend to think of such teams as having learned to work iteratively but having not become agile. Gabrielle Benefield reports having witnessed this problem at Yahoo! while she was the company’s director of agile product development.
The most visible symptoms of dysfunction in Yahoo! product development were at the project and team layer (centered around issues of planning, project management, release management, and team interactions), rather than at the technical practices or tools layer. As a result, Yahoo!’s initial focus was on the adoption of Scrum. There was active debate about whether agile engineering practices should also be adopted in parallel; in hindsight, it would have accelerated the benefits had they been. (2008, 461) ●
It may address the project’s most pressing issues. Introducing a team to the agile technical practices can solve an array of typical project problems, including poor quality, over-engineered solutions, long delivery cycles, and so on.There are other problems, though, that are not addressed by introducing these practices. For example, a project with a disengaged product owner will experience slow or incorrect decision making. This problem will not be remedied solely by introducing new technical practices. The same is true for a project with multiple product owners, each with a competing agenda, or for a project with strong personality clashes among team members. If your project’s most pressing issues are ones addressed by one or more of the common agile engineering practices, consider emphasizing those practices early in the transition.
Reasons to Delay Just as there are strong reasons for encouraging a team to adopt new engineering practices early, there are also reasons why it may be better to wait: ●
There may be strong resistance to some practices. Introducing certain technical practices can be one of the most difficult challenges you face when transitioning. Many individuals are extremely reluctant to try new things, such as simple design, pair programming, and test-driven development. Although you may have good reasons to push the team to try new
Download from www.wowebook.com
One Final Consideration
●
57
practices close to the outset, they will need to be weighed against the risk of increased resistance. Team members may already have their hands full. Just learning the fundamentals of working on a Scrum team can be challenging in many organizations. The added stress of also learning new technical practices may simply be too much for some teams, causing them to shut down and not try. Given enough time, the pressure of delivering working software within Scrum’s strictly timeboxed sprints may bring these same teams to the realization that they need to try new technical practices.
one Final Consideration This chapter presented two questions that will confront any organization transitioning to Scrum: Start small or go all in? Public display of agility or stealth? Answers do not need to be binary—there is a great deal of middle ground between starting small and going all in for most organizations. The patterns for spreading are similar.They can be used on their own or combined as needed to fit your particular circumstances. Perhaps, for instance, you first decide to split and seed, but as time passes, and enough teams exist, you can slow down and let teams grow before splitting them, while also speeding learning through the use of internal coaching. In addition, no matter what pattern you choose, leaders of the transition effort (and those participating in it) must address how much to change at any one time for the team or teams transitioning. Attempt to change too much and teams are disoriented; change too little and you risk exhausting people through a marathon of small changes. Joshua Kerievsky, a senior consultant with the Cutter Consortium, is in favor of enacting all changes at once. He is opposed to what he calls “piecemeal transitions” because he says they ●
Are more painful because the change process is protracted
●
Fail to address root problems
●
Rarely lead to complete transitions
●
Produce changes too slowly for the business to benefit from
●
Tend to be done without expert help, resulting in making easily avoided, costly mistakes (2005)
Although Kerievsky raises some good points, they ultimately derive from thinking of the transition to agile as a one-time thing that can be completed. On the contrary, adopting an agile approach such as Scrum is a process of continuous improvement. There is no predefined end state. Because of this, it is incorrect to talk about a “complete transition” or a change process that takes too long. Change
Download from www.wowebook.com
58
Chapter 3
Patterns for Adopting Scrum
is no longer something organizations “go through.” Change is now a perpetual, ongoing occurrence. Writing in the Agile Journal, Liz Barnett presents a different view than Kerievsky’s. Starting slow is the way to go. For the vast majority of companies interested in agile practices, incremental adoption represents the most pragmatic way to improve their software development organizations while managing risk. As they implement organizational, process, and technology changes, teams can continually reassess their progress and determine the most pragmatic next steps. It’s the agile way to become agile. (2008) Kent Beck and Cynthia Andres, authors of Extreme Programming Explained, agree, acknowledging the near necessity of starting with a subset of practices and new ways of working and then improving one thing at a time. It’s easy to start by changing one thing at a time. I think it’s hard to jump in and do all the practices, embrace all the values, and apply all the principles in novel circumstances by reading this book and deciding to do it. The technical skills in XP and the attitudes behind them take a while to learn. XP works best when it is done all together, but you need a starting place. (2004, 55) This brings us to our next chapter.After you’ve decided to transition to Scrum, understood the ramifications of change, and made your decisions regarding the pattern you are most likely to emulate, it’s time to begin making the changes Scrum requires. As Beck and Andres so aptly point out, the best way to do that is iteratively. We explore how to use the Scrum framework, along with specialized communities of practice called improvement communities, to adopt and spread Scrum, bring about continuous improvement, and transfer agile ideas throughout the organization.
Additional Reading Beck, Kent, and Cynthia Andres. 2005. Getting started with XP: Toe dipping, racing dives, and cannonballs. PDF file at Three Rivers Institute website.www. threeriversinstitute.org/Toe%20Dipping.pdf. Beck and Andres use entering a pool to describe three different approaches for adopting Extreme Programming. Toe dippers enter slowly, adopting one practice at a time. Cannonballers make a big splash and deal with the sudden chaos it creates but transition quickly. They describe a racing dive as an “assisted cannonball,” referring to doing a lot of changes quickly but with guidance from an experienced coach.
Download from www.wowebook.com
Additional Reading
59
Benefield, Gabrielle. 2008. Rolling out agile in a large enterprise. In Proceedings of the 41st Annual Hawaii International Conference on System Sciences, 461–470. IEEE Computer Society. This paper provides detailed information on Yahoo!’s large Scrum adoption effort. Details on both what was done right and what could have been improved are included. Elssamadisy, Amr. 2007. Patterns of agile practice adoption:The technical cluster. C4Media. This book, which is available as a PDF through www.infoq.com, focuses on the technical practices that should be adopted by agile teams. As such, it is complementary to the patterns presented in this chapter. Hodgetts, Paul. 2004. Refactoring the development process: Experiences with the incremental adoption of agile practices. In Proceedings of the Agile Development Conference, 106–113. IEEE Computer Society. This paper summarizes Scrum trainer Paul Hodgetts’ experiences from transitioning a handful of teams to agile. He contrasts the advantages and disadvantages of incrementally adopting agile with adopting it all at once based on experiences with those projects. Striebeck, Mark. 2006. Ssh! We are adding a process…. In Proceedings of the Agile 2006 conference, ed. Joseph Chao, Mike Cohn, Frank Maurer, Helen Sharp, and James Shore, 185–193. IEEE Computer Society. Mark Striebeck describes how agile was introduced to the AdWords front-end application at Google. He describes the combination of a start-small and stealth approach, with new practices added incrementally.
Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
Chapter
4
Iterating Toward Agility
Historically, when an organization needed to change, it undertook a “change
program.” The change was designed, had an identifiable beginning and ending, and was imposed from above. This worked well in an era when change was necessary only once every few years. Christopher Avery has written, “I think in the 1960s and 1970s this approach was probably more frequently successful than it has been in the 1990s and today because the frequency of change has intensified as competition has become global, and the model has broken down” (2005, 18). Avery continues by saying that “if the changes are coming so fast and furious that programmed change won’t work, perhaps we have to arrange ourselves (organizationally speaking) to digest many more smaller changes on a continual basis” (20). Whether you are just starting to adopt Scrum or you are at the point where you are ready to fine-tune your use of Scrum, you should manage the effort in an agile way. Following an iterative transition process—making small changes on a continual basis—is a logical way to adopt a development process that is itself iterative. Doing so will be much more likely to result in a successful and sustainable transition. This is why I believe that the effort of adopting Scrum is best managed using Scrum itself. With its iterative nature, fixed timeboxes, and emphasis on teamwork and action, it seems best suited to manage the enormous project of becoming and then growing agile with Scrum. In 2004, the leaders of Shamrock Foods realized that change was coming too quickly in their industry. As one of the ten largest food distributors in the United States, Shamrock had for 20 years used a conventional, top-down strategic planning process, dedicating months each year to creating a 5-year plan that was out of date before the ink dried. To address this problem, CEO Kent McClelland abandoned the company’s 20-year-old approach and began to apply a Scrum-based iterative strategic planning process. Shamrock’s process revolved around quarterly strategic “scrums” [sprints]: Team members met at an offsite location for a day to evaluate the company’s performance against the action plans from the previous quarter. We asked them to identify the most important things they had learned about the company’s strategy 61 Download from www.wowebook.com
62
Chapter 4
Iterating Toward Agility
since the previous meeting and to suggest how those insights should be integrated in the strategy going forward. The group created new action plans for the upcoming period. In addition to the quarterly scrums [sprints], the participants met every year for three days, during which time people were asked to step further back and revisit the company’s strategic assumptions. (McFarland 2008, 71) Forty-five managers and employees participated in these sprints and were chosen to represent each division and functional area. At the start of each quarterly sprint, this group selected up to a handful of key areas in which they agreed the company should improve. These were referred to as themes. Because Shamrock was applying Scrum to an organizational improvement effort rather than software development, the themes represented broad business goals. Examples included increasing revenue on Shamrock’s house brands, improving how it serviced large customers like Burger King, and improving the company’s ability to recruit, retain, and develop good talent. Many corporate improvement initiatives fail because plans are not made specific and actionable. Because they were using Scrum, Shamrock employees went beyond just identifying themes for improvement: “Planning participants created and prioritized a handful of specific and measurable strategic initiatives that would advance each strategic theme. Then they built detailed action plans and set measurable outcomes they thought could be achieved within 90 days” (McFarland 2008, 71). Not only does the Shamrock story illustrate the broad applicability of Scrum, it serves as an example of how Scrum can be used to manage an organizational improvement effort. In this chapter, we look at how to use Scrum first to adopt Scrum and then to continuously improve by engaging communities of like-minded employees, such as the 45 people who guided Shamrock’s improvement effort.
The Improvement Backlog Just as Scrum development projects use product backlogs, you should use an improvement backlog to track the effort of adopting Scrum in your organization. An improvement backlog lists everything that the organization could do better in its use of Scrum. When IBM began to adopt Scrum, its improvement backlog included the following items: ●
Increase the number of teams using Scrum.
●
Increase adoption of test automation.
●
Enable teams to implement continuous integration.
Download from www.wowebook.com
The Enterprise Transition Community ●
Figure out how to make sure each team has a product owner.
●
Determine how we’re going to measure the impact of adopting Scrum.
●
Increase the use of unit testing and test-driven development.
63
Improvement backlogs, such as the one shown in Table 4.1, are dynamic, with items coming and going as they are thought of, completed, found unnecessary, and so on. Much of what we discussed in Chapter 2, “ADAPTing to Scrum,” will find its way onto an improvement backlog. If you’re just starting with Scrum, your improvement backlog will emphasize creating awareness and desire. If the transition is already well underway, your improvement backlog may contain more items around developing the ability to do Scrum well, to promote successes, or to transfer it to other groups. Similarly, decisions about which patterns to use, as described in Chapter 3, “Patterns for Adopting Scrum,” can create items on an improvement backlog. A small department or single-project transition may involve a single improvement backlog. But when Scrum is being adopted across a large site, department, or organization, the transition effort becomes large enough that multiple improvement backlogs are used, each of which is created by a community of individuals who are passionate about improving the organization in a particular way. There may be, for example, a community and associated improvement backlog for figuring out how best to do automated testing on Scrum projects, another for developing and becoming great ScrumMasters, and so on. Additionally, in a large transition effort, there is what might be considered a master improvement backlog, which is maintained by the group that guides the organization’s overall transition. It is to that group that we turn our attention next.
The Enterprise Transition Community The small group that initiates, encourages, and supports an organization’s effort to introduce and improve at Scrum is known as the Enterprise Transition Community, or ETC.1 The Enterprise Transition Community exists to create a culture and environment where change can be released by those who are passionate about the success of the organization and where success leads to more passion from more people. The ETC does this not by imposing changes on the organization but by guiding groups who are implementing changes, by removing obstacles to doing Scrum well, and by creating energy and excitement for the change. The members of the ETC, who usually number no more than a dozen, come from the highest level involved in the transition to Scrum. If a company is adopting Scrum organization-wide, the ETC should include senior people from 1 The acronym ETC is consistent with Ken Schwaber’s in The Enterprise in Scrum, although he refers to it as the “Enterprise Transition team” (2007).
Download from www.wowebook.com
64
Chapter 4
Iterating Toward Agility
engineering or development plus vice presidents of groups such as product management, marketing, sales, operations, human resources, and so on. For a departmental adoption of Scrum, the ETC may include the vice president of engineering along with the heads of QA, development, architecture, interaction design, database, and so on. The key here is that the ETC is made up of the most senior people for the level at which the transition is occurring. TABLE 4.1 An improvement backlog is a list of capabilities to be developed, work to be performed, or issues to be addressed within the organization.
Item
Responsible
Note
Create a Scrum Office (like a Project Management Office) where teams can get help.
Jim (CTO) to talk this up at monthly development meeting. Let’s see if there’s any interest.
Establish an internal program for developing ScrumMasters.
How do we identify good internal candidates? How do we develop them?
Collect and disseminate Scrum success stories in our company.
SC
Savannah has expressed interest in this.
Develop a continuing education program internally.
Consider quarterly open space meetings. Identify and contact industry experts for one-hour lunch meetings.
Start doing lots of automated unit testing (even if it’s not test-first) and using FitNesse.
The Scrum team that makes the most progress on this (as voted on by everyone in the department) can have all members attend next summer’s Agile conference.
Help a community form to decide how much up-front architecture is enough.
TG
Tod to start soliciting volunteers but says he can’t commit to any goals for it until next quarter.
Resolve dispute with facilities over rearranging second floor cubicles.
JS
Jim to talk to Ursula in facilities about budget for this.
Craft message on why we’re adopting Scrum; have Jim discuss it at his monthly meeting.
JS
Next meeting is 25 March.
Sometimes Scrum is introduced into an organization in a grassroots manner. One team tries Scrum and successfully completes a project, others become interested, and Scrum spreads from there. In this situation, an ETC is usually formed
Download from www.wowebook.com
The Enterprise Transition Community
65
spontaneously by some of these early Scrum advocates who ask their boss to be allowed time to help other teams learn Scrum. At some point, impediments arise that need the help of that boss, who then joins the ETC. Alternatively, in an enterprise-wide Scrum adoption, the ETC is usually formed more deliberately when the decision is made to widely adopt Scrum. As an example of an ETC, consider the case of Farm Credit Services of America, a lending and financial services cooperative that works with farmers in the American Midwest. As part of adopting Scrum, Farm Credit formed an Enterprise Transition Community it calls the Agile Champions Team (ACT). The 16 or so individuals on the ACT participate on the team for between 6 to 24 months depending on their role in the organization and ability to commit time to the team. Because the transition at Farm Credit covers the organization’s entire information services and business departments, ACT members are chosen to equally represent all functions involved. The Farm Credit ACT meets every other week for two hours and augments those meetings with occasional longer offsite meetings. Comprising both formal and informal leaders, the ACT often works on issues that arise between the information services department and the broader business. It has resolved issues related to a lack of stakeholder involvement in projects, the proper use and meaning of deadlines, and executive leadership misperceptions of what agile is and can do for the company. Quinn Jones is a software developer at Farm Credit who served what he calls a six-month “tour of duty” on the ACT. He says, “One of the best things to come out of the Agile Champions Team is the wide-open, smack-down brown bag sessions where all are welcome to ask questions and share knowledge. These meetings have also helped uncover root challenges in agile, which could then be addressed by the ACT.” ❑
Write a preliminary improvement backlog by convening a 30- or 60-minute meeting. Invite either your team members, a few people you know will be interested, or the whole department. Brainstorm things that you’d like to see improved. Conclude the meeting by asking if there is sufficient passion to pursue just one or two of the items, and then start with those.
Things To Try now
ETC Sprints Because the ETC uses Scrum, it makes progress in sprints, exactly like a Scrum development team would. Each ETC sprint begins with a planning meeting and ends with a review and retrospective. These meetings are completely analogous to those held by Scrum development teams and often have the same problems. Thomas Seffernick, of KeyCorp, a large U.S. financial institution, participated in the first sprint review of his organization’s ETC, which it called an Agile Enablement Team. He recalls how that team made a mistake common to many new
Download from www.wowebook.com
66
Chapter 4
Iterating Toward Agility
Scrum development teams—talking about its plans rather than demonstrating its progress. That first Agile Enablement [ETC] sprint review was painful as leaders stood up and described their plans to remove the impediments they volunteered to address. The message was clear— plans are good, but results count. The dynamic of those reviews changed from that point, and results became the focus. (2007, 202) Some ETCs hold daily scrums, and I think that is a good practice. But, I am not as insistent upon this as I am with a Scrum development team. The work being done by members of an ETC is not as tightly interwoven as the work of a development team, making a daily scrum a great thing to do but not essential. Similarly, ETC members are rarely full-time. Most have demanding jobs already, and in many cases it is beneficial for them to remain in their jobs. A development director who stays in that position, for example, can likely remove more organizational impediments than a development director who steps out of that position to serve on the ETC. The length of an ETC sprint is up to its members. However, in my experience two-week sprints work best. This is also the sprint length recommended by Ken Schwaber (2007, 10). Elizabeth Woodward, a member of the ETC that is guiding the large-scale adoption of agile at IBM, describes the company’s sprint length experience. We’ve used both two-week and four-week sprints. And, so far, the greatest success we’ve seen is with those on two-week sprints. I believe the reason is that the “deliverables” demonstrate momentum and visible progress. We capture the efforts from each community in a brief digest—a nice e-mail message that people can read in about fifteen minutes.
The Sponsor and Product Owner Most successful Scrum adoptions have been initiated or driven by an identifiable sponsor, who is a senior person in the organization responsible for the success of the transition. Salesforce.com’s highly successful large-scale transition was sponsored by company cofounder Parker Harris. As the executive vice president of technology, Harris was well positioned to champion a change that would dramatically alter how everyone in the Salesforce.com development organization worked. The transition’s sponsor should come from the same level in the organization at which the transition is being planned. Salesforce.com needed an executive as
Download from www.wowebook.com
The Enterprise Transition Community
67
its sponsor because it was doing an enterprise-wide transition. If you are involved in a departmental transition, a department-level leader is an appropriate choice. The sponsor is also the product owner for the ETC. This means that sometimes an ETC will have a product owner with little direct experience with Scrum. That’s OK. Like all product owners, the sponsor of the ETC can fulfill the role by calling on other ETC members for help. As the ETC’s most senior member, the sponsor will play a significant role in communicating about the transition effort, but this person does not need to be the sole source of the vision. Primavera learned the importance of a strong sponsor when it adopted Scrum. Bob Schatz and Ibrahim Abdelshafi, technology executives within Primavera at the time, write about the importance of a sponsor’s support. Adopting agile, or implementing any significant change, requires an executive’s sincere support. It can be a bumpy ride until things settle down, and having executive support lets the learning take hold despite any problems or failures. (2005, 38) It is critical that the sponsor demonstrate commitment to the transition effort by participating on the ETC. Good sponsors do not initiate a transition, proclaim support for Scrum, and then remove themselves from the effort of getting there. If a sponsor is not committed, others will not be either. Scrum coach and author of Collaboration Explained, Jean Tabaka considers a checkbook-only commitment from a sponsor to be one of the most likely reasons a Scrum adoption might fail: “Agile adoption requires a passionately engaged sponsor willing to make tough organizational changes that serve agile teams and their success” (2007). Although it would be fair to characterize ETC members as leaders of the Scrum adoption effort, theirs is not what we think of as conventional leadership. Writing in Harvard Business Review, internationally respected management author Henry Mintzberg describes the necessary type of leader. Communityship requires a more modest form of leadership that might be called engaged and distributed management. A community leader is personally engaged in order to engage others, so that anyone and everyone can exercise initiative. (2009, 141; emphasis his) Mintzberg goes on to say that during an organizational change like adopting Scrum,“we need just enough leadership—leadership that intervenes when appropriate while encouraging people in the organization to get on with things.”
Download from www.wowebook.com
68
ION
Chapter 4
Iterating Toward Agility
“The sponsor of our transition project says he’s committed, but he’s unable to come to any meetings or to put any time into the effort. He gives us anything else we need, but we can’t get any of his time.” You probably have the wrong sponsor. Although his willingness to support the transition in other ways is admirable, a successful Scrum transition requires some of the sponsor’s time. You don’t want to lose this powerful ally, but you may need to look for a different sponsor. Alternatively, you may want to negotiate with your sponsor for a small amount of his time. The ETC can then prioritize how that time should be spent. It could perhaps be in meetings or as a public supporter of the transition in other forums.
Responsibilities of the ETC An ETC is a working group. It is not a steering committee. During sprint planning, the ETC commits to completing some amount of work and demonstrating it at the end of the sprint. However, even more important than the tangible things the ETC accomplishes is that it ignites the interest of others. Members of the ETC can only achieve so much themselves.They will need to rely on others in the company to do most of the work of adopting Scrum and becoming agile. Change management experts Edwin Olson and Glenda Eoyang concur. In a self-organizing system, the leader has an important role to play, but creative and long-lasting change depends on the work of many individuals at many different levels and places in the organization. (2001, 5) One of the most important jobs of the ETC is creating energy around the adoption of Scrum. Not everyone will be excited by the change, of course. But the ETC needs to ignite the passion of those who will work to make adopting Scrum successful. ETC members do this by showing their own enthusiasm and by participating in constructive dialogue about the changes occurring. To ignite the passion of others in the organization so that they become involved in the type of creative and long-lasting change needed to adopt Scrum, the ETC is responsible for the following: ●
articulate the context. Beyond conveying a vision of the organization’s agile future, the ETC must also help employees both understand the need to change and develop a desire to change.They do this by articulating the context of the change: Why? Why now? Why Scrum? Members of the ETC use their seniority, personal credibility, and more to get others to understand the answers to these questions.
Download from www.wowebook.com
The Enterprise Transition Community ●
●
●
●
69
Stimulate conversation. All sorts of good things happen when people talk. Debating the merits of various technical practices, sharing success stories, probing reasons for failure, and other discussions will generate ideas. Provide resources. Adopting Scrum will take time, effort, and money. For example, individuals who are trying to figure out how to be more agile (say, learning how to write automated unit tests on a complicated code base) may need to be granted time away from their development projects. Because the ETC includes the most senior people involved in the transition, the ETC is in a position to ensure that both time and money are available. Set appropriate aspirations. Change efforts with clearly defined and truly transformational goals are ten times more likely to succeed (McKinsey & SEE alSo Company 2008). The ETC is responsible for setting and communicating Advice on appropriate appropriate goals for the transition, which may (and probably should) metrics for measurchange over time as the organization improves. The ETC may establish ing your progress is offered in Chapter goals such as moving from one annual release to quarterly releases, a 50% 21, “Seeing How Far You’ve Come.” decrease in post-release defect rate, or so on. Engage everyone. Scrum has long tentacles and will reach into many areas of the organization. The ETC makes sure that the transition effort does not become narrowly focused on just one group. Within the groups that are affected, broad participation is encouraged.
Additional Responsibilities Beyond encouraging people to engage in the transition, the ETC has the following additional responsibilities: ● anticipate and address people issues. The ETC should try to anticipate which groups or individuals are going to struggle the most with the changes brought about by Scrum and proactively work with them. The cross-functional makeup of the ETC helps in this regard as it allows the group to see problems from multiple perspectives. ● anticipate and remove impediments. Members of the ETC are responsible for removing any organizational impediments to adopting Scrum or doing it well. Beyond merely removing impediments it is informed of, the ETC should try to anticipate obstacles and remove them before they cause problems. ● Encourage a simultaneous focus on practices and principles. Adopting Scrum involves incorporating new practices and valuing new principles. An organization cannot adopt the practices without the underlying principles, nor can it adopt the principles without the practices. An effective ETC looks for imbalances in how each is being adopted. If one is being
Download from www.wowebook.com
70
Chapter 4
Iterating Toward Agility
accepted faster than the other, the ETC can bring them back in line by directing conversation, attention, and resources toward the laggard. If an ETC performs these tasks well, not only will it be moving the organization forward on its own, but it also will have generated interest and excitement among others in the organization.To harness that passion, individuals with a common interest in improving the organization in a particular way (perhaps its adoption of automated testing) come together, form a community of their own focused on that improvement, and then run their own sprints. These communities are known as improvement communities and are the topic of the next section.
ION
“I can’t get the organizational backing to create an ETC. Can I still transition to Scrum?” Yes. Start with whatever sphere of influence you do have. Get your team to do Scrum. If it is successful, people will notice. Perhaps another team will want to do Scrum and ask for advice. Or a manager will get interested. As people get interested, start the community informally as just a few people who get together occasionally to talk about how Scrum is going and what could be done better. A grassroots approach is very feasible but will take longer to spread.
❑
Things To Try now
If you don’t already have an ETC or equivalent group, identify several people who ought to be on the ETC. If you are one of them, begin forming this group. If you are not, share the idea of an ETC and improvement communities with others in your organization who can help form these groups.
Improvement Communities An improvement community (IC) is a group of individuals who join together to work collaboratively to improve the organization’s use of Scrum. An IC may form when individuals notice an item on the ETC’s improvement backlog and decide to work together to achieve that goal. Or an IC may form because individuals see and are passionate about an improvement opportunity that hasn’t made the ETC’s radar yet. IBM, for example, has five ICs, which are focused on test automation, continuous integration, test-driven development, the role of the product owner, and the general use of Scrum itself.
Download from www.wowebook.com
Improvement Communities The Enterprise Transition Community and improvement communities I am referring to are specialized types of what are known as communities of practice (Wenger, McDermott, and Synder 2002). A community of practice is a group of like-minded or like-skilled individuals who voluntarily come together because of their passion and commitment around a technology, approach, or vision. We will see other types of communities of practice throughout this book. They will be thoroughly discussed in Chapter 17, “Scaling Scrum.”
71
NOTE
Graphically, the relationship between an organization’s one ETC and its multiple ICs can be seen in Figure 4.1. The ETC guides the transition process; it does not direct or manage it. A big part of its role is fostering an environment in which ICs form and dissolve organically in pursuit of improving how the organization builds products. FIGURE 4.1 Improvement Communities
Enterprise Transition Community (ETC) Energy, suppport, resources, guidance, & direction (occasionally)
Improvement backlog
Improvement backlog
An Enterprise Transition Community guides the adoption of Scrum, but most of the work is done by multiple improvement communities.
Improvement backlog
Impediments Improvement backlog
This approach should be scaled up or down depending on the size of the organization undertaking the transition. A software development department of 30 people may have an ETC of 5 people and nothing more. A company-wide transition for a department of 200 developers may have a 10-person ETC (including representatives from groups outside development) plus a handful of improvement communities at any time. Things can scale from there as needed; IBM, for example, has over 800 people in some of its improvement communities. Most participants in an IC spend only a small part of their time engaged with the community. They may read postings to its discussion list, add a comment on
Download from www.wowebook.com
72
Chapter 4
Iterating Toward Agility
a wiki, and nothing more. The amount of time an IC member spends on the community is determined by each individual, the person’s boss, or organizational culture.
OBJECTION
“Scrum teams are supposed to be self-organizing. Doesn’t an ETC conflict with this? Shouldn’t teams get to decide what they want to improve at?” Self-organization occurs in response to a challenge taken on by a group of individuals. For a development project, the company may tell a team, “Develop this software to run faster and take less memory than the current version and do it two months faster than we’ve done in the past.” Individuals then organize themselves around how to achieve that goal. It is no different with the ETC. An ETC states what it would like to see improved but not necessarily how to achieve that improvement. The how is left up to the improvement communities or Scrum teams. Additionally, keep in mind that an ETC’s biggest goal is to create an environment such that improvement communities identify their own goals and form spontaneously to address them. We will look at self-organization in detail in Chapter 12, “Leading a Self-Organizing Team.”
Catalysts for Improvement Communities, when used as part of the effort to adopt and get good at Scrum, become catalysts for improvement. Consider the case of Google, where improvement communities are called “grouplets.” Google’s Testing Grouplet was formed “to drive adoption of developer testing” (Striebeck 2007). Bharat Mediratta founded the community and describes its activities. We started with engineers from all over the company meeting every couple of weeks to brainstorm. Slowly, over time, we started turning into activists, planning to actually start improving things. We started building better tools and giving informal talks to different technical groups. (2007) Notice that although this community met initially to brainstorm, they soon found themselves as activists with plans for actual improvements. Improvement communities act. This is why they aren’t called task forces, work groups, committees, or any of the other terms that too often bring to mind ineffective groups. If the Google Testing Grouplet had merely created presentations on the benefits of developer testing, or if it had chosen to convince a powerful vice president to mandate developer testing, its efforts would have been fruitless.
Download from www.wowebook.com
Improvement Communities
73
What the testing community at Google did instead was find direct and immediate ways to help teams. Mediratta recalls how, in addition to building tools, the community found a unique way of providing concrete, short examples and advice about testing. One day, toward the end of a long brainstorming meeting, we came up with the idea of putting up little one-page stories, called episodes, in bathroom stalls discussing new and interesting testing techniques. Somebody immediately called it “Testing on the Toilet,” and the idea stuck. (2007) The most effective communities are usually those that form not in response to management dictate but because company culture or the ETC has created an environment in which communities can naturally emerge. J. F. Unson, a coach at Yahoo! during its large-scale Scrum rollout, says this is exactly what happened at one of Yahoo!’s remote facilities. At Yahoo!, in our Santa Monica campus, all the entertainment agilistas started a monthly ScrumMaster lunch. This happened organically as Scrum started to grow in the organization, without having the agile group [ETC] pushing it. (2008) Not all communities will form in such an organic manner, of course. Especially during the early weeks or months of adopting Scrum, the ETC will need to encourage an improvement community to form by highlighting the importance of a goal and then hoping a community forms around that goal. Occasionally, an ETC may need to go so far as to ask someone to form a community around a specific goal.
Two Metrics for Effectiveness Professor Jeffrey Goldstein has written, “Change does not need to be imposed; it simply needs to be released” (1994, 32).You can gauge how well the ETC is doing at releasing change in two ways: 1. The number of improvement communities that have formed without a
direct request from the ETC 2. The percentage of such improvement communities to the total number
of improvement communities If the number of spontaneously formed improvement communities is high, and especially if these represent a majority of the total number of communities, this indicates strong interest in Scrum and the changes it is creating. If these metrics are increasing or remain high over time, the organization is well on its way to becoming agile. You should, of course, look at other metrics. These are just two that I like.
Download from www.wowebook.com
74
Chapter 4
Iterating Toward Agility
an Improvement Community Sprint As you might suspect, ICs perform their work in sprints as well. As with the ETC, each IC can select its own sprint length, but two weeks is the recommended length. An IC that was formed spontaneously will usually serve as its own product owner, with members of the community electing to devote their time to the improvements they are the most passionate about. An IC that was formed in response to an ETC-identified goal, on the other hand, will usually work with a member of the ETC as its product owner to plan a sprint. That being said, an improvement community does not exist to serve the ETC. It exists to serve its customers: the Scrum development teams who are building products or systems. Although an ETC member will act as product owner for some improvement communities and will serve as the official product owner for the sprint reviews, you should expect members of interested development teams to be active participants as well. Additionally, the wise ETC understands that the best results will be achieved when improvement communities are given broad latitude in achieving their goals. In practice, this means an IC, even one formed in response to ETC-identified goals, will be responsible for prioritizing its own work, while balancing the needs of the organization to improve in particular ways and its members’ passion for working on those issues. During its sprint planning meeting, each improvement community selects one or more things it can commit to completing during the sprint. If an improvement community has formed in response to a specific goal of the ETC, sprint planning begins by taking an item from the ETC’s backlog and breaking it down into smaller items that will be placed on the improvement community’s improvement backlog. The best way to see this is with an example. The ETC improvement backlog shown in Table 4.1 on page 64 includes the item, “Establish an internal program for developing ScrumMasters.” An improvement community formed a month after the ETC put that on the improvement backlog and made it known to the rest of the company that creating such a program would be valuable. There were three people in the community initially, but that was plenty to make progress toward this goal. In their first sprint planning meeting, they discussed the ETC’s goal (“Establish an internal program for developing ScrumMasters”) and created their own improvement backlog of what they would do to achieve this goal, which is shown in Table 4.2. Also during sprint planning, the community members took some of the items in Table 4.2 and identified the tasks necessary to complete each. For example, for the final item in Table 4.2 (working with local groups to share the expense of bringing in speakers), the community identified the following tasks: ●
Search web to see what user groups are in our area.
●
Create budget of expenses.
Download from www.wowebook.com
Improvement Communities ●
● ●
●
75
Send e-mail to internal distribution lists to see if anyone here is connected to these groups. Set up phone calls to introduce ourselves and what we’re doing. Conduct phone calls. See if any groups have previously split the cost of bringing a speaker into town with another company. See if any will work with us on this. Meet with Susan to go over budget and get approval.
What
TaBlE 4.2
Note
An improvement community’s backlog for establishing an internal program to develop ScrumMasters.
Figure out how to identify good candidates to become ScrumMasters (in addition to those who ask to participate in this program). Establish an internal mentoring program. Develop some internal classroom training. Which courses? Who can teach them? Develop our material, or can we license it? Determine which classes we can teach internally. Get budget for next year for external coaching. How many days? At what expected daily rate?
James has already asked for rates from three coaches.
See what we can do with local user groups to share the expense of bringing in speakers.
Savannah has contact in local Scrum lunch meetup group.
As in a development team’s sprint planning meeting, the community then estimated each item and decided they could commit to completing these tasks during the sprint.Two weeks later at its sprint review, this team showed its product owner, a member of the ETC, a list of local user groups and a plan to work with one of them twice a year, sharing the expenses of bringing nationally known speakers into the area. ❑
❑
Add to your improvement backlog by looking at the section headings of the chapters in this book. Many of them were written with this possibility specifically in mind. Review any notes available from recent sprint retrospectives. These are often an excellent source of improvement backlog items.
Things To Try now
Download from www.wowebook.com
76
Chapter 4
Iterating Toward Agility
Focus on goals with Practical Relevance For an improvement community to have the most impact, its members must focus on goals of immediate and practical relevance to the development teams using or attempting to get started with Scrum. The best way to do this is for improvement community members to work side by side with development team members on something important to the development team. This is what Google’s “test mercenaries” do. Test mercenaries are members of the testing community who are experienced engineers with a passion for and expertise in testing. They spend up to 20% of their time for three months on a project other than their own. During this time they add tests and refactor code as a direct help to the development team. I suppose that test mercenaries could instead spend this time creating presentations and spreading the gospel of developer testing. Something tells me, though, they are better able to achieve their goals by working with a team rather than preaching to it. A development team that has had the help of a test mercenary ends up with improved code and more tests. It also witnesses the benefits of an additional focus on developer testing. This works wonders in motivating those on the Scrum development team to continue the effort after the mercenary moves on to another team. Focusing on providing practical assistance to development teams also helps keep improvement community members from falling into the habit of preaching to the development teams. A common problem when adopting Scrum is that the early adopters often become zealots anxious to convert everyone else. What zealots often forget is that it took them time to get comfortable with the idea of Scrum and the changes it requires.When others fail to convert instantly, zealots often perceive the delay as resistance. Because zealotry and pushing others to rapidly adopt new ideas can cause more harm than good, it is important for improvement community members to understand that their role is to consult rather than preach (Allen-Meyer 2000c, 25).
Improvement Community Members Organizational change expert Glenn Allen-Meyer says that change should be done “with, not to, the people expected to change” (2000b). Because of this, it is important that anyone with a passion for an improvement opportunity be encouraged to participate in its community. Membership should not, for example, be restricted to only the organization’s most senior employees. Broad participation in improvement communities helps everyone in the organization feel that change is occurring with them rather than to them. There should be no limit on the number of people participating in an improvement community. Communities often include well over 100 members, with individual participation levels going up and down over time based on the other demands of each person’s job.
Download from www.wowebook.com
Improvement Communities
77
Participating in a community is not meant to be a full-time job; it is something someone takes on in addition to regular work. Improvement community leaders at IBM are asked to contribute two hours per week, although many contribute more based on a desire to see more rapid progress. A participant’s manager, product owner, and ScrumMaster, though, are responsible for ensuring that those passionate enough about a change to work toward it are given sufficient time to do so. Google accomplishes this by telling each employee to spend 20% of each week on something of interest. The time could be spent, for example, exploring a new product idea or participating in a community. Successful Scrum adopter Salesforce.com has a similarly innovative approach it calls PTON, pronounced pee-tee-on and meaning “paid time on.” Patterned after the common PTO (“pee-tee-oh”) policy for paid time off in many companies, Salesforce.com’s PTON program gives employees dedicated time at work to pursue initiatives of their own choosing. Each employee is given one week of PTON for each year with the company. Salesforce.com employees can use the PTON time to work on a community initiative, explore new product ideas, or do just about anything they want. Google’s 20% policy and Salesforce.com’s PTON programs were not created specifically to allow people to work in an improvement community. And organizations do not need to make such dramatic changes just to get started adopting Scrum. An easy starting point is simply for managers to commit to freeing up some number of hours each week for those who want to work on an improvement community. “We’ve been working on this new product for a year. We ship it in four weeks and, as the product owner, I need the team’s full time and attention for the next four weeks.”
ION
Absolutely. Team members probably already know this and have plans to scale back participation in any communities to the minimum possible over that period. A team member who generally feels valued and allowed to devote time to the longer-term initiatives of a community will willingly minimize community participation during a true crunch period because she knows she can devote more time to it later.
Download from www.wowebook.com
78
OBJECTION
Chapter 4
Iterating Toward Agility
“These improvement communities seem just like the Software Engineering Process Groups (SEPGs) our company created to push CMMI. Isn’t this just a new name for an old idea?” Not really, but I can understand why you might think so. Both ICs and SEPGs are focused on helping the organization improve how people develop software. However, while their goals are the same, an SEPG and an IC differ in a few subtle but important ways: ●
An SEPG looks at the process and answers the question, “What could we improve?” Members of an improvement community look at their own projects and ask, “What could we improve?” and “What are we doing well that others should know about?”
●
Some SEPGs force compliance with a process; an improvement community has no authority from which to force compliance.
●
Some SEPGs are chartered to look only at portions of the overall development process. ICs are encouraged to look beyond the product development process to find improvement opportunities.
●
Improvement communities are self-motivated and self-organizing. In general, no one is told to join an improvement community. (Although this may occasionally be done to start a new community.)
●
Members of an IC are more likely to take an experimental, try-itand-see approach to process improvement.
●
Improvement communities are ad hoc and organic, formed whenever passion for a topic brings people together. SEPGs are formally created and often discouraged from functioning in an ad hoc manner.
Disbanding a Community Most communities will eventually disband. A community formed to promote automated testing, for example, may exist with members coming and going for years as long as that is an area in which the organization needs to improve. Eventually (at least we’d like to think), the organization becomes good enough at automated testing that those community members can contribute more by devoting time to other improvement communities and the opportunities they represent. Regarding the ETC specifically: It should disband once the organization has realized its transition to Scrum and has entered a phase of continuous improvement. The ETC exists only during the transition period, which may be multiple years for a large transition.
Download from www.wowebook.com
Looking Forward ❑
Identify an improvement you are passionate about. Ask two or three coworkers to help you. Create an improvement backlog and plan a first sprint. Even if you can manage only an hour a week on it, start. As you begin to make progress, incorporate your improvement in the work of your team or offer it to another team. Generate interest by telling (or, even better, showing) others what you’ve accomplished.
79
Things To Try now
one Size Does Not Fit all In this chapter, I’ve presented a community-driven approach to Scrum adoption. A guiding community—the Enterprise Transition Community—does some of the work of the transition, but most important it creates an environment that encourages other communities to form. These communities—called improvement communities—are formed when a group of employees choose to work together to improve the organization’s use of Scrum. Both types of communitites use Scrum to drive the organization toward becoming agile. But one size clearly does not fit all. The approach I am describing in this chapter works well when transitioning a medium or large department to Scrum. Scale it down as appropriate. A software department of 20 professionals, for example, may benefit from having one group of passionately agile individuals who help drive change and improvement.They are both an ETC and an IC in that case.
looking Forward So far, in the chapters that make up the initial section of the book, we’ve discussed why transitioning to Scrum is hard, but worth it. We’ve talked about the activities that accompany change and some tools you can use to help people make the switch to Scrum.We’ve discussed patterns for adoption that can guide our general approach to transitioning to Scrum. Finally, we’ve looked at how to combine all of that information, and the Scrum process itself, and use it to manage a Scrum adoption, on any scale. Throughout the first four chapters, I’ve made a point of saying that, unlike other change initiatives, with Scrum there is no end state.There is no point when you’re done. Instead, Scrum requires continuous improvement, which can be managed through improvement communities, using Scrum itself. In our next chapter, we discuss how to pick your first project, your first team, and get started with the business of becoming agile with Scrum.
Download from www.wowebook.com
80
Chapter 4
Iterating Toward Agility
additional Reading Conner, Daryl R. 1993. Managing at the speed of change: How resilient managers succeed and prosper where others fail. Random House. In this book, Conner describes eight key patterns of how people behave during organizational change. One of the goals of his process for change management is to foster resilience in people and organizations. His view of resilience is compatible with this book’s presentation of change as continuous and agility as something to be iterated toward. Katzenbach, Jon. R. 1997. Real change leaders: How you can create growth and high performance at your company. Three Rivers Press. Katzenbach’s book is based on extensive interviews with individuals who he found to be the true source of change in organizations. These are the “real change leaders” of the book’s title. The book contains many engaging stories about individuals who would make good improvement community members. Kotter, John P. 1996. Leading change. Harvard Business School Press. Kotter’s highly respected book is a classic on organizational change. In it, he lays out an eight-step process for creating change. In his second step, Kotter advocates the creation of a guiding coalition, which has some similarities to an ETC. Additionally, his article in Harvard Business Review (1995) offers a concise summary of this book. Schwaber, Ken. 2007. The enterprise and scrum. Microsoft Press. In this book, Schwaber, the coinventor of Scrum, describes what is necessary to transition an entire organization to Scrum. Included is advice on the improvement backlog and on the Enterprise Transition team, which is similar to the Enterprise Transition Community as I have presented it. Wenger, Etienne, Richard McDermott, and William M. Snyder. 2002. Cultivating communities of practice. Harvard Business School Press. Wenger is recognized as the authority on communities of practice. This highly readable book describes everything you need to know to begin cultivating communities within your organization, including a chapter dedicated to advice to community coordinators. Woodward, E.V., R. Bowers,V. Thio, K. Johnson, M. Srihari, and C. J. Bracht. Forthcoming. Agile methods for software practice transformation. IBM Journal of Research and Development 54 (2). Members of IBM’s Quality Software Engineering organization are using an approach very similar to the one described in this chapter to spread agile throughout IBM. This excellent paper describes how they function as an Enterprise Transition Community, ways in which they encourage improvement communities to form, and how they use the Scrum framework to drive improvements in how they use Scrum.
Download from www.wowebook.com
Chapter
5
Your First Projects
Unless you are operating in stealth mode, all eyes will be on the first project to
try Scrum, especially during the first sprints. Selecting the right project and team is critical. Your initial Scrum project should be one that is considered important and significant, so that the results are not discounted, yet not so large that it is ungainly. Team members should be selected with an eye toward not only their compatibility but also their willingness to try something new. As the first sprint starts, expectations about the advantages Scrum will bring may be sky high. Sometimes this is the result of general optimism; other times it is the result of zealotry by an organization’s early agilists, whose exuberance leads others to think Scrum will cure all ills. You must correctly set and manage these expectations; otherwise an initial project that should be viewed as wildly successful will instead be considered a dismal failure when it does not live up to oversized expectations. In this chapter we consider the critical topics of selecting the right first project and assembling the ideal team, and the subtle art of setting realistic expectations.
See AlSo Transitioning in stealth mode was introduced in Chapter 3, “Patterns for Adopting Scrum.”
Selecting a Pilot Project I was about to start this section with something like, “Scrum pilot projects have become more and more rare over the past four years. The benefits of Scrum have become so recognized that companies are now forgoing pilot projects and jumping right in.” And then I decided that perhaps I should look up the definition of pilot project. Perhaps, like inconceivable to Vizzini in The Princess Bride, it did not mean what I thought it meant.What I found was that there are indeed two slightly different meanings. One is that a pilot project is a test, with the results used to determine if more of whatever is being tested will be done. This is the type of pilot project that most companies now bypass—they know they want to use Scrum; they don’t need to “pilot it” to verify that.
81 Download from www.wowebook.com
82
Chapter 5
Your First Projects
The other definition I found is that a pilot project is undertaken to provide guidance to subsequent projects; it pilots the way in doing something new. It is this second meaning that I’m interested in—the pilot that leads the way rather than the one that is conducted as a test. As an industry we have enough evidence that Scrum works; what individual organizations need to learn is how to make Scrum work inside their organizations. So, they often conduct one or more pilots as learning projects.
Four Attributes of the Ideal Pilot Project Selecting the right project as a pilot can be challenging. Jeff Honious, vice president in charge of innovation at Reed Elsevier, led his company’s transition to Scrum. He and colleague Jonathan Clark wrote of their struggle to select the right pilot. Finding the right project was the most critical and challenging task. We needed a meaty project that people would not dismiss as being a special case, yet we did not want a project to fill every possible challenge—too much was riding on its success. (2004)
Project size
Pick this project
rit
spoBusi n so n e s r sh s ip
C ic al
Duration
Un
Im
po
a rt
nc
e
g
Short
ro n
The four attributes of the ideal pilot project.
Large
Long
St
FIgUre 5.1
Not every project is equally suited to be your first. The ideal pilot project sits at the confluence of project size, project duration, project importance, and the engagement of the business sponsor, as shown in Figure 5.1. You may find it impossible to identify the “perfect” pilot project. That’s OK. Consider the projects you do have and make appropriate trade-offs between the four factors presented in Figure 5.1. It is far better to pick a project that is close enough and get started than it is to delay six or more months waiting for the perfect pilot to present itself. k
I’m not forgetting the importance of the people involved to the success of a pilot. The topic is discussed in its own section, “Selecting a Pilot Team,” later in this chapter.
W ea
Note
im po rt
Small
an t
Download from www.wowebook.com
Selecting a Pilot Project
83
Duration. If you select a project that is too short, skeptics will claim that Scrum works only on short projects. At the same time, if you select a project that is too long, you risk not being able to claim success until the project is over. Many traditionally managed projects claim to be on track 9 months in to a 12-month schedule, yet in the end are over budget and late, so a Scrum project proclaiming the same may not be very convincing. What I find best is to select a project whose length is near the middle of what is normal for an organization. Ideally and frequently this is around three or four months. This gives a team plenty of time to start getting good at working within sprints, to enjoy it, and to see the benefits for the team and for the product. A three- or four-month project is also usually sufficient for claiming that Scrum will lead to similar success on longer projects. Size. Select a project that can be started with one team whose members are all collocated, if at all possible. Start with one team, even if the pilot project will grow to include more teams.Try to select a pilot project that will not grow to more than five or so teams, even if such projects will be common in your organization. Not only is coordinating work among that many Scrum teams more than you want to bite off initially, but you also probably wouldn’t have time to grow from one team to more than five anyway if you are also looking for a project that can be completed in three or four months. Importance. It can be tempting to select a low-importance, low-risk project. If things go badly, not much will be lost. And people may not even notice a failure on a low-importance project. Don’t give in to this temptation. Instead, pick an important project. An unimportant project will not get the necessary attention from the rest of the organization. Additionally, some of the things required of a team transitioning to Scrum are difficult; if the project isn’t important, people may not do all that is required of them. Early agilist and inventor of the Adaptive Software Development process Jim Highsmith advises, “Don’t start with an initial ‘learning project’ that is of marginal importance. Start on a project that is absolutely critical to your company; otherwise it will be too difficult to implement all the hard things Scrum will ask of you” (2002, 250). Business sponsor engagement. Adopting Scrum requires changes on the business side of the development equation, not just the technical side. Having someone on the business side who has the time and inclination to work with the team is critical. An engaged business sponsor can help the team if it needs to push against entrenched business processes, departments, or individuals. Similarly, there is no one more useful in promoting the success of the project afterward than a sponsor who got what was expected. One sponsor commenting to another that a recent
NOTE Scrum projects work with a product owner, who is described in detail in Chapter 7, “New Roles.” The sponsor referred to here may or may not be the product owner. Minimally, it is someone on the business side of the project who will recognize the project as successful.
Download from www.wowebook.com
84
Chapter 5 Your First Projects
project tried Scrum and delivered more than past projects did will do wonders in getting other sponsors to ask their teams to also try the new approach.
Choosing the Right Time to Start That so many new exercise programs and diets begin on New Year’s Day is testament to the human desire to align change with outside factors, such as the calendar. Just as we may feel that exercise programs should begin on the first day of the year, we may think that a new software development process should be introduced on the first day of a new project. Choosing a new project (or restarting a failed one) for your pilot lets you make a fresh start. Teams who have chosen to start fresh begin by focusing on the product backlog. Such a team will usually wait to begin its first sprint until it has created a product backlog that contains all of the features that are known at the time. Trond Wingård, an agile project manager, has been successful with this approach. In one of my first agile projects, our client had already spent one year and approximately $150,000 to have another contractor write a classic requirements document. I was able to convince our client that we should replace this requirements document with user stories. So the 150-page document was replaced with a product backlog with 93 user stories. We would not have been able to do agile if we hadn’t done this. Making a fresh start has only one major disadvantage: Waiting for a new project to appear—and then hoping you think it is a suitable first Scrum project— needlessly delays the benefits Scrum brings. Resurrecting a failed project can also bring a fresh start feeling to your pilot. Spending a few days creating its product backlog can help restore focus to the project team, reengage stakeholders, and create buy-in throughout the organization. Remember when starting fresh that you don’t want to spend weeks (or months!) bogged down in creating your preliminary product backlog. Consider the irony of starting your Scrum transition with a two-month requirements-gathering phase. When starting fresh, have the discipline to write the backlog quickly and in as lightweight a manner as possible.
Impending Doom Sometimes starting fresh is either not possible or not the right choice. If a project is in midstream and could benefit from Scrum, I see no reason not to switch. My personal favorite pilot projects are ones that are currently headed toward impending doom yet still have enough time to recover and succeed. Although this can be a risky approach, a struggling project has nowhere to go but up. Delivering at all is
Download from www.wowebook.com
Choosing the Right Time to Start
85
often viewed as a success; delivering on time is often viewed as an amazing success. Because of the focus and intensity created through working in short sprints and because of the emphasis on creating at least some forward progress, Scrum is often ideally suited to these types of projects, especially when an experienced ScrumMaster or consultant is available to the team. As the chief technology officer of Sammy Studios (now High Moon Studios), Clinton Keith knew something drastic was needed. His team was developing what was to be a Triple-A video game for the Sony PlayStation and Microsoft Xbox. Teams were working hard, but the game was not coming together as quickly as the development studio’s off-site owners had hoped.Without a change the project would fail. Fortunately, at about this time Keith learned about Scrum and decided to introduce it to his teams. Employees of game studios are distinguished by a fierce amount of individualism, so introducing a process that would require lots of talking, collaboration, daily scrums, and other similar hallmarks of Scrum was difficult. Wisely, Keith chose to introduce Scrum at a time when team members were becoming aware that the current process and approach was not likely to lead to the finished product that all desired. Another common time when you might want to stress the risk of impending doom is when the company will go out of business, or (in a more diversified company) cancel the project, if development continues at its current pace. Anytime a continuation of the status quo has serious repercussions, demonstrating the impending doom of inaction can help fuel Scrum adoption. After all, if doing things the “old way” will only lead to failure, it’s easier to convince team members to try something new, experiment with different practices, and make a leap to Scrum they would otherwise resist. Forecasting impending doom can be powerful but is also dangerous. For it to work, the peril faced by the project or organization must be real. In one company where I worked, our CEO was notorious for announcing that the fate of the company rested on every project we undertook. Cry wolf enough times and people stop believing. You, too, may be tempted to exaggerate the peril; don’t. However, if a project is on its way to failure unless dramatic action is taken, point it out. Team members probably know already but are reluctant to acknowledge it. Additionally, if team members have become apathetic about their project and their work, I will sometimes point out a likely doom that may occur if things don’t change. I used this recently with a team who knew its company was in merger talks with a competitor. “So,” I asked members, “when this merger finishes and the big bosses of the combined company are trying to figure out which projects are redundant and which teams should get the best new projects, how would you like this project and team to be viewed?” This jolt of awareness is just what some teams need.
Download from www.wowebook.com
86
Chapter 5 Your First Projects
Selecting a Pilot Team The intersection of the four factors of Figure 5.1 and the discussion of timing leave out probably the most important factor in the success of a pilot project—the individuals involved. I deliberately chose to leave people out of the discussion of selecting the right pilot project under the assumption that we can select the project and team independently. That is, we can select the best project as our Scrum pilot and can then look around and assemble the right team for that project. I understand this is an uncommon luxury in many organizations—the project and the team often come as a package, just like the ham and eggs in a Scrum team’s favorite breakfast. If you cannot separate the decisions of the ideal pilot project and the ideal pilot team, simply consider all factors together in selecting the best available pilot. Put initial teams together with an eye toward compatibility, constructive dissension among team members, willingness and ability to learn and adapt, technical skills, communication skills, and so on. Of these, the most important consideration in selecting a pilot team is the willingness of the individuals to try something different. Ideally, all will have moved through the awareness and desire steps of the ADAPT acronym presented in Chapter 2, “ADAPTing to Scrum.” When presented the opportunity to influence who will be on the pilot team, I look to create a combination of the following types of individuals: ●
●
●
Scrum lobbyists. The project may not be big enough to include everyone who has been lobbying to adopt Scrum, but I want to be biased toward including as many of these individuals on the project as I can. It would be painful for them to have to be on the sidelines even though they’d still be hopeful for the project’s success. Willing optimists. These individuals understand that a new development approach is needed but didn’t go so far as to actively argue for a change to Scrum in the past. Knowing what they now do about Scrum, they believe it sounds promising and want to see it succeed. Fair skeptics. I don’t want someone on the project who will work to sabotage the pilot or the teamwork necessary to become a Scrum team, but this does not mean I want to avoid all skeptics. It can be very beneficial to include a well-respected, vocal skeptic as long as the skeptic has demonstrated a past willingness to admit being wrong or change an opinion. These individuals can become some of the transition’s strongest supporters when convinced of the benefits through hands-on experience.
Of course, all of this must be mixed with an eye toward combining the right set of skills for the project. If your pilot project’s goal is to develop a video game, you had better put an animator on the team. I also look for individuals who have a track record of working together successfully. Sometimes you find an existing
Download from www.wowebook.com
Selecting a Pilot Team
87
entire team that can become the pilot team. Other times, you can think back over the past few years and put together people who worked together well on past projects. “All this effort toward selecting the right team is stacking the deck in your favor. Of course, a team like this will succeed. But once we adopt Scrum, not every project will be able to be staffed with willing people who have worked well together in the past.”
OBJECTION
Of course, this is stacking the deck in your favor. I said earlier that a pilot isn’t undertaken as a test of “will Scrum work or not.” We know Scrum works. There is plenty of anecdotal evidence (and even some hard data) to prove this. What we don’t know is, how will Scrum work best here? The pilot is not some clinical, double-blind trial. It is an attempt to use a new approach to deliver an important project. So, we stack the deck in favor of doing so and see what we can learn.
What if a Pilot Isn’t a Success? What if, after all your decision making, planning, and hard work, the pilot project fails anyway? First, you would be wise to avoid pinning all your hopes on one big pilot project. Instead, run multiple pilots and keep in mind that the purpose of a pilot project is to illuminate the way for the Scrum projects that follow. The most successful pilot projects will be able to create advice of two forms: do this and don’t do that. As long as the teams involved in the pilot learn about what is likely to work or not work, which aspects of Scrum will be easily brought into the organization, the types and sources of organization-specific resistance, or any other similar information, then I am reluctant to call the pilot a failure. But, what if the pilot project fails to deliver the expected results? In these cases I start by assessing whether the expectations placed on the project were realistic. Perhaps before starting the project we agreed they were, but by the end we’ve learned otherwise. If that’s the case, clearly communicate this to all stakeholders. Don’t do so as an excuse for failing to deliver what was expected. Stakeholders need to know that the team accepts responsibility for any part it played in setting or agreeing to overly optimistic plans. But do make sure that stakeholders understand that although the pilot failed to meet all expectations, it may, in hindsight, have done as well or better than should have been expected. At the end of a Scrum pilot, I find that the pilot project is often compared to the unrealistic assumptions of a perfectly run sequential (“waterfall”) project. There may be an old Gantt chart around showing a project plan that allows for two months of analysis, a month of design, two months of coding, then concludes
Download from www.wowebook.com
88
Chapter 5
Your First Projects
with a month of testing. This very idealized six months is then compared to the reality of a first-ever Scrum project that, let’s say, also took six months. The opponents of Scrum will say, “See, there are no advantages. It takes the same amount of time each way. And the old process has better design and is more maintainable over the long run.” The unfair comparison here is between the reality of a Scrum project that took six months and a plan showing a waterfall project delivering in the same schedule. Do not allow (or make) comparisons between the reality of one project and the myth of another.
Setting and Managing expectations That brings us to our next topic: setting and managing expectations. In 1994 I managed a team that delivered a project that any outsider or any project team member would have considered a success. The product represented a great leap forward for the company. It included far more features than the product that was being replaced, was built using new state-of-the-art technologies with which the company had no prior experience, and included the development of three data centers that went on to provide 99.99999% uptime over the next six years. However, the project was almost considered a failure. The project was to be delivered into multiple call centers with more than 300 nurses on the phones. It was to replace a quirky but familiar system that the company was rapidly outgrowing. The nurses’ expectations of what the new system would deliver were sky high. In monthly sprint reviews with the nurses, I was routinely shocked by what they’d come to expect, some of which wasn’t even technically feasible. With about three months left on the year-long project, I realized my focus had to change. From then on, I spent almost all of my time on expectations management. I met with nurses in each of the call centers and described exactly what would and would not be in the delivered system. I toned down their expectations about the system’s impact on world peace, global warming, and personal weight loss. Without this effort, the product would have been perceived as a failure. Since that project, I have been acutely aware of the importance of expectations management to the overall success of any project. Setting and managing expectations is perhaps even more important at the start of a major shift such as adopting Scrum. In initiating a transition to Scrum, I find it helpful to set and manage expectations about four things: progress, predictability, attitudes, and involvement.
Download from www.wowebook.com
Setting and Managing Expectations
89
expectations About Progress If peripherally involved stakeholders and outsiders have heard one thing about Scrum, it is probably that teams will be faster. I witnessed this when I was invited to speak at a large Silicon Valley company that had been previously visited by a Scrum consultant who oversold company executives on the benefits of Scrum. When I presented to the same group, I started by asking what they knew about Scrum already. All they could recall from the prior session was, “Teams will go faster, and we can change our minds whenever we want.” After recovering from my stunned silence, I told them that those two things could be true but a lot of hard work would be required to get there, and there would be a productivity cost to changing their minds too often. As for expectations that a team will go faster, Jim Highsmith’s advice is much more conservative and realistic. In a six-month project, the goal might be to match historic productivity levels (down in the beginning, up at the end) while improving quality and better matching with customer expectations. Putting too much pressure on early will cause teams to abandon their newly minted practices and revert to the older ones in which they still have more confidence. (2005) Whether a team is more productive or not will largely be a function of how well the team was doing before adopting Scrum. A team that is already doing reasonably well (having learned to work around the inefficiencies and impediments of the current organization and process) will likely, as Highsmith says, slow down at first. In contrast, a team that is really struggling could indeed be faster right from the start. There are two things, though, that I have observed to be nearly universally true of teams right from the start: ●
●
Most teams will overestimate how much they will achieve in the first sprint. Unless a team has significant prior experience working in truly timeboxed iterations, team members will probably think they can get more done in a few weeks than will be realistic. A team, for example, may collectively commit to completing 850 hours of planned work in the coming four-week sprint. In the end, the team finds that due to interruptions, unplanned work, corporate overhead and other factors, they complete only 725 hours of that planned work. They worked just as hard as they had planned to; they were able to complete less planned work, though, because they underestimated all other demands on their time. Most teams will be more useful. I’m using the term “useful” here for what we probably mean by “productive.” But “productive” carries with it connotations of how much product was produced; and usually in a
Download from www.wowebook.com
90
Chapter 5
Your First Projects
software project it isn’t far from that connotation to measuring lines of code. While I’m not completely opposed to measuring lines of code (and do it myself for some purposes), I don’t want to say that Scrum teams start out writing more code per period of time, especially because more code may or may not be a good thing. What I do want to claim is that right from the start, most teams begin to do more useful work shortly after adopting Scrum. This is because sprints focus their attention on “what can we do in the next such-and-such weeks.” Many traditional projects stall trying to find “the best” or “the right” or “the complete” solution. A Scrum team will be more likely to find a good-enough solution, try it, learn, and change as needed.
expectations About Predictability
See AlSo Velocity is described in more detail in Chapter 15, “Planning.”
When I was running development organizations, rather than consulting to them as I do today, keeping my teams productive was not my only concern. I was equally concerned with whether I could make predictions about how long a team would take to finish a project. In many ways, I preferred a team that went at a reasonably consistent (and therefore predictable) pace to a team that sometimes went amazingly fast but that also sometimes went very slow. When piloting an organization’s first Scrum projects, you should be clear with stakeholders that the pace will initially be less predictable than with the organization’s prior approach to software development. Scrum teams measure progress using a metric known as velocity, which is a measure of the work completed (or planned to be completed) in a given sprint. It is expressed in units such as story points or ideal days. Velocity is particularly volatile during a team’s or an organization’s first few sprints. After all, the team is learning to work in a new way, and many of the team members may be learning to work with each other for the first time. It is important to communicate to stakeholders that early calculations using velocity will be particularly suspect. For example, after a team has established some historical data, it will be useful to say things like, “This team has an average velocity of 20, with a likely range of 15 to 25.” These numbers can then be compared to a total estimate of project size to arrive at a likely duration range for a project. A project comprising a total of 150 story points, for example, may be thought of as taking from 6 to 10 sprints if velocity historically ranges from 15 to 25. Until a team has sufficient historical data, though, projections like this can be very risky. This means that a high-risk contract with large penalties for late delivery is probably not an ideal Scrum pilot. (Nor is it an ideal pilot for any process change.) So how much data do you need before you can make projections like this? The easy answer is the more, the better.You can start making predictions after a team has completed its first sprint, but you should do so with a wide margin of
Download from www.wowebook.com
Setting and Managing Expectations
91
assumed error around that first observed velocity. Perhaps more helpfully, I’ll say that the velocity of most teams will stabilize sufficiently after the third or fourth sprint. Don’t take this as a rule; if there are a lot of other things changing in a project’s environment (such as new technologies, team members coming and going, and so on), velocity may very well bounce around longer.
expectations About Attitudes toward Scrum After having been given time to adjust to working in a new way, most developers prefer Scrum. A survey at Yahoo! found, for example, that 85% of all team members would continue using the Scrum approach they’d adopted if the decision were left solely to them (Deemer et al. 2008, 16). But this usually won’t be where attitudes start.Those initiating the transition need to be prepared for lots of objections and complaining at first. Common complaints include the following: ● ●
●
●
All the time wasted in daily scrums The time wasted in making sure the product is well tested at the end of each sprint, even though it won’t ship that often Managers not being able to assess me well enough to write my annual review because they can’t tell which work is mine The system falling apart six months after release because we’re not producing adequate maintenance and support documentation
At the first sign of trouble, there will be a temptation to give in and fall back to the old way of doing things. As Daryl Conner, author of Managing at the Speed of Change, has written, “It is relatively easy to get your people to acknowledge that a change is to be made and to get started on it.The really tough job is to get them to stick with it when the going gets tough” (1993, 116). One of the best ways to head off a slide back to old habits is to anticipate it and talk about it in advance and for team members to agree that when obstacles arise, they will stick to Scrum despite the discomfort and worry.
expectations About Involvement One of the most important expectations to set early on is about involvement in the process. Many project stakeholders accustomed to traditional-style development view their role in a software development project as akin to dropping a car off for service: You tell someone what you need done and come back at an appointed time to pick up the finished work. Stakeholders, especially anyone in a product owner role, will need to understand that this is not the right way to build software-intensive products. Be sure to discuss expectations with the product owner and with other stakeholders whose input and feedback you will solicit either during the sprints or
Download from www.wowebook.com
92
Chapter 5
Your First Projects
during sprint reviews. Make sure that each stakeholder knows what level of commitment the team expects and needs. Scrum is not a silver bullet that will eliminate a development organization’s problems.You should work right from the start to make sure that expectations do not rise to unrealistic levels. Managing expectations will be perhaps one of the most important things you can do early on. If you don’t, you run the risk of an otherwise successful Scrum transition being viewed as a failure.
It’s Just a Pilot Pete Deemer, an independent Scrum consultant, was the chief product officer at Yahoo! when he initiated a program there to pilot Scrum. He recognized that a pilot project is an experiment, and the purpose of that experiment is to gain knowledge that will help later projects succeed. Deemer also recognized that by calling them pilot projects, he was acknowledging that he knew things would not always go smoothly. He said his hope was that “when difficulties cropped up, people would be more likely to just roll up their sleeves and try to find a solution.” Deemer was using the label pilot to create some safety around the execution of the process. Deemer recognized this safety as the valuable thing it was. It created the comfort zone teams needed in which to experiment so that they could be successful in finding the right ways to do Scrum. A year into the company’s transition effort, though, and with well over one hundred Scrum teams, Deemer was still calling every project a pilot. I asked him when he would stop calling them pilots. He told me that until every project at Yahoo! had adopted Scrum and until they knew everything there was to know, he would continue to call them pilots. Whether you view every project as a perpetual pilot, the first few sprints will be tremendously important. You can help ensure these initial sprints start your teams on the right path by carefully selecting the right first project and team members and by accurately setting and managing expectations.
Additional reading Karten, Naomi. 1994. Managing expectations. Dorset House. A good, easy-to-read book with solid advice. The book is focused on customer communication but almost all of its advice is applicable to other workplace relationships. Advice is provided on topics such as listening, clarifying perceptions, avoiding conflicting messages, and creating win/win solutions.
Download from www.wowebook.com
Additional Reading
93
Little, Todd. 2005. Context-adaptive agility: Managing complexity and uncertainty. IEEE Software, May–June, 28–35. Author Todd Little, a board member of the Agile Alliance and cofounder of the Agile Project Leadership Network, presents a framework for categorizing projects as Bulls, Colts, Cows, or Skunks based on the amount of uncertainty and complexity inherent in the project. The framework could be applied to choosing an initial Scrum project, where you avoid selecting the type of projects that Little calls Bulls (high-uncertainty, high-complexity projects).
Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
Part II Individuals
We have come to value… Individuals and Interactions over Process and Tools. —The Agile Manifesto
95 Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
Chapter
6
Overcoming Resistance
I
n a 1969 article in the Harvard Business Review, Paul Lawrence noted that change “has both a technical and a social aspect. The technical aspect of the change is the making of a measurable modification in the physical routines of a job. The social aspect of the change refers to the way those affected by it think it will alter their established relationships in the organization.” When facing resistance, there is a tendency to emphasize the benefits of the technical aspect of change. After all, we are already convinced ourselves, so it’s easy to assume that all we need to do now is to convince others. Lay out the perfect intellectual argument in favor of the change, we think, and people’s resistance will vanish. Lawrence argues against that flawed logic: “We may sometimes wish that the validity of the technical aspect of the change were the sole determinant of its acceptability. But the fact remains that the social aspect is what determines the presence or absence of resistance” (1969, 7). Although it is the social aspect of change that can create resistance, all resistance comes from specific individuals. Teams or departments do not resist changing to Scrum; individuals do. This chapter, therefore, focuses on effective techniques for overcoming individual resistance. We look first at how to anticipate their resistance and take preemptive measures against it. Next, we look at how to communicate about the change and why different messages are best delivered by different messengers. Finally, in this chapter we look at how and why individuals resist and then use that information to identify appropriate responses to overcoming their resistance.
Anticipating Resistance It should not be surprising that some people will resist the change to Scrum. Some people resist all change. I suspect you could walk into a company, announce that 97 Download from www.wowebook.com
98
Chapter 6
Overcoming Resistance
everyone will be getting a 20–50% raise, and there still will be resistance. Some will suspect the boss’s ulterior motives—What do you bet there are strings attached? Others will consider the raises unfair—I work harder than he does, why did he get a bigger percentage raise? A transition such as the one to Scrum brings great upheaval to the organization. Responsibilities broaden, reporting relationships are altered, organizational power shifts, and expectations change. Some individuals stand to gain personally or professionally from such changes; others stand to lose. Understanding how these shifts will affect your organization is vital to anticipating where resistance will occur. This is confirmed by a 2007 study of why people resist change, which revealed that managers’ number one reason for resistance was a fear of losing control and authority (Creasey and Hiatt). The top reasons given by employees and managers for resisting change are shown in Table 6.1. TAblE 6.1 The top reasons for resisting change, as given by employees and managers.
Number
Employees
Managers
1
Lack of awareness
Fear of losing control and authority
2
Fear of the unknown
Lack of time
3
Lack of job security
Comfort with the status quo
4
Lack of sponsorship
No answer to “What’s in it for me?”
5
No involvement in solution design
Who Will Resist? In attempting to anticipate where resistance will arise, it can be helpful to consider the answers to questions such as these: ●
●
Who will lose something (power, prestige, clout, or so on) if the transition to Scrum is successful? What coalitions are likely to form to oppose the transition?
By identifying individuals who will lose from the change and coalitions that will form to oppose it, you will know where to target initial efforts at reducing resistance. Although some individuals resist change, others enjoy it. Musselwhite and Ingram categorize individuals based on their disposition to change as shown in Figure 6.1 (Luecke 2003). At one end are conservers, who enjoy predictability; focus on details and routines; are deliberate, disciplined, and organized; and who
Download from www.wowebook.com
Anticipating Resistance
99
prefer change that maintains the current structure of the organization. Conservers are estimated to be about 25% of the population. 50%
Conservers
• Honor tradition and established practice
Individual disposition to change.
25%
25%
• Prefer change that maintains the current structure • Enjoy predictability
FIguRE 6.1
Pragmatists
• Prefer practical change • Open to both sides of an argument • More focused on results than structure
Originators
• Prefer change that challenges existing structure • Will challenge accepted assumptions • Little regard for accepted policies
At the other end of the range are originators, who also represent about 25% of the population. Originators may appear disorganized and undisciplined, enjoy taking risks, have little regard for policies, and prefer change that challenges the current structure. In between conservers and originators are pragmatists, who represent the remaining 50% of the population. Pragmatists are usually practical, agreeable, and flexible; are more focused on results than structure; usually appear more team-oriented than conservers or originators; are open to both sides of an argument; and usually make great mediators between conservers and originators. I’ve found that being aware of these three dispositions to change is helpful in identifying who will be likely to resist. Clearly, conservers will resist the transition to Scrum.The types of changes that Scrum brings to ways of working, team member interactions, and expectations are the type of changes that go against the nature of a conserver. Categorizing people as conservers, pragmatists, and originators presents an incomplete and overly simplistic picture. Of course, each person needs to be considered and treated as a unique individual. Understanding these categories, however, can help you to formulate strategies for overcoming resistance. An individual’s role in the organization can offer additional insights into why someone is resistant. Many of these causes of resistance are described in Chapter 7, “New Roles,” and Chapter 8, “Changed Roles.”
Note
Download from www.wowebook.com
100
Chapter 6
Overcoming Resistance
Conservers will not be alone, however, in resisting Scrum. Some of the pragmatists will also resist. Because pragmatists are much more open to seeing both sides of an argument for themselves and then adding their support to the right side, laying an early groundwork for success can help turn pragmatists into Scrum advocates. Consider the following activities to help bring pragmatists around to Scrum: ●
Run a pilot project and include pragmatists on the team.
●
Make sure pragmatists who aren’t on the pilot team see the results of it.
●
Provide training to pragmatists.
●
Expose pragmatists to the successes of other companies through conferences, regional agile interest groups, and so on.
●
Be open to the drawbacks and challenges of Scrum rather than overselling it as a silver bullet.
●
Involve pragmatists on the improvement communities that were described in Chapter 4, “Iterating Toward Agility.”
Waterfallacies and Agile Phobias Many of the specific arguments you’ll hear against Scrum are predictable and common across many organizations. Others, of course, will be unique to your organization.You can often anticipate the arguments you’ll hear by thinking through the challenges presented by your organization, domain, technologies, products, culture, and people. In doing so, you’ll find that many of the objections (both the universal and the specific ones) can be categorized as either waterfallacies or agile phobias. A waterfallacy is a mistaken belief or idea about agile or Scrum created from working too long on waterfall projects. Examples include ●
Scrum teams don’t plan, so we’re unable to make commitments to customers.
●
Scrum requires everyone to be a generalist.
●
Our team is spread around the world. Self-organization clashes with some cultures, so we can’t be agile.
●
Our team is spread around the world, and Scrum requires face-to-face communication.
●
Scrum ignores architecture, which would be disastrous for the type of system we build.
●
Scrum is OK for simple websites, but our system is too complicated.
Download from www.wowebook.com
Communicating About the Change
101
An agile phobia is a strong fear or dislike of agile practices, usually due to the uncertainty of change. Some of the agile phobias you are likely to encounter include the following: ●
I’m afraid I’ll have nothing to do.
●
I’m afraid I’ll be fired if the decisions we make don’t work out.
●
I’m afraid of conflict and of trying to reach consensus.
●
I’m afraid people will see how little I really do.
●
It’s so much easier and safer when someone tells me exactly what to do.
●
It’s so much easier and safer when I can tell people exactly what to do.
Although a waterfallacy can often be countered with rational arguments, anecdotes, and evidence, an agile phobia is usually much more personal and emotional. Sometimes people just need to know that their objections have been heard. Throughout this book I have tried to preempt as many waterfallacies and agile phobias as possible. Many chapters include “Objection” sidebars, which provide my advice on how to address common questions and misunderstandings about Scrum.
Communicating About the Change If you look back at Table 6.1, you’ll notice that the number-one reason employees gave for resisting change was a lack of awareness. I’m confident, though, that if we searched the deleted e-mail folders of all who participated in that study, we would find at least one message explaining the reason for the change. However, having been told the reason and understanding the reason are not the same. Most of us need to be given a message multiple times, and usually in multiple ways, before it finally sinks in and we understand it. In addition to hearing a message multiple times, there are some messages we hear better when they come from leaders and others we hear better when they come from our peers.
Hearing from leaders Not surprisingly, research has shown that employees prefer to receive different types of information from different people (Hiatt 2006, 12). Employees prefer to hear messages about why a change is needed from someone high up in the organization. The same employees prefer to hear about how the change will affect them personally from their immediate supervisor. This means that while the president of the company or the general manager of the division may be best at communicating the reason for switching to Scrum, individuals need the opportunity to
Download from www.wowebook.com
102
Chapter 6
Overcoming Resistance
meet with their own managers to discuss the implications for them personally. Still other messages are best communicated by peers. If you are a formal leader in your organization or are informally recognized as one, you will likely find yourself in a position to communicate about the transition. When communicating about an uncertain future, there is a good chance you will be asked questions you do not know how to answer: Will there be layoffs? Who will I report to? Who will write my annual review? If you don’t know the answer to a question, don’t guess. And always be honest. A single lie will destroy all previously established credibility. Additionally, when communicating about the transition, be sure to listen. As a formal or informal leader, your role is not only to communicate what needs to be passed along but also to listen and hear the objections that are being stated (and the ones that are implied). Look once more at the list of common reasons for resisting shown in Table 6.1. Notice that none of the reasons was “I don’t think this change is a good idea.” Yes, of course, there will be some in the organization who think shifting to Scrum is a bad idea, but there will be more who resist for other, more personal reasons—the social aspects of change mentioned at the start of this chapter. In every conversation with others, spend more time listening than talking. For each person who resists the transition, see if you can complete this sentence for them: “I can’t do Scrum because it means I….” There are an infinite number of ways to complete that sentence. After a recent client engagement, I was able to finish the sentence this way for some employees I met that day: ●
I would have to work harder than I want to right now.
●
I would have to stop doing the part of my job I enjoy most.
●
I would have to travel more often to work more closely with my remote team.
●
I would not be able hide that I am no longer a good hands-on programmer.
●
I would not have as many people reporting to me.
None of these statements was uttered by the people I met with that day. But, each was there to be heard when I listened carefully enough. Understanding why individuals are resisting will be the first step in helping them overcome their resistance.
Hearing from Peers Any successful communication plan will include plenty of opportunities for unconvinced employees to hear from their peers. An article in the MIT Sloan Management Report conveys a similar message.
Download from www.wowebook.com
Communicating About the Change
103
Particularly during a period of uncertainty, the best route to influence others can be from the side rather than from above. For leaders, this means allowing employees who have yet to accept a change to hear from those who have, perhaps through team meetings. Even just one exposure to the favorable position of a peer can have a greater impact than multiple exposures to the similar position of a supervisor. (Griskevicius, Cialdini, and Goldstein 2008, 86) An interesting anecdote concerning the power of peer influence involves Sylvan Goldman, who invented the shopping cart in 1937 after noticing that shoppers at his market stopped shopping when their hand-carried baskets became heavy. Surprisingly, Goldman’s carts were not immediately popular. The carts sat unused until Goldman hired male and female actors to push the carts around the store, pretending to shop. After shoppers saw people they perceived as peers using the carts, usage took off. Shopping carts are now a ubiquitous part of the grocery shopping experience. To make this more personal: Consider a time when you were at a conference or trade show and saw a throng crowded into one vendor’s booth to hear the pitch. Admit it:You moved closer to hear what had everyone so interested. Or recall a time you walked through an area with street performers, perhaps a mime, musician, or juggler.You may have noticed that after a small crowd started to form around one performer, the crowd got bigger and bigger. These examples show the power of peer influence. If one’s peers proclaim the benefits, people listen. An effective transition effort will include many opportunities for peer-to-peer discussion. Many will be informal and spontaneous— coworkers talking at lunch, for example. But, effective leaders of a transition to Scrum should also seek to create additional opportunities. This can be done by encouraging participation in communities of practice or even by occasionally scheduling more formal peer-to-peer lunchtime presentations. To the extent possible, try to match the messenger to the audience. Consider this advice from a study on the impact of peer influence. When working to ensure that the voices of supportive employees will be heard, managers often select those who are the most articulate when they should instead favor those who are the most similar in circumstances to the individuals who are still unconvinced. So if resistance to an initiative is strongest among employees with the longest tenures, then a fellow old-timer who has genuinely embraced the change could be a better advocate than someone who might be more eloquent but has only recently come on board. (Griskevicius, Cialdini, and Goldstein 2008, 86)
Download from www.wowebook.com
104
Chapter 6
Overcoming Resistance
The Hows and Whys of Individual Resistance People resist changing to Scrum for many different reasons. Some may resist because they are comfortable with their current work and colleagues. It has taken years to get to their current levels in the organization, to be on this team, to work for that manager, or to know exactly how to do their jobs each day. Others may resist changing to Scrum because of a fear of the unknown. “Better the devil you know than the devil you don’t” is their mantra. Still others may resist due to a genuine dislike or distrust of the Scrum approach. They may be convinced that building complex products iteratively without significant up-front design will lead to disaster. Just as there are many reasons why some people will resist Scrum, there are many ways someone might resist. One person may resist with well-reasoned logic and fierce arguments. Another may resist by quietly sabotaging the change effort. “You think no documentation is a good idea? I’ll show you no documentation,” the passive resistor may think, proceeding to write nothing down, even bug reports the team has agreed should continue to be stored in the defect tracking system. Another may resist by quietly ignoring the change, working the old way as much as possible, and waiting for the next change du jour to come along and sweep Scrum away. Each act of resistance carries with it information about how people feel about adopting Scrum. As a change agent or leader in the organization, your goal should be to understand the root cause of an individual’s resistance, learn from it, and then help the person overcome it. There are many techniques you can use for doing this. But unless the technique is carefully chosen, it is unlikely to have the desired effect.To help select the right technique, I find it useful to think about how and why someone is resisting. We can group the reasons why someone is resisting Scrum into two general categories: ●
They like the status quo.
●
They don’t like Scrum.
Reasons for resistance fall into the first category if they are actually a defense of the current approach.This type of resistance to changing to Scrum would likely result no matter what type of change was being contemplated. Reasons fall into the second category if they are arguments against the specific implications of beginning to work in an agile manner. Tables 6.2 and 6.3 provide some examples of different reasons for resistance and how each would be categorized. Categorizing how individuals resist is even simpler: Is the resistance active or passive? Active resistance occurs when someone takes a specific action intended to impede or derail the transition to Scrum. Passive resistance occurs when someone fails to take a specific action, usually after saying he will. Combining the two
Download from www.wowebook.com
The Hows and Whys of Individual Resistance
105
general reasons people may resist Scrum with the two ways in which they will do it leads to the standard two-by-two matrix, as shown in Figure 6.2. TAblE 6.2
Examples of liking the Status Quo
People may resist Scrum because they like how things are today.
I like who I work with. I like the power or prestige that comes with my current role. This is the way I was trained to do it and the only way I know how. I don’t like change of any sort. I don’t want to start another change initiative because they always fail anyway.
TAblE 6.3
Examples of Not liking Scrum
People may resist because they don’t like Scrum.
I think Scrum is a fad and we’ll just have to switch back in three years. Scrum is a bad idea for our products. I got into this field so that I could put headphones on and not talk to people. Scrum doesn’t work with distributed teams like ours.
Each quadrant of Figure 6.2 is given a name descriptive of the person who resists in the way indicated by the labels on the axes. A skeptic is someone who does not agree with the principles or practices of Scrum but who only passively resists the transition. Skeptics are the ones who politely argue against Scrum, forget to attend the daily scrum a little too often, and so on. I am referring here to individuals who are truly trying to stop the transition, not people with the healthy attitude of “this sounds different from anything I’ve done before but I’m intrigued. Let’s give it a try and see if it works.” Above the skeptics in Figure 6.2 are the saboteurs. Like skeptics, saboteurs resist the transition more from a dislike of Scrum than support for whatever software development process exists currently. Unlike a skeptic, a saboteur provides active resistance by trying to undermine the transition effort, perhaps by continuing to write lengthy up-front design documents, and so on. On the left side of Figure 6.2 are those who resist because they like the status quo. They are comfortable with their current activities, prestige, and coworkers. In principle, these individuals may not be opposed to Scrum; they are, however, opposed to any change that puts their current situation at risk.Those who like the
Download from www.wowebook.com
106
Chapter 6
Overcoming Resistance
status quo and who actively resist changing from it are known as diehards. They often attempt to prevent the transition by rallying others to their cause. The bottom left of Figure 6.2 shows the followers, who like the status quo and resist changing from it passively. Followers are usually not enraged by the prospect of change, so they do little more than hope it passes like a fad.They need to be shown that Scrum has become the new status quo.
Passive
How they resist
Four different types of resistors based on why and how they resist.
Active
FIguRE 6.2
Diehards
Saboteur s
Follower s
Sk eptic s
Like status quo
Don’t like Scrum
Why they resist
Skeptics Thad had no choice but to adopt Scrum. His company had been acquired and was being told by the new owners to begin using Scrum immediately. This wasn’t a direction Thad would have chosen himself, and he had serious concerns about it. Would the daily scrums add value, especially with a product owner who worked from her home 600 miles away? How could a new product as complicated, large, and novel as theirs be done without a lengthy up-front design phase? He could see the value of iterating through the construction phase, but surely an up-front design was still needed. Thad was a skeptic. I knew this from his willingness to admit that Scrum was fine for other domains, technologies, or environments—just not his. Thad openly acknowledged the appropriateness of Scrum for web development but questioned it for his company’s scientific applications. As the most experienced member on his team and one of the longest-tenured developers in the organization,Thad was an opinion leader. Others looked to him to see how he would behave under the mandate to adopt Scrum. Thad exhibited
Download from www.wowebook.com
The Hows and Whys of Individual Resistance
107
a healthy amount of doubt; people should not be expected to change how they work without the opportunity to ask hard questions or be expected to fully embrace Scrum until they’ve worked on a Scrum team and experienced the benefits for themselves. Thad’s uncertainty, however, went beyond doubt to the point where he was resisting the transition in small but important ways. Because he didn’t see the benefit of daily scrums,Thad consistently pushed to skip them. At the end of one meeting he said, “It sounds like we’re all on stuff that will take at least today to finish. So let’s skip tomorrow’s daily scrum and just meet again the day after. Every other day is probably good enough anyway.” Sometimes his ScrumMaster could successfully counter these arguments, but not always. After all, the ScrumMaster was new to Scrum, too. Additionally, like many skeptics, Thad would sometimes claim to support a Scrum practice but would then continue to work as he always had. For instance, he said that he supported working iteratively and claimed to understand the value of having a potentially shippable product at the end of each sprint. In truth, though, Thad didn’t believe that all parts of their product could be designed, coded, and tested within a single sprint. Consequently, he habitually pushed the team to bring more work than it could handle into each sprint. Overcommitting was his way of making sure that some features were worked on over at least two sprints. Some of the tools that are useful in overcoming the resistance presented by skeptics include ●
●
●
●
Let time run its course. If you can keep the transition effort moving forward, evidence of the benefits of Scrum will start to accumulate. Even if this evidence is merely anecdotal, it lessens the amount of resistance a skeptic can put up. Provide training. Some of a skeptic’s resistance is a result of not having done something or not having seen it done before. Training—whether formal classroom training or as provided by an external coach brought in to work with the team—helps by giving the skeptic the experience of seeing firsthand how it can work. Solicit peer anecdotes. If you’ve never experienced something yourself but your friends or those you relate to have, their personal stories will resonate with you. If there are Scrum success stories from other teams in your organization, make sure the skeptics hear them. If Scrum is new to your organization, invite experienced agile outsiders in. Inviting a local software architect to speak at lunch about her company’s success with Scrum will do wonders in persuading your own skeptical architects. Appoint a champion skeptic. In their book Fearless Change, Mary Lynn Manns and Linda Rising suggest designating someone as the company’s “champion skeptic” (2004). The champion skeptic should be influential, respected, and well connected but should not be openly hostile to the
Download from www.wowebook.com
108
Chapter 6
●
●
NOTE
Overcoming Resistance
change. The champion skeptic is invited to all meetings and is given a chance to point out problems. Use this information to sincerely address the concerns the champion skeptic brings up. Doing so demonstrates open-mindedness and prevents any one concern from escalating into a crisis. Push the issue. Put the skeptic in charge of some part of the transition. Suppose you are struggling with a skeptical tester who does not believe testing can be done in the same sprint as the design and programming of a feature. Challenge that tester to identify five ways to help bring the team closer to the goal of testing within the same sprint. The tester won’t be able to come up empty for fear that the next person who takes on the task successfully identifies five items. Then, ask the team to either try all five things or to select the one or two ideas that seem most promising initially. Build awareness. Presumably you have chosen to do something as difficult as introduce Scrum because there is a compelling need to do so. Perhaps a new competitor has entered your space, perhaps your last product took a year too long to release, or perhaps you have any of a number of similar reasons. Make sure that those involved in the transition are aware of the better future that will follow a successful transition.
More tools for overcoming resistance will be described in the sections that follow on saboteurs, diehards, and followers. Although it is possible that any tool may work on any type of resistor, I have listed the tools along with the type of resistor for whom I have found the tool most useful.
In Thad’s case, we were able to overcome his skepticism by pushing the issue. We put a stop to his passive resistance to iterating by switching to shorter sprints. The team had been using four-week sprints but was bringing in about six weeks worth of work in each sprint planning meeting. I told them we were going to try two-week sprints until they got a handle on how much could actually be completed in a sprint.Thad didn’t like this idea. In the next sprint planning meeting, to point out the foolishness of working in such short sprints, Thad pushed the team to commit to what he thought was a ridiculously small amount of work. It turned out to be the right amount; for the first time the team finished all its work inside one sprint. As team members came to see the value of completing what they committed to, Thad’s subtle efforts to force the team to overcommit were thwarted by the team’s new insistence that it bring in to the sprint only what it could handle.
Download from www.wowebook.com
The Hows and Whys of Individual Resistance
109
Although pushing the issue helped in Thad’s case, the biggest factor in eradicating his resistance was time. It just took time (and a mounting pile of anecdotal evidence that it could be done) to sway Thad.
Saboteurs It can be easy to mistake a saboteur for a skeptic—after all, some amount of uncertainty about any change can be a good thing. I made the mistake of confusing a saboteur with a skeptic while teaching a class at a search engine company. Elena, a participant in the class, was asking a lot of good, challenging questions. I didn’t know her role in the organization, but because many class participants were deferential to her, I figured she was important in one sense or another, and so I spent a lot of time answering her questions. If I was right and she was an opinion leader, and if I could convert her by overcoming her objections one by one, I knew that would be a big step forward for this company. At the end of the day, I met with the director who had invited me to teach that class in her company.We talked about how the class went and I told her how I hoped I’d made progress helping Elena to see the light.The director said, “I should have warned you about her. She hates Scrum. She runs a shared user experience design group and is completely opposed to everything about Scrum. She’s been fighting it since we started six months ago. I was surprised to see that she’d signed up for your class.” Elena was a saboteur—opposed to Scrum and actively resisting it. Like most saboteurs, she had been soliciting others to her cause. Despite mounting evidence within her company that Scrum was helping create better products more quickly, she continued to argue that it would not. I asked Elena directly why she was so strongly opposed. She said, “I have the best stateroom on the Titanic and I’m not moving!” In addition to some of the tools offered for overcoming the resistance of skeptics, the following tools have proven useful with saboteurs: ●
●
●
Success. As long as there is any doubt about whether Scrum is the appropriate approach, saboteurs will use those doubts to spread resistance. “Yes, it worked on our web projects,” they may grudgingly offer, “but, it won’t work on our back-end projects.” Success on many different types of projects is a surefire way of weakening those arguments. Reiterate and reinforce the commitment. Saboteurs need to know that the company is committed to the transition. Any sign of weakness and—like a lion eyeing a tasty-looking antelope—the saboteur will attack. Faced with a large number of saboteurs, a strong message from as high up the executive chain as possible will at least let them know resistance is futile. Move them. If possible, find another team, project, or division and move the saboteur there. Unless you are a small organization or are doing an
SEE AlSo Sprints, and especially the value of producing something potentailly shippable by the end of each sprint, are covered in Chapter 14, “Sprints.”
Download from www.wowebook.com
110
Chapter 6
●
●
Overcoming Resistance
all-in transition, it is quite likely that a saboteur can continue to be a productive team member elsewhere—until Scrum starts to permeate that team, project, or division, that is. Fire them. This is the extreme end of moving someone. But if someone is opposed to a stated corporate direction and is actively resisting it, then this is quite possibly the appropriate action. Be sure the right people are talking. Chapter 4 introduced the idea of forming improvement communities as a way of identifying and spreading good practices and enthusiasm for Scrum through the organization. A thriving set of communities focused around topics of special interest can be invaluable in producing enough momentum to overcome resistance. Hearing how others within a community of practice are succeeding with Scrum can lessen a saboteur’s resolve to continue resisting.
Elena was fortunate to work in a large organization in which she could be moved to a different department that was still taking a wait-and-see attitude toward Scrum. She eventually came around to the point where she is again a productive team member, though even today she will admit she is secretly waiting for a change back to the old way of working.
Diehards Katherine worked as the director of metrics and measurement for a large division of a financial data provider. I had been told she was a supporter of the division’s shift toward Scrum but that she had a few questions for me so that she could more effectively do her job of collecting process and product metrics. I have a natural interest in this subject, and such discussions are usually a great chance for me to learn something new. I was looking forward to meeting with Katherine as a chance to discuss some creative, innovative metrics. Was I ever wrong! Katherine had mastered the art of appearing to support the transition to Scrum while trying to hold onto the status quo. Three years prior to our meeting, software development within this organization had been characterized by missed deadlines and buggy software that didn’t meet customer expectations. At that time, Katherine was the newly hired test manager. She instituted some new procedures that dramatically improved things. As a result, teams seemed to be meeting their deadlines (mainly because schedules were padded by what I considered astounding amounts) and quality improved (by creating a separate test group that would spend months testing after a product was handed over to them). For her efforts in solving these problems, Katherine had been promoted and was now running what was essentially a project management office (PMO). As she told me more about her background and about how she had previously helped her company by introducing various process improvements, I was sure I had found an ally in transitioning her division to Scrum. Instead, what I found was someone
Download from www.wowebook.com
The Hows and Whys of Individual Resistance
111
who had built herself a very nice empire (through good effort directed at earlier company goals). She was now so enamored of her current status, the number of people reporting to her, and her level of prestige that she was unwilling to consider further changes. Moses could have come down from the mountaintop with the ideal process engraved on stone tablets, and Katherine would have resisted. Katherine, like other diehards, was opposed to Scrum not because of anything inherent in it but because she did not want to let go of the current state. She was very actively resisting the change but always in ways that allowed her to claim to be supporting it. A common technique of diehards, and one Katherine employed, is to stall the transition by controlling resources. This is possible because diehards are often found at the middle and upper levels of management where they have enough status to want to keep it. In Katherine’s case, she controlled a shared pool of testers. This allowed her to harm the transition by profligately moving testers between projects. There were always plausible reasons: A critical project needed an additional tester, another project needed the expertise of a specific tester, and so on. Katherine’s tactics had the effect of ensuring that no team retained the same personnel from start to finish and that many Scrum teams didn’t have a tester for the first few sprints. Many of the tools appropriate for overcoming the resistance of the saboteur will work with the diehard as well. Some additional tools you may want to employ with diehards include ●
●
Align incentives. Diehards are tied to the status quo because of the benefits (either tangible or intangible) that it brings them. If you find a lot of resistance from diehards, consider all incentives that exist in the organization and make sure each aligns well with being agile. I am not referring solely to financial incentives. Nonfinancial incentives such as who gets promoted or otherwise recognized should also be reviewed. If having a large number of people reporting to you creates clout in your organization, for example, you shouldn’t be surprised when people resist losing their direct reports. Create dissatisfaction with the status quo. Diehards like the status quo. They are not opposed to Scrum because of what it is; they are opposed to it because they like how things are. So, try to create dissatisfaction with the current state. I don’t mean to go create a crisis, but if one looms, point it out. If market share is declining, make sure people know. If calls to tech support are on the rise, show people. If an industry newsletter recently heaped praise on a competitor’s product, hang copies of the article where everyone can see them. This is consistent with the advice of Stewart Tubbs, author of a textbook on small-group interaction: “A prescient manager is always looking for ways for the organization to improve
SEE ALSO Chapter 20, “Human Resources, Facilities, and the PMO,” provides advice on many human resources–related issues.
Download from www.wowebook.com
112
Chapter 6
●
Overcoming Resistance
continuously. She or he is constantly on the lookout for ways to make the organization more effective, and looks to communicate these ideas as a way to generate dissatisfaction with the status quo” (2004, 352). Acknowledge and confront fear. Diehards resist in part because of the uncertainty of what their jobs will look like with Scrum.They are usually very happy with their current positions. Fear of an uncertain future can be very powerful. How will my role change? How will I be evaluated? What will come next in my career? These are all powerful questions often in the mind of the diehard. If you know the answers and are in a position to give them, do so. If the answers are unknown, say so but commit—if you can and if you value the work of the diehard—to working with him to find the answers.You can also help calm these fears by clarifying what is expected not just of the diehard but of others with whom he may work.
In Katherine’s case, her vice president (Christine) and I sought to find the right role for her in the new organization. We talked with her about our confidence that her past experience in guiding the company toward dramatic process improvements put her in a key position for helping the company again. Christine clarified Katherine’s role in the new organization. Unfortunately, Katherine’s sense of identity and self-worth were so tightly coupled to the process that she had helped put in place that she could not help the company move beyond it. In the end, she left the company.
Followers Like diehards, followers are more opposed to changing the status quo than they are opposed to adopting Scrum in particular. Unlike diehards, however, followers present passive resistance to the change. Dexter, a mid-level programmer at an ecommerce company was a follower. He asked questions like a skeptic but always with an undercurrent implying that he knew Scrum was a bad thing. Where a skeptic would ask, “How does Scrum work on projects where getting the user experience perfect is absolutely critical?” Dexter would ask, “Scrum doesn’t work when getting the user experience perfect is critical, does it?” I remember one conversation with Dexter in which he asked how many times I would be back to visit his company. “I’m scheduled back in July and October,” I said. This was June. “Nothing after that?” he asked. “Maybe, but we haven’t scheduled anything past October.” “Good. This will be done by the end of the year, then.” I was impressed by his enthusiasm, but I thought his timeline for adopting Scrum was a little aggressive considering the size of his company. “Well, probably not,” I cautioned. “There will probably still be some work next year. Not everyone has even started running sprints. But you probably won’t need me next year.”
Download from www.wowebook.com
The Hows and Whys of Individual Resistance
113
“Oh,” Dexter replied, “I didn’t mean it that way. I meant we’ll be onto our next new process by then. After the Christmas shopping season is over, we always change our process.” No one had told me about these annual process changes prior to my first visit with this company, but considering the company’s history of adopting a new process every January, it wasn’t surprising that Dexter would take a wait-it-out approach to Scrum. In fact, many followers adopt this approach, reasoning that this change will be followed by some later change and they might as well skip a few along the way. On his own Dexter didn’t present a significant hurdle to a successful transition. But, have enough Dexters in your organization, and they can impede a successful transition. Fortunately, followers are not usually very vigorous in their resistance. They will put up minor, passive resistance, mostly hoping that the change goes away. In addition to some of the tools described already, there are a few more tools that can be useful in dealing with followers: ●
●
●
●
●
Change the composition of the team. Some coworkers bring out the best in us; others bring out the worst. Changing the composition of the team will undoubtedly change the nature of resistance. Replacing a grumbling, always-negative saboteur with a skeptic may remove a follower’s motivation for resisting. Praise the right behavior. Rather than focusing on changing the behavior of the followers, praise some aspects of appropriate behavior whether you observe it in a detractor or supporter. Followers will notice and resistance in some will weaken. Involve them. A great way to reduce the resistance of a fence-sitting follower is to involve her in the design of the new process. For example, you might ask a follower to join an improvement community figuring out how to do automated unit testing on your challenging legacy application or to work with others putting together a presentation for the sales group on how Scrum impacts your ability to put dates in contracts. Model the right behaviors yourself. Followers need someone to follow. Increase the odds that they follow someone who is exhibiting the right agile behavior by modeling those behaviors yourself. For example, given that collaboration is an essential part of Scrum, strive to demonstrate this in your interactions with others. Identify the true barrier. Following the model described in Chapter 2, “ADAPTing to Scrum,” determine whether a follower is resisting because she lacks the awareness, desire, or ability to use Scrum. Then provide the appropriate support to break through that barrier. If she isn’t aware of the reasons for transitioning to Scrum, have a private conversation in which you share them. If she currently lacks the ability to be agile, look for an opportunity to pair her with someone who can help her learn those skills.
Download from www.wowebook.com
114
thiNgs to try Now
Chapter 6
Overcoming Resistance
❑
Identify the five fiercest resistors in your organization.
❑
For each of the five fiercest resistors, decide whether each is most likely a skeptic, saboteur, diehard, or follower.
❑
Identify one action you can take to lessen or counter the resistance of each of the five fiercest resistors. Look for opportunities to find one action that will work for multiple resistors.
❑
Assess whether you have correctly set the stage for the transition by first building awareness and creating desire. Revisit these activities if needed.
Resistance as a useful Red Flag When introducing a complex change into a large organization, resistance will be inevitable. What isn’t inevitable is the reaction of an organization’s leaders to that resistance. Paul Lawrence, whom we heard from at the start of this chapter, describes an appropriate response. When resistance does appear, it should not be thought of as something to be overcome. Instead, it can best be thought of as a useful red flag—a signal that something is going wrong. To use a rough analogy, signs of resistance in a social organization are useful in the same way that pain is useful to the body as a signal that some bodily functions are getting out of adjustment. The resistance, like the pain, does not tell us what is wrong but only that something is wrong. And it makes no more sense to try to overcome such resistance than it does to take a pain killer without diagnosing the bodily ailment. Therefore, when resistance appears, it is time to listen carefully to find out what the trouble is. What is needed is not a long harangue on the logics of the new recommendations but a careful exploration of the difficulty. (1969, 9) Be careful not to turn the need to handle resistance into an atmosphere of “us” against “them.”The real goal is to create a feeling that the transition to Scrum is inevitable and that, as the Borg of Star Trek taught us, “resistance is futile.” The need to foster this atmosphere does not give you carte blanche to ignore the feelings and reactions of employees or to steamroll Scrum into an organization.When an employee resists, an effective leader looks at the employee not as a problem to be solved but as a person to be understood (Nicholson 2003).
Download from www.wowebook.com
Additional Reading
115
Additional Reading Bridges, William. 2003. Managing transitions: Making the most of change. 2nd ed. Da Capo Press. The author is a general transition management expert rather than someone well versed in software development. His book is a standard on how individuals deal with transitions and contains a wealth of information on letting go of the past. There is also strong coverage of moving through what the author calls the “neutral zone,” that time between when the old has been abandoned yet the new approach is not established. Emery, Dale H. 2001. Resistance as a resource. Cutter IT Journal, October. Emery presents the view that a person’s resistance can be viewed as a response to a change initiative and that the response carries with it information. That information can be used to learn about the person and hopefully get that person engaged in the change process. The article includes an informative list of four factors that influence whether someone resists. Manns, Mary Lynn, and Linda Rising. 2004. Fearless change: Patterns for introducing new ideas. Addison-Wesley. This book presents 48 patterns that can be applied to any change initiative. Patterns range from the well known (“do food”) to the lesser known, such as the value of designating a “champion skeptic,” and many others that can help overcome resistance. Reale, Richard C. 2005. Making change stick:Twelve principles for transforming organizations. Positive Impact Associates, Inc. Some of the 12 suggestions in this short book can be used to help overcome resistance. Sections on catching people doing something right and confronting fear are particularly useful. Other suggestions, such as align your culture, are too big to be adequately covered in the few pages devoted to them.
Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
Chapter
7
New Roles
As we discussed in the previous chapter, teams and organizations resist Scrum
for many different reasons. One likely source of opposition to adopting Scrum is confusion over the new roles that exist on a Scrum project. The roles of ScrumMaster and product owner are new ones without exact corollaries in the pretransition organization. It is common for an organization new to Scrum to struggle with filling these roles with appropriate individuals. Until people figure out what the new roles entail and which individuals have those skills, it is hard to put the right people in place. In this chapter, I describe the new roles of ScrumMaster and product owner. For each role, we look at the responsibilities of the role, ideal attributes of candidates for the role, and how to overcome some common problems these roles present.
The Role of the ScrumMaster Much has already been written about the job of the ScrumMaster in removing impediments to the team’s progress (Schwaber and Beedle 2001, Schwaber 2004). Most ScrumMasters quickly grasp that part of their job. Where many falter— especially during the critical first 6 to 12 months of using Scrum—is in their relationships to their teams, which is why we will focus on that topic here. Many who are new to the ScrumMaster role struggle with the apparent contradiction of the ScrumMaster as both a servant-leader to the team and also someone with no authority. The seeming contradiction disappears when we realize that although the ScrumMaster has no authority over Scrum team members, the ScrumMaster does have authority over the process. Although a ScrumMaster may not be able to say, “You’re fired,” a ScrumMaster can say, “I’ve decided we’re going to try two-week sprints for the next month.”1 The ScrumMaster is there to help the team in its use of Scrum. Think of the help from a ScrumMaster as similar to a personal trainer who helps you stick 1 Ideally, the ScrumMaster tries to get team members to decide this on their own. But, if they do not, the ScrumMaster’s authority over the process allows for this decision. 117 Download from www.wowebook.com
118
See AlSo For more on the meaning of potentially shippable, see “Deliver Working Software Each Sprint,” in Chapter 14, “Sprints.”
Chapter 7
New Roles
with an exercise regimen and perform all exercises with the correct form. A good trainer will provide motivation while at the same time making sure you don’t cheat by skipping a hard exercise. The trainer’s authority, however, is limited. The trainer cannot make you do an exercise you don’t want to do. Instead, the trainer reminds you of your goals and how you’ve chosen to meet them. To the extent that the trainer does have authority, it has been granted by the client. ScrumMasters are much the same: They have authority, but that authority is granted to them by the team. A ScrumMaster can say to a team, “Look, we’re supposed to deliver potentially shippable software at the end of each sprint. We didn’t do that this time. What can we do to make sure we do better the next sprint?” This is the ScrumMaster exerting authority over the process; something has gone wrong with the process if the team has failed to deliver something potentially shippable. But because the ScrumMaster’s authority does not extend beyond the process, the same ScrumMaster should not say, “Because we failed to deliver something potentially shippable the last sprint, I want Tod to review all code before it gets checked in.” Having Tod review the code might be a good idea, but the decision is not the ScrumMaster’s to make. Doing so goes beyond authority over the process and enters into how the team works. With authority limited to ensuring the team follows the process, the ScrumMaster’s role can be more difficult than that of a typical project manager. Project managers often have the fallback position of “do it because I say so.” The times when a ScrumMaster can say that are limited and restricted to ensuring that Scrum is being followed.
Attributes of a Good ScrumMaster Today’s surgeons are highly trained and skilled individuals who have had years of formal education followed by extensive internships. This was not always the case. Pete Moore has written that “the first surgeons had little anatomical knowledge, but plied their trade because they had sharp instruments and strong arms. They often did surgery in their spare time while working as the local barber or blacksmith” (2005, 143). Many organizations choose their first ScrumMasters in much the same way; but instead of seeking sharp instruments and strong arms, they look for management or leadership experience. As they become more experienced with Scrum, organizations eventually realize there are many more factors to consider in selecting ScrumMasters. To help save you from picking a ScrumMaster whose sole qualifications are strong arms and sharp instruments, I have listed the six attributes I have found to be common among the best ScrumMasters I’ve worked with.
Download from www.wowebook.com
The Role of the ScrumMaster
119
Responsible A good ScrumMaster is able and willing to assume responsibility. That is not to say that ScrumMasters are responsible for the success of the project; that is shared by the team as a whole. However, the ScrumMaster is responsible for maximizing See AlSo the throughput of the team and for assisting team members in adopting and using For more on wholeScrum. As noted earlier, the ScrumMaster takes on this responsibility without as- team responsibility, see Chapter 11, suming any of the authority that might be useful in achieving it. “Teamwork.” Think of the ScrumMaster as similar to an orchestra conductor. Both must provide real-time guidance and leadership to a talented collection of individuals who come together to create something that no one of them could create alone. Boston Pops conductor Keith Lockhart has said of his role, “People assume that when you become a conductor you’re into some sort of a Napoleonic thing— that you want to stand on that big box and wield your power. I’m not a power junkie, I’m a responsibility junkie” (Mangurian 2006, 30). In an identical manner, a good ScrumMaster thrives on responsibility—that special type of responsibility that comes without power.
Humble A good ScrumMaster is not in it for her ego. She may take pride (often immense pride) in her achievements, but the feeling will be “look what I helped accomplish” rather than the more self-centered “look what I accomplished.” A humble ScrumMaster is one who realizes the job does not come with a company car or parking spot near the building entrance. Rather than putting her own needs first, a humble ScrumMaster is willing to do whatever is necessary to help the team achieve its goal. Humble ScrumMasters recognize the value in all team members and by example lead others to the same opinion.
Collaborative A good ScrumMaster works to ensure a collaborative culture exists within the team.The ScrumMaster needs to make sure team members feel able to raise issues for open discussion and that they feel supported in doing so.The right ScrumMaster helps create a collaborative atmosphere for the team through words and actions. When disputes arise, collaborative ScrumMasters encourage teams to think in terms of solutions that benefit all involved rather than in terms of winners and losers. A good ScrumMaster models this type of behavior by working with other ScrumMasters in the organization. However, beyond modeling a collaborative attitude, a good ScrumMaster establishes collaboration as the team norm and will call out inappropriate behavior (if the other team members don’t do it themselves).
Download from www.wowebook.com
120
Chapter 7
New Roles
Committed Although being a ScrumMaster is not always a full-time job, it does require someone who is fully committed to doing it. The ScrumMaster must feel the same high level of commitment to the project and the goals of the current sprint as the team members do. As part of that commitment, a good ScrumMaster does not end very many days with impediments left unaddressed. There will, of course, be times when this is inevitable, as not all impediments can be removed in a day. For example, convincing a manager to dedicate a full-time resource to the team may take a series of discussions over several days. On the whole, however, if a team finds that impediments are often not cleared quickly, team members should remind their ScrumMaster about the importance of being committed to the team. One way a ScrumMaster can demonstrate commitment is by remaining in that role for the full duration of the project. It is disruptive for a team to change ScrumMasters mid-project.
Influential A successful ScrumMaster influences others, both on the team and outside it. Initially, team members might need to be persuaded to give Scrum a fair trial or to behave more collaboratively; later, a ScrumMaster may need to convince a team to try a new technical practice, such as test-driven development or pair programming. A ScrumMaster should know how to exert influence without resorting to a dictatorial “because I say so” style. Most ScrumMasters will also be called upon to influence those outside the team. For example, a ScrumMaster might need to convince a traditional team to provide a partial implementation to the Scrum team. Or, a ScrumMaster might need to prevail upon a QA director to dedicate full-time testers to the project. Although all ScrumMasters should know how to use their personal influence, the ideal one will come with a degree of corporate political skill. The term “corporate politics” is often used pejoratively; however, a ScrumMaster who knows who makes decisions in the organization, how those decisions are made, which coalitions exist, and so on can be an asset to a team.
Knowledgeable Beyond having a solid understanding of and experience with Scrum, the best ScrumMasters also have the technical, market, or other specialized knowledge to help the team pursue its goal. LaFasto and Larson have studied successful teams and their leaders and have concluded that “an intimate and detailed knowledge of how something works increases the chance of the leader helping the team surface the more subtle technical issues that must be addressed” (2001, 133). Although ScrumMasters do not necessarily need to be marketing gurus or programming experts, they should know enough about both to be effective in leading the team.
Download from www.wowebook.com
The Role of the ScrumMaster
121
Tech leads as ScrumMasters That we’d like ScrumMasters to have solid technical knowledge does not mean, however, that we simply anoint each team’s tech lead as its ScrumMaster. In fact, because Scrum teams are self-organizing, there should not be a companydesignated role such as “tech lead.” However, when adopting Scrum it can be very tempting to take the former tech leads and search for equivalent roles where they can exert similar influence on the team and the product. Often this leads to designating tech leads as ScrumMasters. Although some tech leads make great ScrumMasters, never select someone as a ScrumMaster solely because of this, or any other, past role. A few years ago I provided some initial training to a company, with the goal of helping its leaders decide whether they would adopt Scrum. Two weeks later, one of them called me and said that my training had convinced them, and they were proceeding with Scrum. In fact, she and a few others were in a meeting that moment discussing who their initial ScrumMasters should be, and they wanted my advice. She then said, “We don’t have time for a lot of discussion on this. We have only one question: Can the tech lead on each team become the ScrumMaster for that team? Just give a yes or no answer.” I began to reply, “Yes, they can, but…” and was about to explain the risks of this when she thanked me for my answer and hung up. When I visited this client two months later, I was confronted with, “Why did you say we should make our tech leads our ScrumMasters?” Uh, I hadn’t. Apparently they had encountered some of the problems I had tried to warn them about and had since found that having solid technical knowledge was only one of the desirable attributes of a ScrumMaster. One of the risks in using a former tech lead as the ScrumMaster is that tech leads are used to providing direction to their teammates. And worse, team members are used to looking to their tech leads for decisions. Because a good ScrumMaster does not make decisions for the team, the former tech lead’s history as a decision maker can work against the transition. A second risk of converting tech leads into ScrumMasters is that they often do not have the requisite people skills. Although technical leads must have some interpersonal skills, ScrumMasters must be facilitators who can guide and lead self-organizing teams over which they have no authority. Author of Collaboration Explained, Jean Tabaka, shares similar concerns. I work primarily with Scrum teams, and those that struggle the most typically have a command-and-control project manager or a decision-oriented technical lead as ScrumMaster. Without a facilitative, servant-leader mode of team guidance, the agile adoption will be only a thin veneer over nonempowered, demoralized teams. (2007, 7)
Download from www.wowebook.com
122
Chapter 7
New Roles
All of this is not to say that tech leads should never be considered as possible ScrumMasters. Rather, the point is to be aware of these issues and not cavalierly decide that all tech leads in your organization will make great ScrumMasters. Perhaps the best way to assess a tech lead as a candidate for the ScrumMaster role is to look at how that person has used the leadership authority that came with the tech lead designation. Tech leads who took an “it’s-my-way-or-the-highway” approach in the past will not make good ScrumMasters. On the other hand, tech leads who could have dictated decisions but instead worked to rally supporters to their viewpoint will probably do well.
Internal or External ScrumMasters A common question is whether teams should use ScrumMasters from within the company or whether outside experts should be brought in.The long-term answer is easy: Having skilled ScrumMasters is a critical requirement and as such they should reside within the organization.You should not use contract ScrumMasters over the long-term. But it is hard to learn a new skill until you’ve seen someone else demonstrate it. Learning how to lead without authority, when and how to nudge a team toward adopting new engineering practices, when it’s OK to intervene, and so on can be difficult.Therefore, many organizations benefit from bringing in an outside consultant as a ScrumMaster initially.This outsider may act as the ScrumMaster to the team, but he should also serve as a mentor to prospective ScrumMasters within the team so that the organization can develop its own cadre of ScrumMasters.
Rotating the ScrumMaster Some teams that struggle with choosing the best ScrumMaster decide that an appropriate strategy is to rotate the role among all team members. I don’t advocate this, as I don’t think it demonstrates an appropriate respect for the challenges and significance of the role. In my family, we rotate who cleans the table and loads the dishwasher. Any of us can do that job. We do not, however, rotate who cooks dinner. My wife is a far better cook than anyone else in the family. We want the cooking to be the best it can be, so we don’t rotate that job. If you want your Scrum team to be the best it can be, I do not recommend that you make a habit of rotating the job of ScrumMaster. However, there are some occasions when you may want to rotate. The most common is when you want to create learning opportunities. For example, if team members are struggling to understand the duties of the ScrumMaster, they may want to consider rotating each team member through the role. This may allow each to develop an understanding of what it means to be a ScrumMaster. Similarly, if a team identifies four or five good ScrumMaster candidates among its ranks, it may want to rotate among them, giving each a chance to try the role. Then by
Download from www.wowebook.com
The Role of the ScrumMaster
123
considering the performance of each, the team will hopefully be able to choose the most appropriate ScrumMaster. Bob Schatz and Ibrahim Abdelshafi of Primavera Systems point out another reason why rotating might be useful. With time the team can begin to treat this position as their manager. And the person in that position typically detects and dutifully fills the apparent need. The result is a breakdown in the team’s self-management practice. By rotating the responsibility at the start of each sprint, it diffuses the role and makes it a shared team responsibility and establishes a balance of power. (2006, 145) So, although it is possible to rotate the job of ScrumMaster, I recommend doing it only for specific reasons, such as those just given, and only temporarily. Rotating should not be a permanent practice. There are simply too many problems with it, including the following: ●
● ●
●
Someone who has rotated into the role usually has other, nonScrumMaster tasks to perform during the sprint, and these often take priority. It’s hard to train enough people to do the role well. Some people will use their time as ScrumMaster to try to push through changes to the process. Designating someone as ScrumMaster for a sprint or two does not automatically make someone value the job, which can lead to ScrumMasters who think Scrum is a mistake.
overcoming Common Problems Some of the common problems you may face in making sure that each team has the appropriate ScrumMaster and what you can do to address them include Someone inappropriate takes the role. Sometimes the decision of who should be the ScrumMaster is made for you: someone just says, “I’ll do it,” and takes on the role. Often this is great—after all, good ScrumMasters are likely to be the ones who take on additional responsibility before being asked. But what if the person who volunteers is inappropriate for the role? Your response to this will depend on your role in the organization. If you have some authority over the inappropriate ScrumMaster, the team, or the adoption of Scrum, meet with the volunteer and explain why you need someone different in the role. If appropriate, give the volunteer specific things you would like him to do to be considered as a ScrumMaster candidate later. And if the inappropriate person is already in the role of ScrumMaster? Even though it will be a bit more difficult, I still suggest removing the person from the role if
Download from www.wowebook.com
124
Chapter 7
New Roles
you are convinced the person is truly inappropriate. In either case, act swiftly. An inappropriate ScrumMaster should be changed as soon as possible; I haven’t met a team yet who felt an inappropriate ScrumMaster was removed too soon. If you do not have authority over the ScrumMaster, team, or process, I still suggest you pursue a conversation with the person who has inappropriately assumed the ScrumMaster role. Approach the discussion from the perspective of having the team’s best interests in mind. Try to accentuate the ScrumMaster’s strengths and suggest that he might be able to find a better way of applying them to the project if he steps out of the ScrumMaster role. The ScrumMaster is also a programmer/tester/other on the team. When it is impractical to have a dedicated ScrumMaster for a team, a decision must be made between a ScrumMaster who splits time between two or more teams and a ScrumMaster who is both a ScrumMaster and a programmer, tester, or other on the same team. Although either of these approaches can work suitably well, I tend to prefer that when necessary a ScrumMaster’s time is split between two teams. Having a ScrumMaster who is also an individual contributor on the team carries many risks. One risk is that the person may not have adequate time to devote to both roles. Another is that someone in a combined role will probably need to stay away from critical path activities because the person could be interrupted with ScrumMaster duties at any time. A more subtle risk is that other team members will not easily know whether they are talking to their ScrumMaster or to another individual contributor. Yet another risk is the ScrumMaster will have less credibility when protecting the team from outsiders. A dedicated ScrumMaster will have more credibility when saying, “We can’t help.The team is busy,” than will the ScrumMaster/individual contributor whose same message can be interpreted as “We can’t help. I’m busy.” As risky as it can be for someone to be both ScrumMaster and a technical contributor on the project, it is a common situation. Awareness of these issues and a willingness to work through them as they arise is often the best solution. The ScrumMaster is making decisions for the team. This problem can arise for two completely different reasons: it could be because the ScrumMaster misunderstands or is uncomfortable in the new role, or it could be because the team is used to someone else making decisions. In either case, the solution is the same. The ScrumMaster should be taken aside and reminded that being a ScrumMaster is about providing guidance, not answers. As a new ScrumMaster, one of the first things I had to learn was how to count. When we’d be in a meeting, struggling with some vexing problem, the team would look to me to tell them the solution. Having previously been the
Download from www.wowebook.com
The Product Owner
125
team leader I was tempted to blurt out “the answer.” But I needed the team to learn how to find the right answers themselves, and so I sat there quietly counting to myself. 1, 2, 3…. I counted well into the hundreds on a few occasions, but this helped me learn to keep my mouth shut. And it helped the team learn not only how to make those decisions but also that I wouldn’t do it for them.
The Product Owner I think of the ScrumMaster as the person who ensures that the team is working well together, that impediments to progress are quickly removed, and that the team is moving efficiently toward its goal. I think of the product owner as the person who makes sure the team is aimed at the right goal. A good team needs both roles to succeed. The product owner points the team at the right target; the ScrumMaster helps the team get to that target as efficiently as possible. Roman Pichler, author of Agile Product Management with Scrum: Creating Products that Customers Love, stresses the importance of the product owner: “The product owner has the authority to set a goal and shape the vision.The product owner is not just a project manager who now also writes requirements and does a little bit of prioritization.” Thinking of the product owner as the provider of a team’s goal helps make certain aspects of the product owner’s job clear. For example, the product owner is clearly responsible for defining and prioritizing the product backlog that expresses the goal. Similarly, the product owner is responsible for making sure the project earns a good return on the investment made in it.
Responsibilities of the Product Owner Compiling an exhaustive list of the responsibilities of the product owner would be difficult. Every application exists within its own context of company culture, SEE ALSO individual and team competencies, competitive forces, and so on. This context See Agile Product Manstrongly influences how the product owner role is performed in different compa- agement with Scrum: nies. So instead of providing a checklist of product owner responsibilities (“must Creating Products that Customers Love by attend sprint planning meeting”), I find it more helpful to think in terms of two Roman Pichler for a things that a product owner provides the team: a vision and boundaries. thorough discussion of the product owner role.
Providing Vision Many of the product owner’s responsibilities involve establishing and communicating the vision for the product. The best teams are those whose passion has been ignited by a compelling vision shared by the product owner.Who will we be selling to? What is unique about our product? What are our competitors doing? How will our product evolve over time? Of course, the questions are different for an application or service that is being delivered to a group of in-house users, but
Download from www.wowebook.com
126
See AlSo The product backlog is a prioritized list of features to be added to a product. It is fully described in Chapter 13, “The Product Backlog.”
Chapter 7
New Roles
having a shared vision is important for motivating a team and creating a long-term connection between those developing the product and those using it. Beyond having a clear vision in mind, the product owner must elucidate that vision for the team. The product owner does this through creating, maintaining, and prioritizing the product backlog. There is a lot of dissension among ScrumMasters and teams as to whether the product owner is the one who actually writes the product backlog. I am firmly in the camp of I-don’t-care. It doesn’t matter to me who performs the physical act of writing the product backlog; what does matter is that the product owner is the one who makes sure it happens. If the product owner delegates this to a business analyst and the analyst gets sidetracked and fails to write the product backlog, it is still the product owner who is responsible. Beyond ensuring that the product backlog exists, the product owner adds detail to the vision by answering questions team members will have: Do you want it to work this way? What did you mean when you said such-and-such? Although the product owner can delegate or distribute the responsibility for answering these questions, the product owner cannot delegate the responsibility that they indeed get answered. A product owner can say, “Talk to Nirav if you have questions about how the shopping cart and checkout features should work,” but if Nirav isn’t responsive or helpful, a good product owner will step in and answer questions personally, find out why Nirav is unable to do so, designate a different person, or find some other solution.
Providing Boundaries Vision and boundaries can be thought of as competing aspects of the project. The vision shows what the product can become. The boundaries describe the realities within which the vision must be realized. Boundaries are provided by the product owner and often come in the form of constraints, such as ●
I need it by June.
●
We need to reduce the per-unit cost by half.
●
It needs to run at twice the speed.
●
It can use only half the memory of the current version.
Often when I tell groups that the product owner is allowed to dictate things such as this—especially the date—I am met with angry responses. “No,” they tell me, “estimates are up to the team. All the product owner does is prioritize the work.” Although those statements are true, the product owner is also responsible for defining the boundaries that will determine the success of the product. Most experienced Scrum team members will readily agree that it is within the product owner’s purview to say, “We need to develop at least this much of the product backlog or the product won’t be worth shipping.” But many of these same experienced people resist when similar statements are made about deadlines.
Download from www.wowebook.com
The Product Owner
127
But, let’s see what Takeuchi and Nonaka had to say in their study of the six teams that formed the foundation of Scrum and that were the subject of the first paper on Scrum back in 1986. Fuji-Xerox’s top management asked for a radically different copier and gave the FX-3500 project team two years to come up with a machine that could be produced at half the cost of its high-end line and still perform as well. (139) Here, we clearly have a team that is given a challenging problem—match the performance of the company’s best current copiers but at half the cost—and a deadline for solving the problem.There is nothing wrong with this. Product owners go wrong when they overly constrain a problem or when they make a solution impossible. Had Fuji-Xerox’s management given that team the same problem but only one month to solve it, the team would have seen the futility in the situation and not even tried. The problem as presented to that team presumably left the team plenty of operating room in which to find a solution. A part of the product owner’s job that is more art than science is providing just enough of a boundary around the project so that the team is motivated to solve the difficult problem before them but not providing so many boundaries that solving the problem becomes impossible. When brainstorming solutions to a challenging problem, common advice is to think “outside the box.” However, there is evidence that better solutions emerge more easily from thinking that is done “inside the box” as long as the box has been properly framed (Coyne, Clifford, and Dye 2007). When we’re told to think outside the box, they say, the total lack of constraints can be unsettling. Imagine a random product you are trying to improve in a typical facilitated brainstorming session. Outside-the-box possibilities could include making the product bigger or smaller, lighter or heavier, prettier or more rugged (or changing its appearance in any of a hundred ways). Further ideas could involve making the product more expensive or less or maybe breaking it into parts or bundling it with other products. They could involve changing the product’s functionality, durability, ease of use, or the way it fits with other products. Or its availability, affordability, or repairability. How do you know which dimensions are fruitful to explore? Without some guidance, people cannot judge whether they should continue in the direction of their first notion or change course altogether. They cannot handle the uncertainty, and they shut down. (2007, 71) The product owner’s job is to create the new box—the boundaries—in which the team will think. This new box prevents the team from getting lost in
Download from www.wowebook.com
128
SEE ALSO Schedule is one side of the infamous iron triangle of scope, schedule, and resources. The iron triangle is discussed in Chapter 15, “Planning.”
SEE ALSO Self-organization is discussed in detail in Chapter 12, “Leading a Self-Organizing Team.”
Chapter 7
New Roles
the infinitude of possible solutions and gives team members a basis for making and comparing choices. Boundaries for that new box are determined by the most important constraints for the business, which may involve things like minimum guaranteed functionality, dramatically faster performance, reduced resource consumption, and, yes, in some cases the date.
Each Team Needs Exactly One Product Owner On a team that is new to Scrum, the ScrumMaster job can be very time consuming. The ScrumMaster will be busy training team members on Scrum itself, encouraging them to think in different ways about the problems they encounter, removing impediments to the team’s progress, and more. Early on, this might even be a full-time job, depending on the newness of the team and the types of impediments team members face. Over time, however, things improve. Eventually the ScrumMaster has removed many recurring impediments, and the team itself has begun to master Scrum and has embraced its self-organizing nature. As these changes occur, the team needs less and less of their ScrumMaster’s time. If we were to graph a team’s demands on its ScrumMaster’s time, it would look something like Figure 7.1.
FIGURE 7.1 A team’s time demands on their product owner and ScrumMaster move in different directions.
T ime needed
Product owner ScrumMaster
T ime
Contrast this with the team’s need for its product owner. When the team first adopts Scrum, it will not be very good at it. It will struggle with how much detail to put on the product backlog, how much work can be completed in a sprint, how to work well together within the sprint, and so on. Team members will be learning new practices and new ways of working together. The team will not be very fast—at least not compared to how fast it will be after it gets good at Scrum. As the team speeds up (through its own improvements and from the ScrumMaster gradually removing impediments), it will be completing more work each sprint. This means members will have more questions for their product owner.Therefore,
Download from www.wowebook.com
The Product Owner
129
as the team’s efficiency increases, so will its demands on the product owner’s time. This is likely the case even as team members learn the domain and take on more responsibility themselves. This inverse relationship between a team’s demands on the product owner’s and the ScrumMaster’s time is shown in Figure 7.1. The lines in this figure show that although it may be acceptable to have an experienced ScrumMaster work with two or possibly even three teams (depending on how much help each team needs at the time), it is not advisable to share one product owner across more than two teams. Instead, each team should ideally have its own dedicated product See AlSo owner. The product owner job is very challenging. Part of the job is outward- The topic of scaling the product owner facing: talking to customers and following market trends. Another part of the job role for large projects is inward-facing: working with the team to build the product.When a job involves is described in detail Chapter 17, “Scaling both inward- and outward-facing duties, the outward, customer-facing duties al- in Scrum.” ways seem to win. Any developer who is responsible for both new development and customer support can confirm that customer-facing issues almost always win. Just as a product owner should work only with one team, each team should work only with one product owner. I have seen occasions where having two product owners assigned to a team works, but this is usually a result of someone in the organization not wanting to make the hard call of saying, “Your product owner is so-and-so.” Find someone to make the hard call, designate one product owner for the team, and then encourage that person to solicit all sorts of helpful input and feedback from those who also could have been the product owner. A team with two product owners will inevitably fall into the trap of “Mom said no; let’s go ask Dad.” Of course, only the most dysfunctional (or perhaps desperate) teams will get the “wrong” answer from one product owner and go ask the same question of the other. Even they know they will eventually be found out and will be called on their behavior. However, most teams with two product owners will go so far as to think about which product owner will give the most satisfying answer before they choose which one to ask.
A Product Owner Team In some cases, the product owner role can be too much for one person. Researchers Angela Martin, Robert Biddle, and James Noble found that the product owner role is “consistently under more pressure than the developers and other participants in the project” (2004, 51). Ron Jeffries, one of the inventors of the Extreme Programming process and a Scrum trainer, agrees: “It was only after the first book or two on XP came out that we fully realized the load a single XP Customer/ Scrum product owner is taking on. It’s clear that they’ll need to be a group.” A common solution is the use of a product owner team. Splitting the duties of the product owner across a product owner team is fine as long as there remains one person on that team who can be singled out as the person with
Download from www.wowebook.com
130
Chapter 7
New Roles
ultimate responsibility and authority, a “the-buck-stops-here” individual. Even with a product owner team, each development team needs to have one identifiable, consistent person they can go to for answers. As Ken Schwaber and Mike Beedle have written, “The product owner is one person, not a committee” (2001, 34). Make sure each team can identify one person people can go to for decisions. A good Scrum team moves far too quickly to wait for all questions to be answered by committee. A product owner will never be able to instantly answer all questions the team may have; occasionally telling the team, “I need to run this by my colleagues,” is fine. But, well-founded caution should not be replaced by de facto decision-by-committee.
Attributes of a Good Product Owner NOTE Remembering these five attributes is easy. Putting together the first letter of each spells ABCDE.
As when describing what to look for in selecting or hiring a good ScrumMaster, I’ve culled the long list of desirable product owner traits down to five must-have attributes. Available. By far the most frequent complaint I hear from teams about their product owners is that they are unavailable when needed. When a fast-moving team needs an answer to a question, waiting three days for an answer is completely disruptive to the rhythm it has established. By being available to the team, a product owner demonstrates commitment to the project. The best product owners demonstrate their commitment by doing whatever is necessary to build the best product possible. On some projects this includes doing things like assisting in test planning, performing manual tests, and being actively engaged with other team members. Business-savvy. It is essential that the product owner understand the business. As the decision maker regarding what is in or out of the product, the product owner must have a deep understanding of the business, market conditions, customers, and users. Usually this type of understanding is built over years of working in the domain, perhaps as a past user of the type of product being developed.This is why many successful product owners come from product manager, marketing, or business analyst roles. Communicative. Product owners must be good communicators and must be able to work well with a diverse set of stakeholders. Product owners routinely interact with users, customers, management within the organization, partners, and, naturally, others on the team. Skilled product owners will be able to deliver the same information to each of these different audiences while at the same time tailoring their message to best match the audience.
Download from www.wowebook.com
The Product Owner
131
A good product owner must also listen to users, customers, and perhaps most important the team. Especially as team members learn more about the product and market (as they should over time, especially on a Scrum project), they will be able to offer valuable suggestions about the product. Additionally, all teams will have much to say to the product owner about the technical risks and challenges of the project. Although it is true that the product owner prioritizes all work for the team, the wise product owner will listen to her team when it recommends some adjustments in those priorities based on technical factors. Decisive. Another common complaint teams make about their product owners is their lack of decisiveness. When team members go to the product owner with an issue, they want a resolution. Scrum puts a lot of pressure on teams to produce functionality as quickly as possible. Teams are frustrated when a product owner responds to a question with, “Let me call a meeting or convene a task force to work on that.” A good team will understand that this is sometimes necessary, but teams are very perceptive at knowing when a product owner is actually just trying to avoid making a hard decision. Just as bad as a product owner who won’t make a decision is the product owner who makes the same decision over and over but with different answers. A good product owner will not reverse prior decisions without a good reason. empowered. A good product owner must be someone empowered with the authority to make decisions and one who is held accountable for those decisions. The product owner must be sufficiently high up in the organization to be given this level of responsibility. If a product owner is consistently overruled by others in the organization, team members will learn to go to those others with their important questions.
The ScrumMaster as Product owner One common consideration is whether the ScrumMaster and product owner roles should be combined. No. In the vast majority of times I’ve seen this done, the results have been disappointing. Not only does combining these roles put a lot of power in one person’s hands, but it also creates confusion for both team members and the ScrumMaster/product owner hybrid. A certain amount of tension should exist between these roles. Product owners continually want more, more, more features. ScrumMasters protect their teams by pushing back against the product owner when they feel that pushing their teams harder would be detrimental. When the roles are combined, this tension is removed. With an eye toward full disclosure, I feel compelled to add that two of the most successful Scrum projects I’ve participated in or witnessed had a combination ScrumMaster/product owner. There are tremendous advantages to having a
Download from www.wowebook.com
132
Chapter 7
New Roles
single person who has a deep understanding of the market, has the technical and collaborative skills of a ScrumMaster, and can effectively balance them. Toyota essentially combines the ScrumMaster and product owner roles into its single chief engineer role. The Toyota chief engineer is someone who is most definitely an engineer and could likely engineer any part of a new vehicle but who also has a deep understanding of the market and likely purchasers of the vehicle being engineered. So, the combined ScrumMaster/product owner model can be successful. However, I suspect that there are very few individuals who are good at both jobs and who are good at doing them both at the same time. Even if you suspect you are one of them or can identify these people within your organization at the start of the transition to Scrum, I still recommend using separate individuals in these roles, at least at the start.
overcoming Common Problems There are many potential pitfalls when selecting the initial product owner. Some of the most common early-stage problems and what you can do to address them include
See AlSo Establishing a product owner hierarchy like this is a common scaling technique and is described in Chapter 17.
The product owner delegates decision making but then overrules the decision maker. To fit the new duties of the product owner into their schedules, some product owners delegate decisions about specific parts of the product. Other product owners enlist a business analyst to be a “feature owner” over some part of the system. This can work well because the product owner has more time to dedicate to areas that are not as easy to delegate. Problems arise when the product owner says that decision-making authority has been delegated but then continues to approve or sometimes reverses decisions. Before delegating, product owners should be sure they are really willing to delegate without later second-guessing. Because of the pressure of the short, timeboxed sprints, Scrum teams often move much more quickly than they did before transitioning. It is inevitable that some decisions that the product owner delegates will turn out to be wrong, and these should be revisited. What we want to avoid, however, are situations where the product owner says, “Get your answers from Dave; he owns this part of the system,” and then consistently overrules Dave’s answers. My advice to a new and overloaded product owner is to free some time by delegating just beyond the point at which you’re comfortable.You may be pleasantly surprised and find no important decisions to reverse. But you’ll occasionally find some decisions you would have made differently. Often the best thing to do in this case is the same thing we’re all taught when learning to drive: If the car starts to slide, steer into the slide. Rather than pull against the decision (assuming
Download from www.wowebook.com
The Product Owner
133
it is not a horrendous one), allow that decision to persist through the end of the sprint; then decide if it should be changed. When the cost of reversing a decision is compared against all the other valuable work on the product backlog, you may find that the decision wasn’t so bad after all. The product owner pushes the team too hard. Product owners are often under pressure to deliver financial results to the company; more features delivered sooner is one way for them to achieve it. As I’ve said, I have no objection to a product owner who announces at the start of a project, “We need to build a product that is smaller, better-performing, and cheaper than our competitor’s, and we need to do it in three months less than we spent on the last product.” As long as a challenging goal like that is accompanied by appropriate freedom in how the goal is achieved, the team will do its best. The problems arise when the team is kept under constant and changing pressure from sprint to sprint. One difficult goal of “do this amazing thing in 6 months” is in many ways less stressful for the team than 13 successive two-week sprints of “I need more, more, more!” If you have product owners who are pushing teams this way, the ScrumMasters should first push back and then work with the product owners to set longer-term goals for the teams while ensuring teams have commensurate degrees of freedom in how those goals are achieved. The product owner wants to cut quality. Cutting quality is an oh-so-tempting decision when trying to deliver a challenging set of features by a difficult date. It can lead to the short-term appearance of having met the objectives established at the start of the project. Eventually, however, the cost of having cut quality becomes apparent as more post-release bugs than usual are reported, the team’s velocity decreases, and customers clamor for the product to behave as they thought it would. Ken Schwaber has called quality a “corporate asset” (2006). As such, no one except the chief executive has the authority to sacrifice quality in exchange for achieving a short-term goal such as making a release date. A decision to cut quality may be the appropriate one; I can’t tell you otherwise without knowing the full context of a situation. But, that decision is one that needs to be made sufficiently high up in the organization and with such openness that no one is surprised by the negative impacts that will almost certainly follow. Selecting product owners who understand this is sometimes challenging in organizations that are consistently focused on this quarter’s numbers. Pushing back against attempts to reduce quality is the job of the ScrumMaster. The ScrumMaster does not need to prevail in these early disagreements. The ScrumMaster does, however, have to succeed in making the decision visible. Time is on the ScrumMaster’s side. If the ScrumMaster successfully raises the visibility of decisions to cut quality, he should eventually be able to win later
Download from www.wowebook.com
134
Chapter 7
New Roles
arguments against reducing quality. “Remember on the Gouda project how I told you that cutting quality on version one would hurt us during version two?” the ScrumMaster can say. “Well, here are the graphs of velocity on the two projects. Note that version two had a lower velocity even though we added two experienced people. That was because we left bugs behind during version one (here’s a graph showing that) and because the team didn’t feel it had the time to do a good job of keeping its code clean.We even skipped the automated unit tests on a few modules. Here’s a comparison of the number of defects found during the six months following release, broken down by whether the module had automated unit tests. It’s up to you if we do this again on this project, but I think you know my opinion.”
SEE ALSO For more on the challenges of distributed development, see Chapter 18, “Distributed Teams.”
Our product owner is in a different city than the development team. With more projects being developed by remote teams, this is an increasingly common situation. Both the team and product owner in this situation should assume some of the burden of overcommunicating with the other. I have worked with many remote product owners, and it can work very successfully as long as the product owner does the following: ●
Remains engaged in the project
●
Establishes a rapport with the team
●
Performs all usual duties of the role
●
Is available to the team for phone calls for at least some part of the day, even if it is after the usual workday for the product owner
●
Responds by e-mail or phone when not available in person
New Roles, Old Responsibilities The roles of product owner and ScrumMaster are critical for becoming a highperforming Scrum team. In this chapter we’ve looked at the responsibilities of the people in these jobs, attributes we’d like our product owners and ScrumMasters to possess, and how to overcome some common problems that occur when introducing these roles into an organization. Although the roles of product owner and ScrumMaster are new, the responsibilities are not. High-performance teams have always known they needed to do the things described in this chapter. On a Scrum team, individuals are asked to look beyond their explicit roles to find ways to help the team accomplish its goals. In the next chapter, we look at what this new emphasis on teamwork and shared responsibility means for existing roles in the organization.
Download from www.wowebook.com
Additional Reading
135
Additional Reading Davies, Rachel, and Liz Sedley. 2009. Agile coaching. The Pragmatic Bookshelf. This book is full of practical, immediately useful advice for any ScrumMaster. It covers everything from how to help the team improve to how to help yourself improve. Fisher, Kimball. 1999. Leading self-directed work teams. McGraw-Hill. The self-directed work teams of Fisher’s book are the self-organizing teams of an agile project. His book offers guidance appropriate to ScrumMasters. James, Michael. 2007. A ScrumMaster’s checklist, August 13. Michael James’ blog on Danube’s website.http://danube.com/blog/michaeljames/a_scrummasters_checklist. In making his argument that a great team needs a full-time ScrumMaster, rather than one who works with two or more teams, Michael James presents a rather exhaustive list of work to be performed by the ScrumMaster. Kelly, James, and Scott Nadler. 2007. Leading from below. MIT Sloan Management Review, March 3. http://sloanreview.mit.edu/business-insight/articles/2007/1/4917/ leading-from-below. This article presents useful information for those not in authority positions who nonetheless realize they can still influence the direction of the organization. Pichler, Roman. Forthcoming. Agile product management with Scrum: Creating products that customers love. Addison-Wesley Professional. The most complete coverage available of the role of the product owner. Pichler clarifies the key differences between traditional and agile product management while providing useful tips to product owners. Schwaber, Ken. 2004. Agile project management with Scrum. Microsoft Press. Schwaber’s second book is full of anecdotes about teams using Scrum both successfully and unsuccessfully. In addition to chapters dedicated to the product owner and ScrumMaster roles, other valuable advice on performing those roles is spread throughout the book. Spann, David. 2006. Agile manager behaviors:What to look for and develop. Cutter Consortium Executive Report, September. In this extensive report, Cutter consultant David Spann addresses the question of what attributes to look for in what he calls an “agile manager,” but which corresponds closely to the ScrumMaster role of this chapter. He starts with a list of 22 candidate behaviors but reduces this to a list of 8 preferred behaviors to look for when hiring an agile manager.
Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
Chapter
8
Changed Roles
The previous chapter focused on the two new roles on a Scrum project—ScrumMaster and product owner. But changes to a Scrum project’s team members go beyond the introduction of two new roles. For example, the self-organizing nature of a Scrum team eliminates the role of the technical team leader, individuals are asked to look beyond their specialties and help the team in any way possible, emphasis is shifted from writing about requirements to talking about them, and teams are required to produce something tangible by the end of each sprint. Because these changes alter the roles and relationships within the team and organization, they often contribute to some of the challenges organizations face when adopting Scrum. This chapter will describe the primary adjustments individuals must make as they transition from traditional roles to Scrum. The focus will be on how these roles change, rather than on a thorough description of each role. I won’t, for example, describe everything a tester does as part of testing an application. I will instead focus on changes in how a tester works on a Scrum project. I will discuss the roles of analyst, project manager, architect, functional manager, programmer, database administrator, tester, and user experience designer. While reading about these roles, keep in mind that any team member who is involved in developing a product or software system is first and foremost a developer. When I use a term like tester, I mean a developer with specific skills or an interest in testing. Similarly, analyst is used to refer to a developer who prefers to work on analysis tasks but who will work on any high-priority task needed by the team.
NOTE
Analysts With an intimate knowledge of the product and strong communication skills, some analysts will tend to shift into product owner roles. This is especially common on large projects that make use of a hierarchy of product owners. Someone with product manager on her business card, for example, may act as the chief 137 Download from www.wowebook.com
138 See AlSo Scaling the product owner role is discussed in Chapter 17, “Scaling Scrum.”
See AlSo Shifting the emphasis from documents to discussions is described in Chapter 13, “The Product Backlog.”
See AlSo User stories are an agile way of describing features. They are described in Chapter 13.
Chapter 8
Changed Roles
product owner for the overall product, spending most of her time looking outward at users and the market. An individual with analyst on her business card, on the other hand, may act as product owner for the various teams, working with the chief product owner to translate her vision into product backlogs for her teams. Many teams find that having an analyst on the team continues to be very beneficial, although the ways in which the analyst works will change. On traditionally managed projects, the analyst’s mission seemed to be to get as far ahead of the team as possible. On a Scrum project, just-in-time analysis becomes the goal. The analyst’s new aim is to stay as slightly ahead of the team as possible while still being able to provide useful information to the team about current and near-term features. Analysts can be instrumental in achieving the goal of shifting the emphasis from writing about requirements to talking about them. Because analysts are not working as far ahead of the team as they may be used to, they need to become more comfortable sharing information with the team more informally, rather than through a large document. As much information as possible should be shared through verbal discussion, but analysts will still need to document some requirements, especially when working on a distributed team. Often though, what the analyst writes will be less formal—more often a wiki than a document with a signature page. On traditional projects, analysts often become intermediaries through whom other team members and the product owner communicate. On a Scrum project the analyst should become more a facilitator of team–product owner discussion than an intermediary. Team members and product owners need to talk. Rather than be the conduit for all conversation, the good agile analyst focuses on making sure those conversations are as productive as possible given the time constraints the team or product owner may be under. This may mean that the analyst steers the product owner and team toward talking about one user story rather than another because that is where there is more risk of going astray. Or it may mean that the analyst conveys a top-level understanding of a new feature to the team before bringing the team and product owner together to discuss the details. On a traditional project, an analyst may say to the team, “I’ve talked to our key stakeholder, understand what he wants, and have written this document describing it in detail.” By contrast, on a Scrum project, the same analyst should say, “I’ve spoken to our product owner and have a feeling for what he’s after. I wrote these six user stories to give you a start, and I’ve got a bunch of additional questions to ask the product owner. But I want to make sure that I bring along a couple of you when we have those discussions.” With all this talk of analysts looking ahead, it can be tempting to think that analysts work a sprint ahead of the team.They don’t. Gregory Topp, an analyst with Farm Credit Services of America, describes how using Scrum has allowed him to concentrate on the current sprint: “Before Scrum, I had to focus on requirements
Download from www.wowebook.com
Project Managers
139
that were not going to be developed for several weeks, if not months. Now, I focus on the current sprint (two weeks for us), so more time can be spent on user story details, development, and testing.” An analyst’s first priority is to achieve the goals of the current sprint. An analyst on a Scrum team will assist in testing, will answer questions (or track down answers to questions) about features being developed, will participate fully in all regular sprint meetings, and so on. However, it is quite possible that these activities will not fully consume the analyst’s time. Time that is not needed to complete the work of the current sprint can be used to look ahead. However, being a part of the team on this sprint and spending some time looking ahead is not the same as working a sprint ahead of the team. Topp explains how jumping too far ahead actually put him behind: “I tried working ahead a sprint or two, defining user story details. I found that this caused the current sprint to suffer. I also found that many times the details of a user story changed by the time the team actually started working on the story.” A common question is whether the effort analysts spend looking ahead should be included on the sprint backlog. My recommendation is to include on the sprint backlog any specific analysis tasks that can be identified during sprint planning. For example, suppose the team is working on an application that approves or rejects loan applications. If the product owner and team agree that the next sprint will include work on calculating the applicant’s credit score, then preliminary analysis tasks related to that should be identified, estimated, and included in the sprint backlog. On the other hand, if the next sprint’s work is unknown, no specific tasks related to the next sprint should be included on the sprint backlog. Overall, many analysts enjoy the change to Scrum even though they relinquish the role of sole interpreter of customer desires. Two years after adopting Scrum, Topp commented on how his relationship with others on the team had changed. Because we are all on the same team and all work on the same user stories at the same time, the team seems to have more unity. Before using Scrum, it seemed each function (analyst, programmer, tester, DBA) was done in a silo. There was more fingerpointing when in that mode. Now using Scrum, the team is all focused on a small set of stories. The finger-pointing has been eliminated with an “as a team” mindset.
Project Managers On a project using a sequential development process, the project manager has the difficult job of ensuring that the product a customer wants is the one that is developed. To do this, the project manager must try to manage everything about
Download from www.wowebook.com
140
Chapter 8
Changed Roles
the project, including scope, cost, quality, personnel, communication, risk, procurement, and more. Some of these responsibilities really belong to others. Scope control, for example, rightfully belongs with the customer. No one else is in the position to make the necessary trade-off decisions that will arise during product development, as priorities, team velocity, and market conditions shift. Prioritization is not a static, one-time, all-at-the-start activity that can be managed by a project manager.Yet time and again, sequential projects demand that project managers make educated guesses to deliver the right product. On Scrum projects we acknowledge the untenable role of the project manager and eliminate it. Eliminating the role, though, does not mean we can do away with the work and responsibilities. As you might guess, since self-organizing teams are a core tenet of Scrum, a great deal of the responsibility previously shouldered by the project manager is transferred to the Scrum team. For example, without a project manager to assign tasks to individuals, team members assume the responsibility of selecting tasks themselves. Other responsibilities shift to the ScrumMaster or product owner. Former project managers often assume one of the roles that have taken on some part of their past responsibilities—the project manager becomes either a ScrumMaster, product owner, or team member, depending on experience, skills, knowledge, and interests. Some people became project managers because they considered it the next step in a desirable career path, yet they don’t enjoy project management.These individuals miss the technical challenge of working as a programmer, tester, database engineer, designer, analyst, architect, or so on. Many of these individuals will take advantage of the elimination of the project manager role to return to work they found more satisfying. Other project managers have used their roles to become knowledgeable about the business and its customers. A project manager in this situation will leverage that knowledge into a role as a product owner. This can be an excellent fit, especially for the project manager who is having a hard time completely relinquishing the ability to tell the team what to do. As part of their role, product owners are allowed to tell the team a bit of the “what to do” as long as they stay largely away from telling them how to do it. This can satisfy a former project manager whose nature makes it hard to stop occasionally directing the team. If a project manager can overcome the old habits of directing the team and making decisions for it, it is likely such a project manager can become a good ScrumMaster. This is the most common new role for project managers in organizations adopting Scrum.The new role will likely be difficult at first for the former project manager as she learns to bite her tongue and let the team learn how to work through its own issues and make decisions. Often, new ScrumMasters are put in the challenging position of coaching teams at something that they are not
Download from www.wowebook.com
Project Managers
141
yet good at themselves—being agile. The best strategies for a ScrumMaster in this situation include the following: ●
●
●
Stick as close as possible to doing Scrum by the book. Initially follow the advice of this or another Scrum book closely. Or engage an on-site trainer or coach and follow her advice to the letter. Only begin customizing the process after you have real, hands-on experience with it. Talk to other ScrumMasters as much as possible. If there are multiple ScrumMasters in your organization, form a community of practice with the other ScrumMasters and share good and bad experiences. Look to learn by extracting lessons from commonalities among these experiences. If you are the only one in your organization, find outside ScrumMasters with whom you can share stories and compare approaches. learn as much as you can as quickly as you can. Read books, articles, blogs, and websites. Look into local agile interest groups and attend their meetings. Try to attend one or more of the major agile or Scrum conferences.
See AlSo Communities of practice are described further in Chapter 17.
Doris Ford, a software engineering manager with Motorola, was a classically trained project manager and a Project Management Professional (PMP). However, despite having a traditional background in project management, Doris’s approach has always been about supporting and enabling her teams. Because of that, she was able to easily move from project manager to ScrumMaster. She writes of how her job has changed with Scrum. Over the years in managing agile development I have learned not to sweat the task details. As a traditional project manager, I always needed to stay on top of who was doing which tasks, what were their dependencies, and would they be done on time. I spent countless number of hours just asking these questions to get the answers in attempt to meet the scope/schedule/budget/ quality constraints and reporting upwards on the progress (sometimes using earned value). In an agile environment I had to learn to trust the team members that they would identify and do the tasks necessary to complete the scope for each sprint. It was hard letting go at first, but I quickly learned that the team could do this. I now spend the majority of my time supporting the team members by addressing impediments that they raise and keeping external noise from diverting their focus.
Why the Title Change? If it’s possible for a project manager to become a team’s ScrumMaster or product owner, why do we need to change the person’s title? Let’s consider the term
Download from www.wowebook.com
142
Chapter 8
Changed Roles
ScrumMaster. Years ago, when I first started running Scrum projects, the term ScrumMaster didn’t exist, and it never dawned on me to call the role anything but project manager. This worked well enough. But, I was hiring new individuals into these roles; I was clear with these new hires about my expectations for how they’d interact with the team. I avoided domineering, command-and-control-style individuals. Also, these new project managers reported to me, which allowed me a lot of influence over how they interacted with their teams. Calling them project managers worked fine. As our company continued to succeed and grow, we began to acquire other companies. In those companies I would inherit project managers who sometimes did have very traditional mindsets about the role of the project manager. I was confronted with helping them shift that mindset to one more compatible with agile development. I found this much harder than just hiring project managers with a collaborative approach suitable to self-organizing teams. Years later in a discussion with Ken Schwaber, he helped me understand why transitioning existing project managers had been more difficult than I had anticipated. Schwaber informed me that by allowing the project managers to retain their titles, I was allowing them to think that the changes were less allencompassing than they were. He invented the word ScrumMaster in 1997 in part because it would remind everyone that this was not just the project manager role with a few additional responsibilities removed or added. Schwaber told me that “the vocabulary of Scrum is a vocabulary of change. The words are often intentionally ugly—burndown, backlog, ScrumMaster—because they remind us that change is occurring.” Although I recommend it, you do not necessarily need to banish the title project manager. If you or your organization is enamored of it, continue to use it. But be mindful of Ken Schwaber’s advice and my experience that using the old words will slow or prevent the adoption of the new approach. Retaining an old title discourages thinking in the new way. Further, if people are unwilling to relinquish something as insignificant as a job title, they will probably also be unwilling to make the far harder changes necessary to adopt Scrum.
Architects Many architects have worked for years to deserve the august title architect.They are rightfully proud of their knowledge, experience, and ability to propose elegant solutions to technical and business challenges. I find that many of the concerns raised by architects faced with adopting Scrum can be put into these two categories: ●
Will people still implement the architectures I tell them to?
Download from www.wowebook.com
Architects ●
143
How can I ensure we build an architecturally sound product without an up-front architecture phase?
The answer to the first of these concerns depends entirely on the architect in question. Many architects may find that very little about their jobs changes. Solutions recommended by these architects are implemented because other developers respect them and know their advice is likely to be good. For example, if one of my coworkers has a reputation for having made sound architectural decisions in the past, and I observe her making good architectural decisions on this project, I will be inclined to go to her with architectural questions. I’ll do that even if we’re a self-organizing team and no one is forcing me to get a second opinion on my decisions. The second concern is largely unfounded. As we will see in the section, “Work Together Throughout the Sprint,” of Chapter 14, “Sprints,” and in the section, “Design: Intentional yet Emergent,” of Chapter 9, “Technical Practices,” the architectural needs of a product are used in conjunction with business objectives to drive the prioritization of the product backlog.This allows an architect the ability to focus attention and effort on architectural uncertainties within the application. On an architecturally complicated or risky product, the architect will need to work closely with the product owner to educate the product owner about the architectural implications of items on the product backlog. All product owners are aware that they need to listen to the marketplace, users, or customers for input into product decisions. Good product owners also know to solicit the opinion of the technical team about the priorities. Although the ultimate decision is the product owner’s, good product owners consider all viewpoints when prioritizing work. Andrew Johnston of AgileArchitect.org has written, “In an agile development the architect has the main responsibility to consider change and complexity while the other developers focus on the next delivery” (2009). Judicious sequencing of work into sprints can help a team gain key knowledge sooner, avoid or discover risks with sufficient time to react, and minimize the total cost of development.
The Non-Coding Architect Non-coding architects are likely to see the biggest shift in what they do. These are the ones that Scott Ambler calls “ivory tower architects” (2008b). The mere presence of a non-coding architect is a well-known harbinger of trouble; Scrum projects are well rid of them. Some non-coding architects will look on Scrum as a chance to again do some of the programming they hopefully enjoyed earlier in their careers.These architects will be welcome contributors to Scrum teams.They will be respected for the depth of their knowledge and experience and their ability to roll up their sleeves and get into the code. Beware of the architect who resists a revised role that requires hands-on contributions to projects. In many cases these non-coding architects took their
Download from www.wowebook.com
144
Chapter 8
Changed Roles
careers in that direction as a way to get out of hands-on programming. One such architect, Tom, confounded me when I first met him. He talked a good game and sounded knowledgeable about all the right technologies. However, he was the first developer I had ever met who enjoyed meetings. He was always looking to schedule more meetings. As I got to know Tom better, I realized that his technical knowledge was very superficial—he wasn’t as good as I had thought. I soon realized why he liked the team to spend so much time in meetings: in an unnecessary meeting all attendees are equally productive and valuable. It’s when team members return to their desks and start doing real work that the often dramatic differences between developers start to show up. Tom’s preference for unnecessary meetings was a self-preservation technique—the more time the team spent in meetings, the longer it would take everyone to realize that Tom wasn’t very good. To be a valued contributor, someone with a business card reading architect does not need to code full-time. In fact, it’s quite possible for a sprint or two to pass without an architect writing any production code. The distinction I want to draw is between architects who can still code and those whose coding skills are behind them. Software architect Johannes Brodwall says that “the biggest changes to my role as an architect have been that, formally, the architect no longer has the power to dictate technical solutions. Instead, an architect has to be an advisor and a facilitator. As an advisor, I better still be able to do the job I’m giving advice about.”
Functional Managers Functional managers, such as development managers, QA directors, and so on, who are used to working in a matrixed manner will continue to work that way on Scrum projects. A typical functional manager will likely experience some diminution in power after the transition, but this will depend greatly on how the role was defined in the organization prior to transitioning. Functional managers usually retain the job of assigning individuals to projects. They will be expected to continue to make these decisions based on the competing needs of all projects, project locations, developmental needs and career aspirations of individuals, and so on. In some organizations, functional managers are accustomed to going beyond assigning individuals to projects and have been involved in the assignment of tasks to individuals within their groups. They will no longer do this after transitioning to Scrum. Individual selection of work is a fundamental aspect of how the members of a team self-organize and must be left to the team.
Download from www.wowebook.com
Functional Managers
145
The leadership Role of the Functional Manager Functional managers have always been leaders. Broad leadership trends over the years have affected individual style. While I was growing up, for example, my father managed Sears stores. This was back in the era when Sears was the world’s largest retailer. My father’s management style was very much top-down. He would establish goals, quotas, and other measurements; communicate them to store employees; and then measure each employee against those targets.This was also an era when prevailing wisdom was that a good manager could manage anything. My father should presumably have been able to take his experience managing a retail store and manage a bank or manufacturing operation with equal skill. My father was operating in the bottom-left quadrant of Figure 8.1, which is from The Toyota Way by Jeffrey Liker (2003, 181).
Bottom-Up
Group Facilitator “You’re empowered!”
“Here is our purpose and direction — I will guide and coach.”
Bureaucratic Manager
Task Manager
“Follow the rules!”
General management expertise
Different types of functional managers as determined by type of expertise and management style. Adapted from The Toyota Way, Jeffrey Liker, copyright The McGrawHill Companies, Inc.
Builder of Learning Organizations
Top-Down
Management Style
FiguRe 8.1
“Here is what to do and how to do it!”
In-depth understanding of work
Knowledge
A different type of manager, or perhaps one working in a different era than my father, might have applied her general management skills in a bottom-up manner. This manager would be in the top left of Figure 8.1. In the bottom right of that figure we see a manager with a deep understanding of the work and a topdown style. This manager—who is quite common on software projects—tells his team both what to do and how to do it. In an organization using Scrum, functional managers should operate in the top-right quadrant, where they combine a deep understanding of the work with a bottom-up style. A functional manager is responsible for providing guidance
Download from www.wowebook.com
146
SEE ALSO Improvement communities were introduced in Chapter 4, “Iterating Toward Agility.” Communities of practice are more generally described in Chapter 17.
Chapter 8
Changed Roles
and coaching to members of the group. ScrumMasters and product owners also provide guidance and coaching, but their views are limited to a single project or product. A functional manager will have a broader perspective, including the ability to establish cross-project standards and set expectations for quality, maintainability, reusability, and many of the other -ilities or nonfunctional requirements. Functional managers also retain responsibility for developing the people in their groups. Securing the budget and time to send them to conferences, challenging them with appropriate projects, and encouraging them to join or form communities of practice are all part of the functional manager’s role.
Personnel Responsibilities
SEE ALSO Periodic performance reviews are discussed in Chapter 20, “Human Resources, Facilities, and the PMO.”
In most organizations, functional managers will retain responsibility for writing periodic reviews of the personnel in their departments. Although the functional manager has hopefully always incorporated input from each employee’s coworkers and customers into the review, the need to do so is greater in a Scrum environment because the employee will likely be working less closely with the functional manager on a day-to-day basis. In many organizations, functional managers also retain responsibility for making hiring and firing decisions. Neither the ScrumMaster nor the product owner has this level of authority over individuals on the product development teams. After the organization adopts Scrum, most functional managers find themselves with more time available than they had before. This time is most often used to stay in closer touch with their direct reports, to know more about each project the group’s employees are working on (by attending various sprint reviews and so on), and to pay more attention to cross-project standards and future directions.
Programmers
SEE ALSO The subject of specialists is considered in detail in Chapter 11, “Teamwork.”
What do programmers do on a Scrum team? They program. They test. They analyze. They design. They do anything necessary to help the team complete the work committed to for a sprint. Although it is OK to have specialists on a Scrum team, specialists need to be willing to work outside their specialties whenever needed for the greater good of the team. There are exceptions. A game development project may, for example, benefit from specialists in artificial intelligence programming. Because of the highly specialized nature of their product, these specialists may do nothing outside their specialty. The majority of programmers on a Scrum team, however, should be willing to contribute in any number of ways to optimize the throughput of the overall team. This means they will test when necessary, sometimes program in a nonpreferred language, and so on.
Download from www.wowebook.com
Programmers
147
One of the most striking changes for programmers on a Scrum team is that they can no longer sit in their cubicles and wait to be told exactly what to program. They need to become active participants in understanding product requirements. Surprisingly, there are many people who simply want to be told what to work on. I’ve heard this expressed as “if they tell me what to work on and I do it, then I can’t be fired.” Programmers on a Scrum team—like all others on the team—are expected to share in the responsibility for the overall success of the product. When this responsibility is fully felt, it is easier to do the things that go beyond one’s normal job description. Programmers will also be expected to talk to customers and users.The amount of this can be adjusted up or down based on the programmer, the organization, the strengths of other team members, and the nature of the project. Programmers do not need to develop the personalities of gregarious, glad-handing salespeople. But they do need to be comfortable occasionally talking to a user or customer, even if it’s just over the phone. Similarly, programmers can expect to spend more time interacting with their coworkers. A programmer may not be allowed to come in at 11 and clamp headphones on until quietly leaving at 7. Instead, programmers may be expected to sit See AlSo in a group space, engage in discussions, help others with problems, and participate Pair programming, which entails two proin pair programming. grammers sharing one These changes can be quite unsettling for the many programmers (includ- computer, is discussed ing myself) who got into this field because we thought we could sit alone in more in Chapter 9. our cubicles all day. Prior to my first programming job, I worked in a six-foot by four-foot totally enclosed dark room developing photos all day. I would pop out for regularly scheduled breaks and lunch; otherwise I was alone in the dark all day and loved it. Moving to the lighted world of cubicles was a big change. Moving from quiet cubicles to an energetic, talkative culture is an even bigger change. Programmers on a Scrum team will be expected to make this transition. Fortunately, though, the change isn’t that hard for most of us. We may like to be alone, but we find participating in structured conversations (as in the meetings and decision-making discussions on a Scrum project) much easier than unstructured conversations as at a cocktail party. Beyond the communication and interaction changes, programmers will almost certainly experience changes in how they do their work. Many of the technical practices described in Chapter 9 will be new to them. The team may not choose to adopt all of these practices at first (or ever in some cases), but I suggest all be considered and tried.
Download from www.wowebook.com
148
Chapter 8
Changed Roles
Database Administrators Data professionals, whether they go by the title of database administrators, database engineers, or something else, can be among the most resistant to adopting Scrum. Much of what the preceding section said about programmers will also be true about database administrators. Additionally, data professionals will be faced with learning how to do incrementally what has traditionally been viewed as a part of a project’s up-front work. Standard advice in database design has been to do a complete analysis of the system’s needs, create a logical or conceptual database design, and then map the concepts to the constraints of a real-world database during physical database design. Success at this series of steps is predicated on a full and accurate analysis up front. The traditional data professional’s view was best summed up to me by a fellow traveler on a plane from Chicago to Sacramento. He was a vice president of database development for a relatively large healthcare company. His view on the world was “applications change; data is forever.” This type of thinking leads to an intense focus on doing a complete analysis up front. This is nice in theory, but while we’re taking the time to do that complete analysis, the world is continuing to evolve. Users’ needs are changing. Competitors are releasing their products. Databases need to evolve to support the evolving applications built on them. In Chapter 14, I am going to make the point that user experience design, architecture, and database design are all special cases of the same challenge: working incrementally on something that is thought about holistically. Much of a DBA’s day-to-day work will not change significantly, but how the DBA approaches and schedules that work will change dramatically and will be discussed in the “Work Together Throughout the Sprint” section of that chapter.
Testers For years the common approach to testing has been based on Philip Crosby’s definition of quality: conformance to requirements (1979, 16). If quality is conformance to requirements, then those requirements better be written down. This has led many testers to an overzealous pursuit of a perfect requirements document against which they can confirm that the system conforms. However, as nice as conformance to requirements may be, conformance to users’ needs is even better. In using Scrum we acknowledge that it is impossible to perfectly predict all user needs. Just as programmers can no longer say, “Hand me the perfect spec; then go away while I make the system do exactly what you requested,” testers cannot say, “Hand me the perfect requirements document and I’ll make sure the system
Download from www.wowebook.com
Testers
149
does everything in it.” Each of these attitudes (and they’ve been prevalent ones in traditionally managed projects) leads to an abdication of responsibility. When statements like these are voiced, the programmer or tester who says them is relinquishing accountability for the ultimate success of the project. “Just tell me what to do and I’ll do it,” each is saying. Instead, each needs to be thinking about the product and asking questions about each feature and how it adds to (or detracts SEE ALSO from) the overall product. Shifting from writing Because Scrum teams shift focus during requirements gathering from writing about requirements to about requirements to talking about them, conversations with the product owner talking about them is covered in the section become the tester’s primary way of finding out how a new feature should behave. “Shift from Documents A tester is likely to talk with the product owner about how a feature should work, to Discussions” in how quickly it should perform, what acceptance criteria must be passed, and so Chapter 13. on. Testers are not limited to acquiring this information solely from the product owners. As appropriate, testers should also talk with users, customers, and other stakeholders. As with programmers, working in such an interactive environment can be uncomfortable for testers who are transitioning to Scrum. Many testers, like their colleagues, entered software development with the expectation that they could sit in a cubicle with little human interaction on a daily basis. Not anymore.Testers on a Scrum team will need to become accustomed to more frequent and meaningful conversations with their coworkers and, in many cases, people outside the team. Along with giving up on the myth that a perfect specification can be written in advance, one of the biggest changes facing testers is learning how to work iteratively. Conceptually this shouldn’t be a hard thing to do. If we think of each sprint as its own project, then the testing for each project/sprint is done within that sprint. It’s not as simple though as proclaiming that the last week of each sprint shall be reserved for testing. This doesn’t work and instead creates miniature waterfalls inside each sprint. During the first few sprints, testers will face an immense challenge. During that time the programmers are also learning how to SEE ALSO work iteratively and probably won’t be good at it either. The team will probably For advice on how overcommit to what can be done in a sprint, and the programmers will probably testers, programmers, others should not have any of the planned features fully coded until very near the end of the and work together, see the sprint. So they will attempt to hand code to testers on the eighteenth day of a 20- section “Do a Little Bit day sprint. After individuals in these roles learn how to work in an agile manner, of Everything All the Time” in Chapter 11. these eleventh-hour handoffs will disappear. An increased emphasis on test automation becomes a hallmark of Scrum SEE ALSO teams. Even teams that have struggled for years to make progress in automating For why a team may tests find that the short sprints of Scrum make test automation a necessity. Over use more than one test time this reduces the reliance on manual testers: those who read a script, push a automation tool, see “Automate at Different button, and note the results. These testers often find themselves being asked to Levels” in Chapter 16, learn one or more of the test automation tools used by the team. While some test “Quality.”
Download from www.wowebook.com
150
Chapter 8
Changed Roles
automation tools rely on what might as well be called programming to create the tests, not all do. I have met only a handful of manual testers who have been unable to transition to making significant contributions to their teams’ test automation efforts. On the other hand, I’ve met many who are afraid of this change. Time, practice, training, and pairing (including with a programmer) should be sufficient to overcome the fears. Lisa Crispin, coauthor with Janet Gregory of the book Agile Testing, recalls that when she shifted to working on an agile team, the first thing she noticed was that she needed to be proactive. Don’t sit and wait for things to come to you. Be proactive! We testers can’t wait for testing tasks to come to us. We have to get up and get involved and figure out what to do. Collaborating with programmers is new to a lot of testers. (Although it wasn’t to me, I always elbowed my way in at the start of every project no matter what our process was.) Collaborating with customers is also new to a lot of testers. It’s way out of the comfort zone for a lot of people. Programmers are busy people and kind of scary, sometimes. When I was the only tester on a team of eight programmers, even though most of them were guys I had worked with for years at another company, it took a lot of courage to ask for help.
oBJeCtIoN
“If I work too closely with others on the team, I will develop ‘programmer eyes,’ causing me to see everything from their perspective, rather than from the viewpoint of a tester.” It’s hard to see how working more closely with programmers will cause testers to lose so much perspective that they can no longer test the software. Database professionals have worked closely with programmers for years without becoming so contaminated. For decades, testers have advocated doing both white-box testing (in which they can see the internals of the system) and black-box testing (in which they cannot). If working with a programmer can lead to developing “programmer eyes,” it seems logical to believe that a tester who has done white-box testing would similarly lose perspective and not be able to do black-box testing. Fortunately, this isn’t the case.
Though many of the changes brought by Scrum will be uncomfortable at first, most testers will enjoy their new ways of working after getting used to them. Jyri Partanen is a QA manager with Sulake, developers of Habbo, a virtual world
Download from www.wowebook.com
User Experience Designers
151
averaging over eight million unique visitors each month. Partanen describes the transition required of testers. Testing is a profession where old habits tend to last. In the case of transitioning to agile, sticking to the old ways of doing things may lead to a half-hearted implementation of the spirit of agile. Usually the distress the testing engineers have is related to job security and the changes the upcoming agile transition may bring to their day-to-day tasks. This is, however, an unnecessary concern. Based on my own experience and the experience of others who actually have completed the transition to agile with QA personnel, I can say with confidence that the change has been without a doubt a smart move. Testing engineers in agile teams have more influence in the development process and, what’s even more important, on the end product.
user experience Designers User Experience Designers (UEDs) often have a legitimate concern with adopting Scrum. Although they are accustomed to working iteratively, they prefer to run their iterations in advance of the rest of the project. On a Scrum project, however, we don’t want to do all of the UED work before beginning other development activities. My favorite descriptions of how agile designers work have come out of Autodesk in Toronto. Lynn Miller (2005) and Desirée Sy (2007) have written about the approach they have used to integrate design into an agile process. I have worked on dozens of projects on which the teams and designers embraced their advice. According to Miller and Sy, there should be two parallel tracks of work on the project: one for development and one for interaction design. Figure 8.2 depicts these two tracks and the interaction between them. The essential idea here is that UED work always precedes development work by at least one sprint. UEDs are given a headstart on the project through a combination of an initial sprint zero and a focus in sprint one on features with few or no user interface implications. The approach shown here can work well but brings with it the risk that UEDs view themselves as a separate team. Lynn Miller sketched the first version of this diagram and agrees that it must not be interpreted to imply that there are separate teams. Whenever I have taught this concept I have always stressed that the designers should not think of themselves as a separate team
Download from www.wowebook.com
152
Chapter 8
Changed Roles
and that tight and frequent communication is essential to make the concept work. It has always been a failing of the diagram that it seems to suggest separation when that never was my intent. FiguRe 8.2 UED and development can occur in parallel tracks. (Adapted courtesy Sprint 0 of Lynn Miller.)
Sprint 1
Sprint 2
Sprint 3
Implement high dev cost low UI cost features
Implement designs
Implement designs
Plan & gather customer data
De Co
•Design for sprint 2 •Gather customer data for sprint 3
sig
n
de
De Co
sig
n
Dev Track
de
•Test sprint 1 code •Test sprint 2 code •Design for sprint 3 •Design for sprint 4 UED Track •Gather customer •Gather customer Data data for sprint 4 Data data for sprint 5
It is essential that UEDs view themselves as part of the team. The idea of cross-functional teams is fundamental to Scrum; the team needs to include everyone necessary to go from idea to implementation. What would prevent a testing group from preparing its own version of Figure 8.2 showing parallel tracks of programming and testing sprints? If I were to meet a UED in the hallway of your company and ask, “What do you do?” I might get a response like this: “I’m a user experience designer. I work one sprint in advance of the developers. My job is to make sure that when they start a sprint I can give them a design for what they’ll develop in that sprint.” This answer corresponds with Figure 8.2, but it’s not an answer I like. Instead I’d prefer to hear, “I’m a user experience designer. I’m on the development team, and my primary job is to make sure we finish whatever work we commit to for the sprint. But that doesn’t take up all my time, so I spend a good amount of it looking ahead at what we’re going to build in the next sprint or two. I then gather data, mock up designs, and do whatever I can so that when we start on a feature in a future sprint, we’re able to finish it in that sprint.” Both of these fictitious quotes describe exactly the same work. In both cases the UEDs are working with the team during the sprint to resolve issues about that sprint, but they are also looking ahead. However, the two different answers present different mindsets about the work. First and foremost, I want UEDs to feel a part of the team and that their top priority is delivering whatever is committed for the current sprint. Beyond that, their job is to look ahead in exactly the same way
Download from www.wowebook.com
Additional Reading
everyone expects a product owner to be looking ahead at what competitors are doing, what users will want next, and so on. I’m not alone in thinking that an agile mindset is critical for UEDs in making the transition to Scrum. Well-respected usability expert Jakob Nielsen concurs. For user experience practitioners who support agile teams, the main change is in mindset. Having good, general user experience knowledge will help you understand how to change traditional design and evaluation methods to meet your agile team’s different focus. Ultimately, however, you must both believe in yourself and embrace agile development concepts if you want to succeed. If you’re prepared to change your practices and take on the responsibility, there are great opportunities to improve your effectiveness and your impact on the teams you support. (2008)
153
SEE ALSO In Chapter 14 we will examine in much greater detail how user experience designers are able to overlap their work effectively with the work of others on the team.
Three Common Themes In this chapter we considered the changed roles of analysts, project managers, architects, functional managers, programmers, database administrators, testers, and user experience designers. In doing so, three major themes reasserted themselves: ●
● ●
Work incrementally. Always strive to produce a potentially shippable product increment within the sprint. Work iteratively. Functionality can be revisited in subsequent sprints. Work beyond your specialty. To create something potentially shippable by the end of the sprint, individuals need to be willing to work outside their specialties occasionally.
As you go forward, you’ll find it helpful to keep these themes in mind as general heuristics about how individuals should work on a Scrum team.
Additional Reading Ambler, Scott. n. d. Agile Data Home Page.http://www.agiledata.org. A useful website that collects some of prolific author Scott Ambler’s writings on agile development in data-intensive environments. Crispin, Lisa, and Janet Gregory. 2009. Agile testing: A practical guide for testers and agile teams. Addison-Wesley Professional. A comprehensive guide to testing on an agile project. The book begins with ten principles for what agile testing is and then describes the organizational changes that will be felt by a testing or QA group. The core of the book is a four-quadrant view for describing all testing, which many teams have found useful.
Download from www.wowebook.com
154
Chapter 8
Changed Roles
Highsmith, Jim. 2009. Agile project management: Creating innovative products. 2nd ed. Addison-Wesley Professional. The most popular book on agile project management. The second edition adds chapters on release planning, scaling, governance, and measure to an already complete table of contents. Jeffries, Ron. 2004. Extreme programming adventures in C#. Microsoft Press. An intriguing book in which we read along as Ron Jeffries teaches himself C# by pair programming with Chet Hendrickson. The book isn’t intended specifically to teach C# programming. Rather, it is an excellent introduction to the type of fastfeedback programming practiced on Scrum teams. Johnston, Andrew. 2009. The role of the agile architect, June 20. Content from Agile Architect website. http://www.agilearchitect.org/agile/role.htm. This entire site is dedicated to information for agile architects. I found this to be the most useful article on the site. It describes the five key objectives and seven golden rules of the agile architect. Krug, Steve. 2005. Don’t make me think: A common sense approach to web usability. 2nd ed. New Riders Press. This is the best of the books to cover a discount approach to usability. Experienced user experience designers may find it too simplistic and that it shortcuts too much research, but many teams have found it helpful. Marick, Brian. 2007. Everyday scripting with Ruby: For teams, testers, and you. Pragmatic Bookshelf. This excellent book is aimed at testers who need to learn basic scripting skills using Ruby, probably as part of working on an agile team. However, the book will appeal to anyone who needs a good introductory book on Ruby. Sliger, Michele, and Stacia Broderick. 2008. The software project manager’s bridge to agility. Addison-Wesley Professional. Sliger and Broderick are both Scrum trainers as well as Project Management Professionals (PMPs). They have targeted this book directly at PMPs like themselves who are making the switch to Scrum or any agile process. Subramaniam,Venkat, and Andy Hunt. 2006. Practices of an agile developer:Working in the real world. Pragmatic Bookshelf. This short book collects nearly 50 tips aimed at programmers on any agile project. Each tip (such as “Let Design Guide, Not Dictate”) includes a description of the practice and how it should feel when it is being done well.
Download from www.wowebook.com
Chapter
9
Technical Practices
New titles, roles, and responsibilities aren’t the only changes Scrum teams are asked to make. For a Scrum team to be truly successful, it must go beyond adopting the basic, highly visible parts of Scrum and commit to real changes in the way it approaches the actual work of creating a product. I’ve observed teams who work in sprints, conduct good sprint planning and review meetings, never miss a daily Scrum, and do a retrospective at the end of each sprint. They see solid improvements and may be as much as twice as productive as they were before Scrum. But they could do so much better. What these teams are missing—and what stops them from achieving even more dramatic improvements—are changes to their technical practices. Scrum doesn’t prescribe specific engineering practices. To do so would be inconsistent with the underlying philosophy of Scrum: Trust the team to solve the problem. For example, Scrum doesn’t explicitly say you need to test. It doesn’t say you need to write all code in pairs in a test-driven manner. What it does do is require teams to deliver high-quality, potentially shippable code at the end of each sprint. If teams can do this without changing their technical practices, so be it. Most teams, however, discover and adopt new technical practices because it makes meeting their goals so much easier. In this chapter we look at five common practices that were made popular by Extreme Programming and have been adopted by many of the highestperforming Scrum teams. We see how these practices are derived from a quest for technical excellence. Finally, we look at how the technical practices of a Scrum team intentionally guide the emergent design of the software system.
Strive for Technical Excellence Like most kids, when my daughters drew or painted a particularly stunning masterpiece, they would bring it home from school and want it displayed in a place of prominence—namely the refrigerator. One day at work I coded a particularly pleasing use of the strategy pattern in some C++ code. Deciding that the refrigerator door was suitable for displaying anything we’re particularly proud of, 155 Download from www.wowebook.com
156
SEE AlSo For specific recommendations of reading material that will help you learn more about the technical practices themselves, see the “Additional Reading” section at the end of this chapter.
SEE AlSo This cleaning up of the code is called refactoring. It is discussed in detail in the next section of this chapter.
Chapter 9
Technical Practices
onto the fridge it went! Wouldn’t it be nice if we were always so pleased with the quality of our work that we proudly displayed it on the fridge along with our kids’ artwork? Although you probably won’t go as far as taping your code, tests, or database schema on your fridge, producing fridge-worthy work is a goal shared by many Scrum teams. In this section we will look at common technical practices used by Scrum teams to improve the quality of their work: test-driven development, refactoring, collective ownership, continuous integration, and pair programming. While I just referred to these as common practices, the truth is that they are not so common. These practices are well regarded and lead to higher quality, but because they can be hard to put into practice, they are used less often than they should be. Each, however, is a practice that Scrum teams should consider adopting. Because there are many great books and articles available on each of these practices, I will introduce each only briefly and will reserve the bulk of my comments for ways to introduce the practice into your organization and to overcome common objections to it.
Test-Driven Development If you were to look at how programmers write code on a traditional development team, you would find that they typically select a portion of the program to tackle, write the code, attempt to compile it, fix all the compile errors, walk through the code in a debugger, and then repeat.This is summarized in Figure 9.1.This process is very different from a test-driven approach, which is also shown in that figure. A programmer doing test-driven development works in very short cycles of identifying and automating a failing test, writing just enough code to pass that test, and then cleaning the code up in any necessary ways before starting again. This cycle is repeated every few minutes, rather than every few hours.
FigurE 9.1 The microcyclic nature of traditional and test-driven development.
Repeat
Repeat
(a few times a day)
Write code F ix compile errors
Step through code in debugger
Traditional programming
(a few times an hour)
Write a failing automated test Write just enough code to pass the failing test Refactor
Programming when doing test-driven development
Download from www.wowebook.com
Strive for Technical Excellence
157
I find test-driven development (TDD) invaluable. One of the biggest reasons is that it ensures that no untested code makes it into the system. If all code must be written in response to a failing test, then if we do nothing else, we at least achieve full code coverage with TDD.You might think a test-right-after approach would achieve the same result. However, I’ve found that when programmers make a commitment to write their unit tests “right after” they finish implementing a feature, they often do not do so.The pressure to get started programming the next feature can be tremendous. So programmers tend to write tests for only a subset of the new functionality or put testing on a list of things to get to later, and then find that later never comes. It is appropriate to think of TDD as being as much a design practice as a programming practice. After all, the tests a programmer writes and the order in which they are written guide the design and development of a feature. A programmer doesn’t create a list of 50 small unit tests and then randomly choose which to implement first. Instead each test is selected and sequenced so that the uncertainties SEE AlSo of the feature are addressed early. In this way, the selection and implementation of The idea of driving detests does indeed drive the development process, resulting in a design that, at least velopment with tests has also been scaled in part, emerges from the needs of the system. up to what is known as There is some debate about whether TDD leads to more robust or otherwise acceptance test–driven better designs.1 But there is no doubt that TDD is helpful as a practice that helps development, a topic covered in Chapter 16, programmers think through their designs. A design that is hard to test, for example, “Quality.” may indicate poorly structured code. My recommendation is to do TDD for its testing benefits; any potential design improvements it brings are a bonus. “I am working on a complex system. I need to do some architectural work first.”
OBJECTION
Yes, on a complex or large system, you probably do. There is nothing to say that TDD as a micro-level practice cannot be effectively combined with a small amount of up-front architectural thinking. In fact, later in this chapter, the section “Design: Intentional yet Emergent” introduces the idea that being agile is about finding the right balance between anticipation and adaptation. The question of how much, if any, architectural thinking to do up front is best considered with achieving that balance in mind.
1 For an example, see Abby Fichtner’s blog athttp://haxrchick.blogspot.com/2008/07/ tdd-smackdown.html, which includes a link to a video-recorded debate between Jim Coplien and Robert Martin.
Download from www.wowebook.com
158
OBJECTION
Chapter 9
Technical Practices
“Always writing a test first is bound to take longer; I don’t have time to waste.” There is evidence that doing TDD takes about 15% longer than not doing TDD (George and Williams 2003). But there is also evidence that TDD leads to fewer defects. Two studies at Microsoft found that the number of bugs found went down by 24% and 38% with the use of TDD (Sanchez, Williams, and Maximilien 2007, 6). So, yes, TDD may take longer initially, but the time will come back to the team in the form of reduced bug fixing and maintenance time. ❑
Commit to spending at least one full day in the coming week doing test-driven development. If you’ve never done TDD before, you will likely need to work with another programmer to get the hang of it. Even if your partner doesn’t have TDD experience either, it will be easier to learn together.
❑
Getting comfortable with how to write a failing test before writing the implementation can be difficult. It’s a very different way of working. One way to gain a better understanding of it is to try gang programming. Gather four to eight programmers in a conference room equipped with a laptop and projector. Pick a programmer to start coding while everyone else looks at the projected source code. Find one failing test you can write, and then have the programmer write the code that makes the test pass. After 15 minutes or so, pass the laptop to another programmer. Continue writing code and passing the laptop until the task is complete.
❑
If trying TDD on your full application is too difficult right now, find an ancillary project you can try it on. How about that data conversion program everyone has been putting off? Or the stand-alone program one of the system administrators asked for last month?
ThINgs TO Try NOw
refactoring Consider the classic definition offered by Fred Brooks in The Mythical Man Month of what happens as a software system is modified over time. All repairs tend to destroy the structure, to increase the entropy and disorder of the system. Less and less effort is spent on fixing original design flaws; more and more is spent on fixing flaws introduced by earlier fixes. As time passes, the system becomes less and less well-ordered. Sooner or later the fixing ceases to gain any ground. Each forward step is matched by a backward one.
Download from www.wowebook.com
Strive for Technical Excellence
159
Although in principle usable forever, the system has worn out as a base for progress. (1995) Fortunately, since 1975 when Brooks first wrote this, our industry has learned ways to modify systems such that the system does not decay further with each modification. The ability to modify without introducing decay is essential to Scrum because Scrum teams build products incrementally. As Ron Jeffries says, “In agile, the design simply must start simple and grow up. The way to do this is refactoring.” Refactoring refers to changing the structure but not the behavior of code. Let me give you an example. Suppose a programmer has two methods that each contain three identical statements. These three common statements can be extracted from both methods and put into one new method that is called from both of the old locations. This refactoring (formally known as extract method) has slightly improved the readability and maintainability of the program because it is now more obvious that some code is reused and the duplicated code has been moved to a single place.The structure of the code has been changed while its behavior has not. Refactoring is not only crucial to the success of TDD, but it also helps prevent code rot. Code rot is the typical syndrome in which a product is released, its code is allowed to decay for a few years, and then an entire rewrite is needed. By constantly refactoring and fixing small problems before they become big problems, we can keep our applications rot free. Robert C. Martin calls this the Boy Scout Rule. The Boy Scouts of America have a simple rule that we can apply to our profession: Leave the campground cleaner than you found it. If we all checked-in our code a little cleaner than when we checked it out, the code simply could not rot. (2008, 14) “If they wrote it right the first time, they wouldn’t need to refactor now.” This is kind of like saying, “If Toyota built better cars, they wouldn’t need oil changes, new tires, or any maintenance ever.” Applications will need maintenance; refactoring is choosing to do it a little at a time when doing so is cheap. Most of the managers or product owners I’ve met who take a “you aren’t allowed to refactor” stance do so because teams have abused the ability to refactor in the past. A typical example is the team that reserves the last three days of every tenday sprint for refactoring. Another is the team that tells its product owner, “No, we can’t do that important feature this sprint because we need to refactor what we wrote the last sprint.” If the whole team needs three days to refactor every sprint, that’s a sign of different troubles. If the team has planned refactorings that are so large they have to turn down features the product owner would like included, the refactoring probably belongs on the product backlog itself.
OBJECTION
Download from www.wowebook.com
160
Chapter 9
Technical Practices
❑
Start a refactoring backlog of all the things you want to clean up. If the team is collocated, simply write it on a big sheet of paper hanging somewhere. If not, use the electronic equivalent. You want the list to be as informal as possible. The goal is to fix all the issues and then destroy the list. Institutionalizing the refactoring list in a custom-built database with a custom web client, RSS feeds, and iPhone support will encourage the list to remain forever.
❑
Learn the refactorings that can be performed automatically by your integrated development environment.
❑
When a refactoring opportunity is identified, have team members write it on an index card. Post the cards in a small, delineated area on a wall in the team room. As the area fills, feel mounting pressure to complete one or more refactoring.
❑
At the end of your next two-hour-long programming session, spend 20 or 30 minutes cleaning up something you noticed as you were touching or looking at existing code.
❑
During your next retrospective, facilitate a discussion about refactoring with your teammates, including the product owner. At what threshold should refactoring switch from a personal decision to a whole-team decision? Clearly, I can rename a poorly named variable I come across without a team discussion. What if the developers come across a two-day change; can they just make it, or does the product owner need to approve the effort first?
ThINgs TO Try NOw
Collective ownership Collective ownership refers to all developers feeling ownership over all artifacts of the development process, but especially of the code and automated tests. Because of the fast pace of a Scrum project, the team needs to avoid the trap of saying, “That’s Ted’s code.We can’t touch it.” Collective ownership encourages each team member to feel responsible for all parts of the program so that any programmer can work on any module of the program. When modifying a module, the programmer then shares responsibility for its quality with the module’s initial writer. Collective ownership is not intended to cause a free-for-all in the coding. Programmers will still tend to have certain areas they specialize in and prefer to work in, but everyone on the team shares the following responsibilities: ●
●
Ensure that no developer becomes so specialized he can contribute only in one area. Make certain that no area becomes so intricate that it is understood and worked upon by only one developer.
A natural benefit of fostering a feeling of collective ownership is that it encourages developers to learn new parts of the system. In doing so they generally Download from www.wowebook.com
Strive for Technical Excellence
161
also learn new ways of doing things. Good ideas used in one part of the application are more quickly propagated to other areas as programmers moving in and out of parts of the application carry the ideas like pollen. “It’s my code; I don’t want to have to fix anyone else’s bugs.” I don’t blame you, but keep in mind they are also fixing your bugs. In fact, from my experience a team practicing collective ownership will write cleaner code (and presumably therefore have fewer bugs). No one wants to look bad in front of coworkers. If some code is “mine” and no one will see it, I might be tempted to get a little sloppy; not so if anyone can see my code at any time. For proof of this look no further than your guest bathroom. Which do you keep cleaner: the bathroom only you use or the one that visitors are likely to see?
OBJECTION
“I don’t want anyone else looking at my code and making judgments about my skills, character, upbringing, and so on.” This is a natural fear. The best way over this fear is to write better code. If you always did your best to write high-quality code, any judgments others made would be positive. If you’re not confident in your ability to write high-quality code, pair as often as you can with other programmers as a way of improving. “Development is faster if each person owns one part of the system.” This depends entirely on the time frame over which we are measuring. If you and I are building a throwaway system over the next two weeks, it will indeed most likely be faster for each of us to own one part of the application. If, however, we are part of a much larger effort and are going to have to maintain the system for the long term, the learning, cross-training, and other benefits of collective ownership weigh heavily in its favor.
❑
❑
Pretend that the owner of any critical area is away on vacation and nearly impossible to reach. For a couple of sprints, make the deliberate decision that the “obvious person” is never allowed to take on tasks related to that area of expertise. If the area expert is needed, that expert is available by phone only—literally call the person who is sitting two cubicles away.
ThINgs TO Try NOw
The next time you work in code that is difficult to work with, fix it—even if it was written by someone else. If you feel that this is overstepping your authority, ask the original programmer to work with you in making the code easier to use.
Download from www.wowebook.com
162
Chapter 9
Technical Practices
Continuous integration Creating an official nightly build of a product has been known as an industry best practice since at least the early 1990s. Well, if a nightly build is a good idea, building a product continuously is an even better one. Continuous integration refers to integrating new or changed code into an application as soon as possible and then testing the application to make sure that nothing has been broken. Rather than checking in code perhaps every few days or even every few weeks, each programmer on a Scrum team running continuous integration is expected to check in code a few times each day—and to run a suite of regression tests over the entire application. Continuous integration is usually achieved with the help of a tool or script that notices when code has been checked into the version control system. Cruise Control was the first product to gain popularity for automating continuous integration. It could build a product, run as many tests as desired against it, and could then automatically send a notification to the developer who broke the build (or to the entire team). Cruise Control could also send build results to additional feedback devices such as lava lamps, ambient orbs, spare monitors, LED displays, and more. Some teams opt for a manual approach, in which developers initiate the build and test for each check-in. I strongly recommend against this. Although it is possible to be successful with a manual approach to continuous integration, my experience is that developers will occasionally skip the build and test. It is just too tempting to occasionally think, “I changed only two lines and it worked on my machine.” It’s also tempting to forgo the build and test when checking in code after your planned quitting time for the day: “Yikes, it’s almost six o’clock,” a developer may think. “I’m sure this works and I don’t want to wait 15 minutes for the tests to finish….” Given the ease with which a continuous integration tool can be configured, it is almost always one of the first things I coach teams to do. For most developers, the first exposure to automated continuous integration is eye-opening. I know it was for me. I’d become very accustomed to the benefits of a nightly build but had somehow never made the mental leap that if once a day is good, many times a day would be better. After working in a continuously integrated environment for a day, I was hooked. Not only could we eliminate all risk of big integration issues at the end of a project, but also the entire development team would be receiving near-real-time feedback on the status of the product.
Download from www.wowebook.com
Strive for Technical Excellence “Maintaining a build server and all those tests takes time away from other work.”
163
OBJECTION
A Scrum team will require a suitable automated testing environment regardless of whether it also does continuous integration. So, the only additional overhead is that of setting up and maintaining the build server environment. For most applications this investment will be paid back within the first month by the time saved on integration issues. “Our system is too complex; it takes hours to run a full integration test—we can’t build continuously.” These days it is not uncommon to encounter a Scrum team with a test suite that takes hours to run. The solution is normally to partition the test suite rather than abandon the idea of continuous integration. Stephen Marsh and Stelios Pantazopoulos worked on the TransCanada pipeline project and did exactly this. Several months into the project it became evident that running the full regression test in under fifteen minutes was not possible. As a result the regression test was split into two: a smoke test and a full test. The first ran after every check-in and included all test scripts from the current delivery milestone [sprint] and a subset of scripts from past milestones. The second ran once an hour and included all test scripts from all milestones. The first proved to be complete enough the majority of the time. Only on rare occasions did the second one fail. (2008, 241) ❑
An official nightly build is a must for any Scrum team. Getting at least this much in place should be one of the first things you do if you don’t have it already. The effort to get a nightly build in place will be paid back within a month at the most, so there’s no excuse to be without one. Plan this into your next sprint.
ThINgs TO Try NOw
❑
If you already have a nightly build, take the next step and start building continuously.
❑
If you have a continuous build, but no tests run as part of it, add some. Chapter 16 introduces the test automation pyramid. Getting the first test of each type from this pyramid is a hurdle. But after the first test has been integrated, the rest come much more easily.
Download from www.wowebook.com
164
Chapter 9
Technical Practices
Pair Programming Pair programming is the practice of having two developers work together to write code. It originated from the idea that if occasional code inspections are good, constant code inspections are better. Many of the practices just described are made easier through the use of pair programming. Learning how to do test-driven development is made easier when working together. Feelings of collective ownership are created when code is produced in pairs. And having the discipline to leave the code cleaner than you found it comes easier when another developer is sitting beside you. Clearly, there are some benefits to pair programming. That’s why I invented it. OK, I didn’t really invent it, but I like to think I did. I did happen across it out of true necessity, which is, after all, the mother of invention. In 1986 I was hired by Andersen Consulting in its Los Angeles office. On my first day on the job I completed a skills survey. I marked myself as “proficient” with the C programming language, even though I was very much a beginner at the language. But, I reasoned, I’m studying it every night after work, and I will be proficient by the time they read this skills survey. Unfortunately for me, they read the survey the next day. And on the day after that I was on a plane from Los Angeles to the New York office to a project that desperately needed C programmers. After arriving in New York, I met another programmer who had also been transferred because he knew C. I knew I couldn’t deceive him, so I came clean and confessed my exaggeration on the skills survey. “Ugh,” he said, “I lied, too.” Our solution was that we would work together—pair programming, although we didn’t call it that. We figured that between us we were as good as one “proficient” C programmer. And, we reasoned, if we worked together on everything, they wouldn’t know which of us to fire. It worked like a dream. He and I worked together for much of the next eight years at three different companies, pairing as much as possible, especially on anything difficult. We wrote some amazing and incredibly complex products, always with low defect rates.We also felt that even though there were two heads for every pair of hands on the keyboard, we were highly productive when working this way. Since those early, positive experiences with pair programming, I’ve been hooked. I knew it was a good way to write code. On the other hand, many of us in this industry (myself included) were first attracted to this work because we could sit in a cubicle with our Sony Walkman playing (yes, it was that long ago) and not have to talk with anyone all day. Even now, there are days when I enjoy nothing more than listening to some loud music on my headphones while code is flowing from my fingers as fast as I can type. Because I still relish those days, I have a hard time ever mandating to a team that they must do pair programming 100% of the time.
Download from www.wowebook.com
Strive for Technical Excellence
165
Fortunately, most teams have realized that the vast majority of the benefits of pairing can be achieved even when it is not done all day, every day. So, when coaching teams, I always push them to adopt pair programming on a part-time basis; use it for the riskiest parts of the application. I encourage teams to find the guidelines that help them pair enough, while stressing that enough is somewhere greater than 0%, but also acknowledging that I can understand the reasons they may have for wanting it to be less than 100%. There are many advantages to pair programming, even for teams who do it less than 100% of the time. Although most studies show a slight increase in the total number of person-hours used when pairing, this is offset by a decrease in the total duration of the effort. That is, while pairing takes more person-hours, fewer hours pass on the clock (Dybå et. al 2007). Although projects are always under financial pressure, the overriding concern is not so much person-hours as time to market. Pair programming has also been shown to improve quality. In a survey of studies, Dybå and colleagues found that each study showed an improvement in quality with pair programming. Additionally, pair programming facilitates knowledge transfer and is an ideal way to bring new developers up to speed on the application. It is also an effective practice for working in uncharted territory or solving difficult problems in known parts of the system. “It costs more; I don’t want to pay two programmers to do the job of one.”
OBJECTION
Pair programming will cost more in the short term. However, that additional initial cost may very likely be paid back with shorter schedules and with higher quality, leading to lower maintenance costs down the road. Rather than take industry studies as your proof either way, prove this to yourself. Pair on the most difficult modules and see if they have fewer defects and are easier to maintain later, perhaps in comparison to similar modules from other programs done without pair programming. “We’re in a hurry. We can’t have two programmers on one task.” Actually, if you’re in a hurry this is the time you need pair programming the most. I’ve already mentioned that pairing leads to shorter project durations (while increasing overall effort, or person-hours). Additionally, there is even some evidence (Williams, Shukla, and Anton 2004) that pairing is an effective way to counter Brooks’ Law (“adding manpower to a late software project makes it later”). In other words, if you have an aggressive deadline or are tempted to add people to a late project, these are ideal times to incorporate pair programming.
Download from www.wowebook.com
166
OBJECTION
Chapter 9
Technical Practices
“When working on a tough problem, I need some quiet time to think through the problem.” Talk with your pairing partner and agree to separate for an hour or whatever you need to think through the problem. When you resume pairing, start by sharing any insights either of you had. ❑
ThINgs TO Try NOw
In your next sprint planning meeting, commit to doing some pairing. Make the commitment explicit by adding tasks to the sprint backlog: “Mike and Bob pair for two hours,” “Mike and Mehta pair for an afternoon,” and so on. This is a good way to at least get comfortable with pairing. It is too easy to put off pairing with a vague commitment to try it sometime in the near future. Having tasks in the sprint backlog, though, acts as a constant nagging reminder, and, as a result, is much more likely to result in action.
Design: intentional yet Emergent Scrum projects do not have an up-front analysis or design phase; all work occurs within the repeated cycle of sprints. This does not mean, however, that design on a Scrum project is not intentional. An intentional design process is one in which the design is guided through deliberate, conscious decision making.The difference on a Scrum project is not that intentional design is thrown out, but that it is done (like everything else on a Scrum project) incrementally. Scrum teams acknowledge that as nice as it might be to make all design decisions up front, doing so is impossible. This means that on a Scrum project, design is both intentional and emergent. A big part of an organization’s becoming agile is finding the appropriate balance between anticipation and adaptation (Highsmith 2002). Figure 9.2 shows this balance along with activities and artifacts that influence the balance. When doing up-front analysis or design, we are attempting to anticipate users’ needs. Because we cannot perfectly anticipate these, we will make some mistakes; some work will need to be redone. When we forgo analysis and design and jump immediately into coding and testing with no forethought at all, we are trying to adapt to users’ needs. All projects of interest will be positioned somewhere between anticipation and adaptation based on their own unique characteristics; no application will be all the way to either extreme. A life-critical, medical safety application may be far to the anticipation side. A three-person startup company building a website of information on kayak racing may be far toward the side of adaptation. Foretelling the agile preference for simplicity, in 1990, was speaker and author Do-While Jones.
Download from www.wowebook.com
Design: Intentional yet Emergent
167
I’m not against planning for the future. Some thought should be given to future expansion of capability. But when the entire design process gets bogged down in an attempt to satisfy future requirements that may never materialize, then it is time to stop and see if there isn’t a simpler way to solve the immediate problem.2 Scrum teams avoid this “bogging down” by realizing that not all future needs are worth worrying about today. Many future needs may be best handled by planning to adapt as they arise.
-
Early planning Big design upfront A n t ic ip a t io Testing after n Signed handoffs Early, complete requirements
FIGURE 9.2 Achieving a balance between anticipation and adaptation involves balancing the influence of the activities and artifacts on each side.
Getting Used to Life Without a Big Design As Scrum teams begin to become adept at the technical practices described in this chapter, they will naturally begin to shift further away from anticipating users’ needs and more toward adapting to them. This will result in a number of changes for the agile architect or designer to become accustomed to. The new realities caused by this shift include the following: ●
●
Planning is harder. Estimating, planning, and committing to deliverables is already hard; it becomes more difficult in the absence of an up-front design. A lot of thinking goes into creating an up-front design. Some of that thinking is helpful in estimating how long things will take and in combining estimates into plans. The upside to forgoing the big up-front design, however, is that the work that needs to be estimated is often simpler so that individual features can be estimated more quickly and easily. It is harder to partition the work among teams or individuals. Having a big, up-front design in hand makes it easy to see which features should be developed simultaneously and which should be developed in sequence. This makes it easier to allocate work to teams or individuals.
2 Jones’ 1990 article, “The Breakfast Food Cooker,” remains a classic parable of what can go wrong when software developers over-design a solution. I highly recommended reading it at http://www.ridgecrest.ca.us/~do_while/toaster.htm.
Download from www.wowebook.com
168
Chapter 9 ●
●
Technical Practices
it is uncomfortable not to have design done. Even though we’ve always known that no up-front design can be 100% perfect, we took comfort in its existence. “Surely,” we reasoned, “we’ve thought of all the big things so any changes will be minor.” rework will be inevitable. Without a big up-front design, the team will certainly hit a point where it needs to undo some part of the design. This two-steps-forward-one-step-back aspect of iterative development can be unsettling to professionals trained to identify all needs and make all design decisions up front. Fortunately, refactoring and the automated tests created during test-driven development can keep most rework efforts from becoming very large.
Doing a large, up-front design became popular because of the belief that doing so would save time and money. The cost of the up-front design plus the cost of adjustments was viewed as less expensive than the many small changes necessary with emergent design.The situation can be visualized as shown in Figure 9.3, with the question being which weighs more? FigurE 9.3 The costs of significant up-front design and analysis plus occasional expensive changes are weighed against the costs of frequent but smaller changes on a Scrum project.
Scrum
Traditional
Rework
Upfront analysis and design Rework
Rework
Rework
Rework
Rework Rework Rework Rework Rework
Rework Rework
In the past, it was entirely possible that doing a large, up-front design would save time and money. After all, Barry Boehm demonstrated in Software Engineering Economics (1981) that defects are more expensive to fix the later in the development process they are discovered. But the technical practices employed by good Scrum teams can dramatically alter the equation. When a team uses good technical practices—test-driven development, a heavy reliance on automated unit tests, refactoring, and pair programming among them—it may find itself in the situation where it is cheaper to adapt to user needs by reworking the application more often than it is to anticipate those needs and rework only occasionally. Figure 9.3 shows that in traditional development there is a large cost on upfront analysis and design.This investment keeps down the number of later changes. But when a change is needed, it is relatively expensive to make because the change
Download from www.wowebook.com
Design: Intentional yet Emergent
169
violates the primary assumption that change will be largely unnecessary. By contrast, the Scrum view shows many more changes, but the size of each bit of rework is smaller. This is the result of anticipating that change will be needed, but not knowing exactly where. Because of that, a Scrum team pursues technical excellence, always keeping the code well factored, with as simple a design as possible, and with a suite of automated tests for early detection of regression problems. So, while there are more occasions for rework, each is less of a setback.
guiding the Design When I hear attacks on the lack of design on a Scrum project, the attacks usually start from the position that technical members of the team have no influence on the order in which features are added to the system. This is a faulty premise. In fact, one of the best things a Scrum team can do to ensure the scale shown in Figure 9.3 is tipped in the right direction is to influence the order in which items are worked on. However, we read in Chapter 7, “New Roles,” that prioritizing the product backlog is the responsibility of the product owner. Although that is true, the chapter also pointed out that a good product owner will listen to the advice of the team. Standard Scrum guidance is that the product owner prioritizes based on some nebulous concept of “business value.” Although this may be true, it is a bit simplistic. The real job of the product owner is to maximize the delivery of features over some period of time. This may mean getting less “business value” now in favor of getting more later. In other words, a good product owner remains focused on ensuring that the product contains as much business value as possible when it is released but lets the team invest in the technical aspects of the product as appropriate because doing so pays later dividends to the product as well. Especially early on a new project, the team should encourage the product owner to select product backlog items that will maximize learning and drive out technical uncertainty or risk. This is what I meant earlier by saying design on a Scrum project is both intentional and emergent. The design emerges because there is no up-front design phase (even though there are design activities during all sprints). Design is intentional because product backlog items are deliberately chosen with an eye toward pushing the design in different directions at different times.
An Example As an example of how the product backlog items can be sequenced to influence the architecture of the system, consider a workflow system I worked on. The system supported a fund-raising company that produced specialized T-shirts and similar products. School-age children would go door to door selling these items. The sales revenue would be split between the company and the organization the
Download from www.wowebook.com
170
Chapter 9 Technical Practices
kids represented, such as a school, sports team, or other group. For each sale, the kid would complete a form and send it to the company, where it was scanned, sent through an optical character recognition (OCR) process, and converted into an order. To keep shipping costs down, orders from the same organization were batched together and sent back to the organization, after which the kids would hand-deliver the items. Our software handled the entire process—from when the paper was received by the company until the shipment went out the door. Kids have notoriously bad writing and are bad spellers, so our system had to do more than just scan forms and prepare packing lists. There were various levels of validation depending upon how accurately we thought each order form had been read. Some forms were routed to human data-entry clerks who were presented the scanned form on one side of the screen, the system’s interpretation on the right, and an additional space to make corrections. Because thousands of shirts were processed on the busiest days, this process needed to be as automated as possible. I worked with the product owner, Steve, to write the product backlog. After that I met with the development team to discuss which areas of the system were the highest risk or we were the most uncertain about how to develop. We decided that our first sprint would focus on getting a high-quality document to run through the system from end to end. It would be scanned, go through OCR, and generate a packing list. We would bypass optional steps such as deskewing crooked pages, despeckling pages, and so on but would prove that the workflow could be completed from start to finish. This wasn’t highly valuable but it was something that needed to be done, and it let the developers test out the general architecture. After we accomplished this, we had a basic database in place and could move documents from state to state, triggering the correct workflow steps. Next the developers asked the product owner if they could work on the part of the system that would display a scanned document to a human, who would be able to override the scanned and interpreted values.This was chosen as the second architectural goal of the project for three reasons: ●
It was a manual step, making it different from the workflow steps handled already.
●
Getting the user interface right was critical. With the volume of documents flowing through this system, saving seconds was important. We wanted to get early feedback from users to allow time to iterate on usability.
●
After this feature was added, users could start processing shirt orders.
The project continued in this way for a few months and was ultimately tremendously successful, meeting all of the prerelease targets for reliability and
Download from www.wowebook.com
Improving Technical Practices Is Not Optional
171
throughput. A key to the success was that the product owner and technical personnel worked together to sequence the work. The closest the team got to a design phase was the first afternoon in the conference room when we identified risky areas and dark corners and decided which one we wanted to tackle first. From there the design emerged sprint by sprint, yet was intentionally guided by which product backlog items were selected to illuminate the dark corners and risks of the project. ❑
❑
Facilitate a discussion between the team and product owner on how much influence technical factors should have on how the product owner prioritizes the product backlog. Before the start of the next sprint planning meeting, identify the top five technical uncertainties on the project and the risk associated with each. See if there are product backlog items that could be moved slightly up in priority that could create the learning necessary to eliminate these uncertainties.
ThINgs TO Try NOw
improving Technical Practices is Not optional The technical practices described in this chapter are ones I would expect to see in use by a top-performing team. Of course, there is room to argue that these practices may not be necessary 100% of the time on your application. All of the practices, though, are ones that members of a good Scrum team should be experienced with. Continuous integration is merely the natural extension of a nightly build, which is a bare minimum for a team to be agile. Skill at refactoring and a mindset of collective ownership can be established over time with any team. Practices such as pair programming and test-driven development lead to higher quality code, which is a goal of every Scrum team. Used together, these practices result in high-quality, low-defect products. Chapter 1, “Why Becoming Agile Is Hard (But Worth It),” included metrics on the improvements in quality and defect rates agile teams can experience. These improvements are the result of teams deliberately enhancing their technical skills and incorporating better practices. As a result of these improvements, good Scrum teams are able to shift the balance between anticipation and adaptation further to the side of adaptation. Minimizing, and in some cases eliminating, up-front analysis and design activities saves both time and money. In an aptly titled article, “Design to Accommodate Change,” Dave Thomas, founder of Object Technology International, which was responsible for the early Eclipse development, summarizes how achieving this balance helps make change less painful.
Download from www.wowebook.com
172
Chapter 9
Technical Practices
Agile programming is design for change….Its objective is to design programs that are receptive to, indeed expect, change. Ideally, agile programming lets changes be applied in a simple, localized way to avoid or substantially reduce major refactorings, retesting, and system builds. (2005, 14)
Additional reading Ambler, Scott W., and Pramod J. Sadalage. 2006. Refactoring databases: Evolutionary database design. Addison-Wesley. The first five chapters of this book clarify the role of the data professional in the agile organization. The chapters that follow are a compendium of well-thought-out ways to evolve a database design. Each refactoring includes descriptions of why you might make this change, trade-offs to consider before making it, how to update the schema, how to migrate the data, and how applications that access the data will need to change. Bain, Scott L. 2008. Emergent design:The evolutionary nature of professional software development. Addison-Wesley Professional. I’ve been waiting for someone to write the book proving how effective designs can emerge without being entirely thought-through up front. I’d hoped from its title that this would be that book. It isn’t, but it is an excellent description of how code should be developed on an agile project. Included are top-notch chapters on many of the technical practices described in this chapter. Beck, Kent. 2002. Test-driven development: By example. Addison-Wesley Professional. This slim book will not teach you everything you need to know about test-driven development. (For that, see Test Driven:TDD and Acceptance TDD for Java Developers by Lasse Koskela.) Where Beck’s book excels is at showing how TDD works and why you might want to try it. Duvall, Paul, Steve Matyas, and Andrew Glover. 2007. Continuous integration: Improving software quality and reducing risk. Addison-Wesley Professional. This book covers everything you’ll ever need to know about continuous integration. It covers how to get started, incorporate tests, use code analysis tools, and even evaluate continuous integration tools. Elssamadisy, Amr. 2007. Patterns of agile practice adoption:The technical cluster. C4Media. This book covers all of the technical practices recommend here (and more) and is an excellent choice if you are looking for one book that covers all of the technical practices in more detail. While full of good advice, the book is written in typical pattern style, where each practice is described in a fixed manner, which I find doesn’t hold my attention well after awhile.
Download from www.wowebook.com
Additional Reading
173
Feathers, Michael. 2004. Working effectively with legacy code. Prentice Hall PTR. Introducing new technical practices and committing to technical excellence is challenging enough on a new project; it’s even harder on a legacy application. Michael Feathers’ excellent book provides practical and immediately useful advice on doing so. Fowler, Martin. 1999. Refactoring: Improving the design of existing code. With contributions by Kent Beck, John Brant, William Opdyke, and Don Roberts. Addison-Wesley Professional. The bible of refactoring. Today’s integrated development environments can do a lot of refactorings for us, but it is still useful to go back to the original source and see the catalog of refactorings presented here. One of my favorite chapters is on “Big Refactorings,” which are often the ones that are most challenging. Koskela, Lasse. 2007. Test driven:TDD and acceptance TDD for Java developers. Manning. This is the most thorough book on test-driven development and is appropriate for those new to TDD and those with lots of experience. Koskela doesn’t shy away from the hard topics and presents advice on such often-ignored topics as TDD for multithreaded code and user interfaces. The book takes a holistic approach to TDD, even including nearly 150 pages on acceptance test–driven development. Martin, Robert C. 2008. Clean code: A handbook of agile software craftsmanship. Prentice Hall. The title page inside this book features the statement, “There is no reasonable excuse for doing anything less than your best.” The book then proceeds to present a compendium of practices for writing clean code. Topics range from the commonplace (meaningful names) to novel (test-driving an architecture and emergence). This is a must-read for all programmers.
SEE AlSo Acceptance test–driven development is described in Chapter 16.
Meszaros, Gerard. 2007. xUnit test patterns: Refactoring test code. Addison-Wesley. This encyclopedic book covers everything a programmer might possibly want to know about the popular xUnit family of unit testing tools. The book starts with the basics but quickly moves on to thoroughly cover advanced topics as well. Wake, William C. 2003. Refactoring workbook. Addison-Wesley Professional. A well-organized and easily accessible introduction to refactoring. The book is full of Java code examples for you to refactor and is a combination of a refactoring primer and exercises to drive home the point. The last third of the book is made up of four programs for you to refactor.
Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
Part III Teams
Most teams aren’t teams at all but merely collections of individual relationships with the boss. Each individual vying with the others for power, prestige and position. —Douglas McGregor
175 Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
Chapter
10
Team Structure
It is perhaps a myth, but an enduring one, that people and their pets resemble one another. The same has been said of products and the teams that build them. The system being produced will tend to have a structure that mirrors the structure of the group that is producing it, whether or not this was intended. One should take advantage of this fact and then deliberately design the group structure so as to achieve the desired system structure. (Conway 1968; commonly referred to as “Conway’s Law”) If it is true that a product reflects the structure of the team that built it, then an important decision for any Scrum project is how to organize those individuals into teams. Factoring into this decision are considerations of team size, familiarity with the domain, the channels of communication, the technical design of the system, individual experience levels, the technologies involved, the newness of those technologies, where team members are located, competitive and market pressures, expectations about project schedule, and much more. In this chapter we look at the importance of two critical factors to be considered when deciding how to structure Scrum teams: keeping teams small and orienting each team around the delivery of end-to-end user-visible functionality. We also look at the importance of having the right people on each team and not overloading those individuals by forcing them to split time among too many teams. We conclude the chapter with nine questions to ask when starting a multiteam project.
Feed Them Two Pizzas I was working on a project for a bioinformatics company when the CEO asked me to provide her with an estimate of how long the project would take. The application was large, the domain complicated, and the team mostly new. Because the domain was so complicated, our team was made up of some very smart Ph.D. scientists, who knew only a little about programming, and some very smart 177 Download from www.wowebook.com
178
SEE AlSo Scrum projects scale through the use of teams of teams. For information on large Scrum projects, see Chapter 17, “Scaling Scrum.”
Chapter 10
Team Structure
programmers, most of whom had taken no more than a class or two in biology or genetics. No one on the team was great at both the science and the development. After a bit of research and work with the team I returned to the CEO with an estimate of something like 100 person-years. In other words, if we used all 40 people on the team, we could finish the project in about two and a half years. I don’t think that number was too shocking to her, but it was a big number, so she asked me, “What’s the cheapest way we could write it?” My answer: “Take Steve, the scientist with the best understanding and aptitude for programming, and have him go spend 10 years working in a great software company doing nothing but learning how to be a great programmer. Then have him return to our company and spend 30 years working alone to write the program. It’ll take 40 years, but it’s your cheapest option.” She should have been quite pleased with my answer—after all, I’d taken the 100 person-year initial estimate and offered her a way to cut it by more than half. Alas, 40 years was just a bit too long for her to wait. As this story illustrates, a team offers the advantage of getting things done far more quickly than one person could, but with that advantage comes a potentially large amount of communication overhead. Knowing that, what is the ideal team size for Scrum projects? Generally accepted advice is that the ideal Scrum team size is five to nine individuals. While I agree with this, putting a number to it makes me nervous. If you’re thinking about your ten-person team right now you may feel inclined to return this book, demand a refund, and give up on Scrum. Don’t. Rather than take the five-to-nine person guideline too literally, I prefer how Amazon.com thinks its about its teams. Amazon refers to them as “two-pizza teams,” meaning a team that can be fed with two pizzas (Deutschman 2007). As humorous as that is, it’s actually useful. If ordering food for the occasional team lunch is a hassle, it could be a good indicator that the team has become too large. The largest single Scrum team that I worked with where I was content to leave them alone was 14 people. The team, its ScrumMaster, and I had all looked at possible ways to split them up, but no solutions we came up with seemed better than leaving them intact. I’ve also worked with one team of 25 that insisted it should be one team rather than more. They were wrong; there was too much communication overhead on a single team of that size.
Why Two Pizzas Are Enough To be fair, there are some advantages to large teams. Large teams may include members with more diverse skills, experiences, and approaches. Large teams are not as much at risk to the loss of a key person.They may also provide more opportunities for individuals to specialize in a technology or a subset of the application. On the other hand, there are even more advantages to small teams. These include the following:
Download from www.wowebook.com
Feed Them Two Pizzas ●
●
●
●
●
●
179
There is less social loafing. Social loafing is the tendency for people to exert less effort when they believe there are others who will pick up the slack. Members of small teams are less prone to social loafing. Social loafing was first demonstrated by psychologist Max Ringelmann in the 1920s when he measured the pressure exerted by individuals and teams pulling on a rope. Groups of three exerted only two-and-a-half times (not three times) the average individual pressure. Groups of eight exhibited less than four times the individual average. Ringelmann’s and related studies have shown that individual effort is inversely related to team size (Stangor 2004, 220). Constructive interaction is more likely to occur on a small team. Stephen Robbins, author of Essentials of Organizational Behavior, a best-selling textbook on organizational behavior, has concluded that teams of more than 10 to 12 people have a difficult time establishing feelings of trust, mutual accountability, and cohesiveness. Without these, constructive interaction is difficult (2005). less time is spent coordinating effort. Small teams spend less time coordinating the efforts of team members. This is true both in the aggregate and as a percentage of total project time. As a simple example, we all know that the effort just to plan a meeting for a large team can be overwhelming. No one can fade into the background. With large teams, there is lower participation in group activities and discussions. Similarly, the disparity in the amount of participation among team members increases. The problems can prevent a group of individuals from jelling into a cohesive, highperforming team. Small teams are more satisfying to their members. With a small team, one person’s contributions are more visible and meaningful. This is perhaps one reason why research has shown that participation on a large team is less satisfying to team members (Steiner 1972). Harmful over-specialization is less likely to occur. On a large project, individuals are more likely to take on distinct roles (Shaw 1960). For example, one developer chooses to work only on the user interface. This SEE AlSo The problems with creates wasteful hand-offs of work between team members and reduces hand-offs will be the amount of learning that occurs when individuals are more willing and considered in Chapter 11, “Teamwork.” likely to work beyond specific job roles.
One interesting study of team size looked at 109 different teams. The small teams had 4 to 9 members while the large teams had 14 to 18. The researchers reached several conclusions. Members of smaller teams participated more actively on their team; were more committed to their team; were more aware of
Download from www.wowebook.com
180
Chapter 10
Team Structure
the goals of the team; were better acquainted with other team members’ personalities, work roles, and communication styles; and reported higher levels of rapport. The data also show that larger teams are more conscientious in preparing meeting agendas compared to smaller teams. (Bradner, Mark, and Hertel 2003, 7) Hmm. With a small team I can have many compelling advantages. Or I can staff a larger team and get better meeting agendas.
Small Team Productivity Given the strength of these advantages to small teams, we would expect small teams to be more productive than large teams. Doug Putnam of QSM found exactly that after studying 491 projects with team sizes from 1 to 20 people. Since 1978 QSM has been collecting data on software productivity and estimates. The company maintains the software development industry’s most thorough metrics database, including data on application size, effort, industry, and more. As such, the QSM database is uniquely valuable for comparing different types of projects. From the QSM database of over 7,000 projects, Putnam narrowed the data set to 491 projects completed between 2003–2005 that delivered between 35,000 and 95,000 new or modified lines of source code.1 Project sizes were evenly distributed from 1 to 20 team members. As shown in Figure 10.1, Putnam found that the smaller the team size, the more productive each team member was. However, the difference between teams sized from 1.5 to 7 people was very small. FIgurE 10.1 The average productivity per person on teams of various sizes. Printed with permission from QSM, Inc. All rights reserved.
Team size
1.5-3 people (16.4) 3-5 people (16.3) 5-7 people (16.2) 9-11 people (13.7) 15-20 people (13.0)
0
2
4
6
8
10
12
14
16
18
20
Productivity per person
1 Lines of code is, of course, a much maligned metric and deservedly so in many cases. However, in a database of this size, I believe it is a reasonable proxy for the size of a project and can therefore be used in productivity calculations.
Download from www.wowebook.com
Feed Them Two Pizzas
181
Putnam looked also at the total development effort that goes into projects. Not surprisingly, he found that smaller teams complete projects with less total effort. Putnam concluded that “larger teams translate into more effort and cost. The trend appears to have an exponential behavior. The most cost-effective strategy is the smallest team; however the extreme nonlinear effort increase doesn’t seem to kick in until the team size approaches nine or more people.” These results can be seen in Figure 10.2.
FIGURE 10.2
Team size
Smaller teams require less total effort to deliver the same size project. Printed with permission from QSM, Inc. All rights reserved.
1.5- 3 people
31 48 69
3 - 5 people 5- 7 people 167, 9-11 people 283, 15-20 people
0
25
50 75 100 125 150 175 200 225 250 275 300
Total development effort
In most cases, however, we are not concerned with minimizing the total development effort; schedule is always a major consideration. After all, we rarely have 40 years to wait for a lone developer to finish what we need by next spring. The impact of team size on overall schedule is shown in Figure 10.3. This figure SEE ALSO are, of course, shows that a 5- to 7-person team will complete an equivalently sized project in There projects that cannot the shortest amount of time. Smaller teams took slightly longer. Notice again the be done with a single two-pizza team. Scrum dramatic increase with teams of 9 to 11 people. teams scale by having An additional study described in the Communications of the ACM compared teams of teams rather the productivity of large and small teams. Long-time industry veteran Phillip than one immense team. For more on Armour writes of this research. scaling, see Chapter 17. Large teams (twenty-nine people) create around six times as many defects as small teams (three people) and obviously burn through a lot more money.Yet, the large team appears to produce about the same amount of output in only an average of twelve days less time. This is a truly astonishing finding, though it fits with my personal experience on projects over thirty-five years. (2006, 16) With all of the strong reasons in favor of small teams, I don’t think I’ll be placing any orders for three pizzas any time soon.
Download from www.wowebook.com
182 FIgurE 10.3 Teams of five to seven people finished equivalently sized projects in the shortest amount of time. Printed with permission from QSM, Inc. All rights reserved.
Chapter 10
Team Structure
Team size 1.5- 3 people (13.6) 3 - 5 people (11.9) 5-7 people (11.6) 9 -11 people (17.1) 15-20 people (16.3)
0
2
4
6
8
10
12
14
16
18
20
Schedule (months)
OBJECTION
“There are too many disciplines on my project for us to have small teams. There are analysts, programmers, database developers, clientside programmers, middle-tier programmers, testers, test automation engineers, and more. I can’t possibly have a five- to nine-person team.” Although a project may require work in that many disciplines, it almost certainly does not require a dedicated expert in each area. On a nineperson team with each person responsible solely for one discipline, it will be difficult or impossible to balance the workload of each team member. A team structure where some people may work only within one discipline but where others can move between two or more makes it much easier for the team to balance the workload of the different disciplines. Having at least some people work across disciplines also instills a better sense of whole-product responsibility rather than “I just do such-and-such.” ❑
If your team has nine or more people, try splitting into two teams after the current sprint. Work that way for at least two sprints before discussing whether it was better.
❑
For each team with five to nine people, consider splitting into two teams.
ThINgs TO Try NOw
Favor Feature Teams When I first began to consult for a certain California-based game studio, its teams were organized around the specific elements and objects that would exist in the video game it was developing.There was a separate team for each character.There
Download from www.wowebook.com
Favor Feature Teams
183
were weapons teams, a vehicle team, and so on. This led to problems, such as weapons too weak to kill the monsters, colors too dark to show secret passages, and obstacles that frustrated even the most patient player. On more traditional, corporate projects, we see equivalent problems when teams organize around the layers of an application. For example, a typical earlystage mistake for the project whose architecture is shown in Figure 10.4 would be to have four teams: a rich client team, a web client team, a middle-tier team, and a database team. Creating component teams such as these leads to a variety of problems including ●
Reduced communication across the layers
●
A feeling that design by contract is sufficient
●
Ending sprints without a potentially shippable product increment
Web client Rich client
FIgurE 10.4
Services tier
A typical three-tier architecture.
Database tier
If structuring teams around the layers of an architecture is the wrong approach, what’s better? Rather than organizing around components, each team on SEE AlSo a project can ideally be responsible for end-to-end delivery of working (tested) The importance of features. A feature team working on the application shown in Figure 10.4 would, delivering end-tofor example, work across all layers of the architecture. It might develop one feature end functionality is discussed further in that involves the database layer, the services tier, and the rich client user interface. Chapter 14, “Sprints.” In the same or next sprint, it would develop a feature going across the web client, services tier, and database tier. There are many advantages to organizing multiteam projects into feature teams: ●
Feature teams are better able to evaluate the impact of design decisions. At the end of a sprint, a feature team will have built end-to-end functionality, traversing all levels of the technology stack of the application. This maximizes members’ learning about the product design decisions they made (Do users like the functionality as developed?) and about technical design decisions (How well did this implementation approach work for us?).
Download from www.wowebook.com
184 SEE AlSo
Chapter 10 ●
More problems with hand-offs are described in Chapter 11.
●
●
●
OBJECTION
Team Structure
Feature teams reduce waste created by hand-offs. Handing work from one group or individual to another is wasteful. In the case of a component team, there is the risk that too much or too little functionality will have been developed, that the wrong functionality has been developed, that some of the functionality is no longer needed, and so on. It ensures that the right people are talking. Because a feature team includes all skills needed to go from idea to running, tested feature, it ensures that the individuals with those skills communicate at least daily. Component teams create risk to the schedule. The work of a component team is valuable only after it has been integrated into the product by a feature team. The effort to integrate the component team’s work must be estimated by the feature team, whether it will occur in the same sprint during which it is developed (as is best) or in a later sprint. Estimating this type of effort is difficult because it requires the feature team to estimate the integration work without knowing the quality of the component. It keeps the focus on delivering features. It can be tempting for a team to fall back into its pre-Scrum habits. Organizing teams around the delivery of features, rather than around architectural elements or technologies, serves as a constant reminder of Scrum’s focus on delivering features in each sprint.
“My application is too complex; I can’t possibly deliver end-to-end functionality in one sprint.” Learning how to identify small pieces of functionality is one of the first big hurdles for a new Scrum team. I remember my first Scrum project: Initially there were times we struggled to find anything we could deliver in less than six weeks. Looking back on that system many years later, I now see many ways we could have split that work. In fact, I see enough ways to split the work now that we could have done one-day sprints if we had wanted to. As they gain experience, team members will find many more ways to split features while still delivering end-to-end functionality within each sprint. When doing so looks impossible, it is usually because teams are not structured appropriately. Before giving up, reconsider the individuals and skills on the team.
use Component Teams Sparingly Although you should strongly favor the use of feature teams, there will be occasions when creating a component team is appropriate. A component team, as I’m
Download from www.wowebook.com
Favor Feature Teams
185
using the term here, is a team that develops software to be delivered to another team on the project rather than directly to users. Examples of component teams include a team developing an object-relational mapping layer between the application and the database or a reusable user interface widget team. It is important that a component team still produce high-quality, tested, potentially shippable code by the end of each sprint. However, the new capabilities created by a component team are usually meaningless on their own. Think back for a moment to the examples I just gave. The object-relational mapping layer developed by one of the component teams is of interest to end users only through the context in which it is used by feature teams. But what about the team developing the reusable user interface widgets such as custom drop-down lists, data entry grids, and so on? These are certainly of interest to end users, right? Yes, but again only within the context of other features. An end user is not interested in a new data entry grid until it is embedded onto a page or screen.
Build Components Only As Feature Teams Ask for Them Because the work of a component team is delivered to another team, it is those teams who usually act as the product owner for the component team. If your team needs deliverables from my team, then you will act as the product owner to my team. As such you will have all the responsibilities of a good product owner. At the start of a sprint, you will need to help prioritize what I work on. At the end of the sprint you will accept or reject it, providing feedback to me on what has been produced. It will be hard for you to prioritize my work and provide feedback on it if my team is working far in advance of yours. Because of this, a component team should not develop new capabilities until one or more feature teams is ready for them. When a component team works far in advance of what feature teams need, it resorts to guessing at what capabilities are needed next. All too often this results in components or frameworks that are not usable by the feature teams. All new capabilities, including those built by component teams, should be developed within the context of externally visible functionality. Rob was the senior developer on a component team developing an objectrelational mapping layer that would be used by many of the 15 feature teams on the project. Rob’s team was initially tasked with choosing between developing this technology in-house or using a commercial or open-source product. Members made the questionable decision to build it themselves. Anxious to prove the correctness of this decision, Rob and team tried aggressively to get ahead of the needs of the feature teams. Rather than working closely with one or more feature teams, Rob’s component team made some big guesses about the grand design. For two months (two sprints) members didn’t deliver anything to the feature teams. After
Download from www.wowebook.com
186
Chapter 10
Team Structure
the third month, when they finally delivered an initial version, it did not meet the needs or expectations of the feature teams. What Rob’s team should have done instead was work very closely with the feature teams and add new capabilities in the context of the features being delivered by the feature teams. This would have forced a much closer collaboration between the component team and the feature team, increasing the chances of delivering what was needed. Rob’s team could have, for example, delivered only the ability to write fixed-length text data to the database in the first sprint. Feature teams who received that capability would not have been able to write numeric data, dates, and so on to the database. And they would not have been able to read any data. But, the feature teams could have done one thing—write fixed-length text data—and from that could have provided feedback to Rob and his team on the usability of the component. Perhaps the best way to ensure that a component team hears the feedback it will need to create useful functionality is to staff the component team temporarily with people from the feature teams. A developer assigned to a component team who knows he will soon be moving back to a feature team will be more likely to make sure the work of the component team will be usable.
Deciding When a Component Team Is Appropriate Whenever possible, form feature teams rather than component teams. I like to start out with the assumption that all teams on a multiteam project will be feature teams. I’m willing to back away from that assumption, but I only want to do so in the face of evidence that forming one or more component teams will be in the best interest of the product. I suggest considering a component team only when most of the following statements are true: ●
SEE AlSo For more on the evils of multitasking, see “Put People on One Project,” later in this chapter.
●
The component team will build something that will be used by multiple feature teams. If a component will be used by only one feature team, have that feature team build it.This ensures that the new capability is built within the context of that team’s needs and expectations, which makes the implementation more likely to be used. Even when a component team will build something useful to multiple teams, a better strategy is often to have one feature team build the functionality it needs and then have subsequent teams refactor and generalize the functionality as their needs arise. using a component team will reduce the sharing of specialists. On some multiteam projects, some highly specialized disciplines are shared across many teams. Although some sharing of specialists is usually necessary, too much of it can be detrimental as the specialist’s time becomes too fragmented. You may want to consider creating a component team if doing
Download from www.wowebook.com
Favor Feature Teams
●
●
●
187
so will make more manageable the extent to which specialists are shared across many teams. The risk of multiple approaches outweighs the disadvantages of a component team. If we choose to build a shared component or service by having multiple feature teams contribute to the effort, there are two related risks to be aware of. First is the risk that each feature team implements a different solution to the same problem. Second is the risk that the feature teams each build on top of what prior feature teams have done but do so without a cohesive vision. These risks could be great or small, depending on what shared functionality is being built. When the risk of multiple approaches is high, a component team is a valid option. It will get people talking who might not talk otherwise. People tend to talk more with those on their team than those outside their team. This is true even on a Scrum project. In fact, it may be especially true on a Scrum project because team members on Scrum projects come to identify so strongly with their teams. You can use this to your advantage by creating teams from people who need to work together but who might not naturally talk to each other. If past experience shows that a project’s artificial intelligence programmers do not talk often enough, this can help justify the short-term use of a component team, as long as there are other reasons for doing so. You can see an end to the need for the component team. A component team should not linger around forever, like my in-laws after the holidays. The team should develop the functionality it has been pulled together to create and then disband as soon as possible. When first forming a component team, it is not necessary to know when it will disband; however, you should have some idea of either how long it will exist or what will be delivered by the time the team has fulfilled its purpose. Because a component team is a deviation from the ideal of having all feature teams, you should be reluctant to create a component team that looks as though it might exist forever.
While acknowledging the occasional benefits of using a component team, I want to stress again that the vast majority of teams on a large project should be feature teams. Wes Williams and Mike Stout have described what happened at Sabre Airline Solutions when beginning with component teams. Stories weren’t complete from a user perspective. Teams were working on different features at different times with different acceptance criteria. There was a lot of rework coming back into the system. Teams were blaming each other for incomplete functionality, failing builds, tests, etc. In hindsight…the teams
Download from www.wowebook.com
188
Chapter 10
Team Structure
should have been structured along functional or feature lines. (2008, 359)
Who Makes These Decisions? Ideally, the team makes decisions about how it is structured. If the team is to be trusted with solving the problem of how to build the product, it seems appropriate to trust it with the decision about how to structure itself to do so. However, though team members are accustomed to making technical decisions, they usually do not have a lot of experience making team organization decisions. So, initially the team may not be in the best position to design its own structure. I’ve introduced Scrum to hundreds of teams. One of the things I’ve noticed is how frequently someone’s initial exposure to Scrum results in an opinion like, “Scrum sounds wonderful for our company, and it will be great for all the other groups but not mine.” Architects add, “After we do the up-front architecture, I can really see how this will help the programmers and testers.” User experience designers say, “After we’ve done the up-front usability research, I can really see how this will work for the architects, programmers, and testers.” Testers take the initial view, “It will be wonderful to have everyone working so closely together and then handing off to us for a big round of integration testing.” If we ask team members with these common initial mindsets to design the structure of their multiteam project, it shouldn’t surprise us when they come back with plans for an architecture team, a programming team, a user experience team, and a test team. Of course I’m generalizing, but the tendency to think this way is so prevalent that it will be tempting to organize that way as well. Initially, then, it is likely that functional managers, project managers, ScrumMasters, or those driving the transition to Scrum will make the decisions about how to organize the teams.These decision makers should solicit nonbinding input from their teams, especially from team members with past experience with Scrum or other agile methodologies.
What’s right Today May Be Wrong Tomorrow An important thing to remember when selecting an appropriate team structure is that no team structure is forever. If the current team structure is impeding a team’s or project’s ability to use Scrum, that issue should be raised during an end-ofsprint retrospective.You don’t want to continually change team structures, as team members need time to jell, but if the current structure is clearly wrong, change it. As team members gain more experience with Scrum, it will be appropriate for them to become more involved in team structure decisions, including which teams are needed, whether each is a feature or component team, and who should be on each team.
Download from www.wowebook.com
Self-Organizing Doesn’t Mean Randomly Assembled ❑
Make a list of all teams on your current project. Identify whether each is a feature team or a component team. For each component team, consider the statements in the section, “Deciding When a Component Team Is Appropriate.” Consider restructuring the team if not all statements were true.
189
THINGS TO TRY NOW
Self-Organizing Doesn’t Mean Randomly Assembled The ability for a team to self-organize around the goals it has been given is fundamental to all agile methodologies, including Scrum. In fact, the Agile Manifesto includes self-organizing teams as a key principle, saying that “the best architectures, requirements, and designs emerge from self-organizing teams” (Beck et al. 2007). As part of deciding how best to achieve the goal given them, some teams will decide that all key technical decisions will be made by one person on the team. Other teams will decide to split the responsibility for technical decisions along technical boundaries: Our database expert makes database decisions, and our most experienced C# programmer makes C# decisions. Still other teams may decide that whoever is working on the feature makes the decision but has the responsibility of sharing the results of the decision with the team. There are two key points here: First, not every team will choose to organize themselves the same way, and that’s OK. Second, making use of the collective wisdom of the team will generally lead to a better way of organizing around the work than will relying solely on the wisdom of one personnel manager. However, the benefit of allowing a team to self-organize isn’t that the team finds some optimal organization for its work that a manager may have missed. Rather, it is that by allowing the team to self-organize, it is encouraged to fully own the problem. A common criticism of self-organizing teams is, “We cannot just put eight random individuals together, tell them to self-organize, and expect anything good to result.” Well, I don’t know if that’s true, but when we are putting together a SEE ALSO two-pizza Scrum team, we are definitely not doing so with eight randomly se- Chapter 12, “Leading a lected individuals. In fact, those in the organization responsible for initiating a Self-Organizing Team,” describes how leaders Scrum project should expend a lot of effort in selecting the individuals who will exert subtle, positive comprise the team. influence. In the original paper describing Scrum, Takeuchi and Nonaka identified “subtle control” as one of its six principles. They list staffing decisions as a key management responsibility. Selecting the right people for the project team while monitoring shifts in group dynamics and adding or dropping members when necessary [is a key management responsibility]. “We would add an older and more conservative member to the team should the balance shift too much toward radicalism,” said a Honda
Download from www.wowebook.com
190
Chapter 10 Team Structure
executive. “We carefully pick the project members after long deliberation. We analyze the different personalities to see if they would get along.” (1986, 144)
Getting the Right People on the Team If you are a personnel manager or otherwise influence team composition in your organization, some of the factors to consider are the following: ●
●
●
●
●
Include all needed disciplines. As a cross-functional team, it is important that all skills necessary to go from idea to implemented feature be represented on the team. Initially this may mean that team size is slightly larger than desired. But, over time, individuals on a Scrum team will learn some of the skills possessed by their coworkers. This is a natural result of being on a Scrum team. As some team members develop broader skills, other individuals can be moved onto other teams. Balance technical skill levels. Subject to considerations of team size, you should strive to balance skill levels on the team. If a team has three senior programmers and no less-experienced programmers, the senior programmers will need to code some low-criticality features that they could find boring. Not only might a junior programmer have found such features enjoyable to work on, that programmer would also benefit from learning through association with the senior programmers. Balance domain knowledge. Just as we strive to balance technical skills, we should strive for a balance between those with deep knowledge of the domain in which we are working or the problem we are attempting to solve. This is not to say that if we have the opportunity to assemble a team entirely of domain experts we shouldn’t take it. Rather, we should consider the long-term goals of our organization. One of those goals is likely the build up of domain knowledge throughout the organization. You’ll have a hard time achieving that if you put all of the domain experts on one team. Seek diversity. Diversity can mean many different things—gender, race, and culture being just three among them. Perhaps equally important can be how individuals think about problems, how they make decisions, how much information they need before making a decision, and so on. Homogeneous teams reach consensus more quickly than do heterogeneous teams, but they do so by failing to consider all options (Mello and Ruckes 2006). Consider persistence. It takes time for team members to learn to work well together. Strive, therefore, to keep team members together who have worked well together in the past. When forming a new team, consider
Download from www.wowebook.com
Put People on One Project
191
how long members will be able to work together before some or all are dispersed to other commitments. “We can’t self-organize because we have a dominating former technical lead who makes all decisions before we even have a chance to discuss the issue.”
OBJECTION
If possible, take the dominating personality aside and inform her of the issue. Let her know that even in situations where she may know the “right” thing to do, she should sometimes refrain from voicing her opinion before others have a chance to express their thoughts. Ask her if she thinks the team would make the right decision if she were to present her thoughts as an opinion rather than as an unchallengeable decision. Enlist her assistance as a mentor to the others—her job should be not just making sure the right decisions are made but that team members grow such that they will make the right decisions on their next projects, where she may not be there for them. “My team won’t self-organize; team members are too passive and look to me to lead.” If they look to you, look back right at them. If you are the team’s ScrumMaster, make sure they know that your job is to support them, not to make decisions for them. If you are a team member, you do not need to subjugate your opinions and keep quiet all the time. However, you should look for ways to engage others by not making the decision in all cases. For example, try asking questions of others before giving your opinion. “The team is too junior; members don’t have enough experience to self-organize.” If they have enough experience to build a software product, they probably have enough experience to figure out how to organize themselves. If not, provide them with training or coaching. Often, this objection really masks the objection of, “I don’t trust the team to self-organize in the way I want them to.” Too bad. Exert subtle control over the team in who you put together to form the team and the goal you give that team, not in how it does its day-to-day work.
Put People on one Project Individuals assigned to work on multiple projects inevitably get less done. Multitasking—attempting to work on two projects or two things at once—is
Download from www.wowebook.com
192
Chapter 10
Team Structure
Bill Ahmed Siv Tor Robert Jon
Spin Wheel
PMT
25% 5%
15% 50%
5%
Enigma
Dodge City
SpongeBob
Napa
A portion of Jon’s project staffing spreadsheet.
Connect
FIgurE 10.5
D82 Mitigation
one of the biggest drains on project team performance. Yet it has unfortunately become one of the busy manager’s most frequently used tools.The reason for this, I believe, is that multitasking creates the illusion of progress and gives the manager the feeling that a problem has been solved. Really, though, in many cases the problem has been made worse. Consider the case of Jon, a director of database engineering who managed a staff of database administrators (DBAs) who were woefully outnumbered by the programmers, testers, and other types of developers in his company. Jon was faced with allocating himself and his staff of five across more projects than they could handle. His solution was to create a spreadsheet like the one shown in Figure 10.5. Jon’s spreadsheet allowed him to allocate DBAs across the various projects, which he did down to the 5% level. Five percent of an 8-hour day is 24 minutes.Through this spreadsheet Jon was telling Bill he could spend 24 minutes each on the Napa and PMT projects, Ahmed could spend the same on PMT and Spinwheel, and so on.
90%
5%
5%
25% 25% 25%
25% 25%
50% 20%
5% 10% 10% 10%
10%
15% 5% 75% 5% 10%
Did Jon really think that Bill would stop working on the Napa project after 24 minutes each day? Of course not. But he probably did think that Bill had enough control over his schedule that he could be close to 24 × 5 = 120 minutes in a week. What Jon was really doing in this situation was taking a problem (the correct allocation of resources) that he couldn’t solve and pushing it down to the members of his team. What Jon should have done instead was push this problem up to his own manager. Pushing problems toward the team is often a wonderful strategy. In fact, delegating problems to the team is at the heart of Scrum. However, when a problem is pushed toward the team, the team needs to be given the authority to solve the problem. In the case of Jon and his DBAs, it was obvious that one solution to
Download from www.wowebook.com
Put People on One Project
193
consider was doing fewer concurrent projects.Without being empowered to enact that solution, they were put into an impossible-to-solve situation. And they didn’t solve it any better than Jon did. They invoked the age-old policy of “work on the project of whoever is screaming the loudest.”
Time on Task Decreases with Too Many Tasks
Percent of time on tasks
Kim Clark and Steven Wheelwright studied the impact of multitasking on productivity. Their findings, shown in Figure 10.6, indicate that the total amount of time on task goes up when a person has two tasks to work on. After that, however, Clark and Wheelwright found that time on task decreased. In fact, with three tasks the amount of time on task decreased so much it was less than when an individual had only one task to work on (1992, 242). FIgurE 10.6 80 70 60 50 40 30 20 10 0
The amount of time spent on valueadding tasks decreases with three or more concurrent tasks.
1
2
3
4
5
Number of concurrent assigned tasks
If you have only one task to work on it is almost a certainty that you will occasionally be unable to work on that task.You will become blocked by waiting for someone to return a phone call, answer an e-mail, approve the design, or so on. And so it makes sense that the Clark and Wheelwright study shows that a person with two tasks to work on spent more time on task than did someone with only one task. However, consider that Clark and Wheelwright did this research in the early 1990s. What’s changed since then? For starters how about e-mail, instant messaging, the proliferation of mobile telephones, and any number of ways in which we communicate? My theory is that the bars in Figure 10.6 need to be shifted one space to the left to reflect today’s faster pace. I remember clearly the job I had back in 1992 when Clark and Wheelwright published their results. I remember times back then when I was at my desk and thought, “I’m caught up; I have nothing to do right now.” Of course, I haven’t thought that since 1992. The pace of the world has accelerated dramatically. Just being a good corporate citizen takes more time now than it did in 1992.There’s more to read, more to
Download from www.wowebook.com
194
Chapter 10
Team Structure
process, and more for each person to do. Merely being an employee should count today as a first task for each of us. The first project we are on counts as a second, and we are then already optimally productive. Any further projects we are assigned just make us less productive. One of the main reasons that multitasking is so horrible is the taskswitching cost involved. There is tremendous overhead in getting started on one task, switching to another, and then switching back to the first. The more tasks or projects we are involved in, the more likely we are to be interrupted while working on them. One study of members of a software development team found that team members are interrupted every 11 minutes (Gonzales and Mark 2004). If you’re reading this chapter at the office, it is likely that you were interrupted at least once while reading. ❑
ThINgs TO Try NOw
If you are a manager, make a list of your direct reports and the projects each is on. If anyone is on more than two projects, immediately find a way to change that. If you’ve already achieved this, see if you can reduce someone’s allocation from two projects to one. Assess the situation after two sprints.
When Multitasking Is oK All of this is not to say that we should never allow multitasking on our projects. It is sometimes helpful. The key is to remember that a person who is multitasking and shared across multiple projects is likely to get less total work done than if she had been dedicated fully to just one of those projects. Let’s again consider Jon and his DBAs. Suppose each DBA could complete “20 database tasks” per day assuming that all database tasks are the same size. A DBA fortunate enough to work on only 1 project would achieve this level of performance. However, a DBA on 2 projects might complete only 16 database tasks per day. And a DBA on 3 projects might complete only 14 database tasks per day. Although these reduced levels of productivity may look quite bad, they may not be. Suppose 1 of our DBAs is assigned to 2 projects and is to split her time equally between them. She will be able to complete 8 database tasks on each project. This may be the optimal use of her time if neither of the projects needs 20 database tasks done in a day. If neither project needs more than 8 database tasks a day from her, then she is better split between both projects than dedicated entirely to 1. From this we can extract the following guidelines: ●
●
In general, and for the majority of a project’s team members, multitasking is to be avoided. Multitasking may be acceptable if a person cannot be fully or nearly fully utilized on a single project. If we look back to Figure 10.5 and Jon’s DBAs, we see that the Connect project was allocated three people
Download from www.wowebook.com
Put People on One Project
195
with a total allocation greater than 100%. A better solution would likely have been to allocate a single person but for 100% of his time. ●
Rather than have everyone multitask a little, it is better to have a few people multitask a lot. Figure 10.6 illustrates how the largest drop in time on task occurs after a person takes on the first task too many. In Jon’s case, a better solution would have been to do anything possible to have two or three of his DBAs not have to multitask, even if that meant the others had to multitask even more.
The Corporate Form of Multitasking Individuals feel compelled to multitask because the organizations in which we work attempt to multitask as well. The corporate form of multitasking is pursuing too many concurrent projects. When an organization takes on too many projects, people become shared across multiple projects, which leads to individual multitasking. The detrimental effect of multitasking then causes those projects to take longer, which leads to more multitasking near the end of the project when “we need to get started” on the next project. An eight-year study of projects at a dozen companies and published in Harvard Business Review concluded that “projects get done faster if the organization takes on fewer at a time” (Adler et al. 1996). Corporate multitasking—attempting to make progress on too many concurrent projects—is what created the situation that Jon found himself in earlier in this chapter when he resorted to allocating his people to the 5% level. Mary and Tom Poppendieck urge organizations to limit work to capacity. An organization that has more projects running concurrently than can be adequately staffed is attempting to work beyond its capacity. As they write, “If you expect teams to meet aggressive deadlines, you must limit work to capacity (2006, 134, emphasis is theirs).
Stopping the Treadmill One of the happiest days of my life as a consultant was when I explained the impact of personal and corporate multitasking to the general manager of a large division of a big company. I could tell the message resonated with her. She asked me to follow her as she rose from her desk. We walked to a conference room near her office. She pointed toward a huge number of sticky notes stuck to the widest wall in the conference room and said, “We just made our plan for next year.There it is. Do you think we’re doing too much?” Her division had well over 100 developers but the wall was full. We talked about the plan, the number of concurrent projects, and the ripple effect that would occur if one project was substantially late. She knew they were planning to
Download from www.wowebook.com
196
Chapter 10 Team Structure
do too much, and I confirmed this for her. She convened a meeting for the next day of the vice presidents and directors who had made the plan and instructed them to start taking projects off the board. A look of relief (and surprise) went across the faces of everyone present. They had each known that the plan they had created the week before was overly ambitious and would not happen. However, no one had been willing to say so. I checked back with this general manager a year later and was delighted—but not surprised—to hear that her division had just completed its most successful year ever. Part of that was attributable to the adoption of Scrum and the improvements it brought across her department. But an equal part of the success was attributable to the focus that was brought to each project by having fewer projects in progress at one time. As this anecdote shows, often the best way to stop multitasking is to stop cold turkey. However, the reason I was so impressed with this general manager is that she is one of the few I have seen with the courage to do that. If you can’t stop immediately, or if you’re not in a position within the organization to make such a far-reaching decision, there are other things you may want to try. Don’t start a new project until it can be fully staffed. Avoid the temptation to start a new project with just a few analysts and maybe one programmer. Try to get everyone to agree that new projects will be started only when they can be staffed with all disciplines represented. This isn’t to say you need to wait to start a large project until all 50 developers are available. Starting a new project only when at least one full team can be fully and appropriately staffed will help adjust the rate at which new projects are started to closer to the rate at which they can be developed. Include ramp-up and wind-down time in enterprise plans. If, like the general manager in this section’s story, you put together a big, annual plan, be sure to include the time necessary to start and stop the various projects. All too often a team provides an estimate of six months, and six months are reserved on an enterprise calendar. However, even on a Scrum project (especially from a new Scrum team), there may be a month or two of wind-down. During this time at least a subset of the team may be needed for high-priority bug fixes or to implement great, new ideas that were discovered only upon release. Failing to plan for some of this will cause unexpected periods of overlapping projects. Institute simple rules. Gaining agreement on simple rules can help lead to the right organizational behavior. A simple rule such as “No one can be assigned to more than two projects” can work wonders. Johannes Brodwall, chief scientist with Steria in Norway, suggests one simple rule.
Download from www.wowebook.com
Guidelines for Good Team Structure
197
Everyone on the team must be at least 60% allocated to the team. Sixty percent seems to be a magical number, which says to people, “This is the most important thing.” With 60%, when one task suffers, it is usually one of those 10% or 20% tasks. So this structure guides people to be more dedicated to their primary team. go slow but go. I can totally respect the leap of faith required to believe that doing fewer concurrent projects will lead to more projects being completed. Even if they believe that completing projects more quickly will ultimately lead to increased productivity, people will be uncomfortable postponing or canceling large-scale projects. So, start small: Remove one project from the first quarter plan and see how it goes.
guidelines for good Team Structure This section presents a set of guidelines to consider in designing an appropriate team structure. Each guideline is presented in the form of a question to be asked of a current or proposed team. The questions are intended to be asked iteratively. Ask each question of a current or proposed team, changing the structure as appropriate based on the answer. As the structure changes, reask the questions until you can answer “yes” to each. Does the structure accentuate the strengths, shore up the weaknesses, and support the motivations of the team members? People don’t enjoy being on a team where they are not able to make use of their strengths or are constantly required to do things they are bad at. Good team members are willing to do whatever is necessary for the success of the project, but that doesn’t relieve us from the goal of trying to find a team structure that accentuates the strengths of as many team members as possible. Does the structure minimize the number of people required to be on two teams (and avoid having anyone on three)? A well-conceived team structure for an organization that is not attempting to do too many concurrent projects will reduce multitasking to a tolerable level. If the organization is not attempting too many concurrent projects, yet more than 10–20% of all team members belong to more than one team, consider an alternative team design or deferring some projects. Does the structure maximize the amount of time that teams will remain together? If other factors are equal, you should favor a design that allows team membership to persist over a longer period. It takes time for individuals to learn to work well
Download from www.wowebook.com
198
Chapter 10 Team Structure
together. Amortize the cost of that learning over a longer period by trying to leave teams together as long as possible, ideally even finding a team structure that can outlast the current project. Are component teams used only in limited and easily justifiable cases? Most teams should be created around the end-to-end delivery of working features. In some cases, it is acceptable to have a component team developing reusable user interface components, providing access to a database, or similar functionality. But these should be exceptions. Will you be able to feed most teams with two pizzas? Given the compelling productivity and quality advantages of small teams, the majority of teams in a good design should have five to nine members. Does the structure minimize the number of communication paths between teams? A poor team structure design will result in a seemingly infinite number of communication paths between teams. Teams will find themselves unable to complete any work without coordinating first with too many other teams. Some interteam coordination will always be required. But, if a team that wants to add a new field on a form is required to coordinate that effort with three other teams, as I’ve seen, then the communication overhead is too high. Does the structure encourage teams to communicate who wouldn’t otherwise do so? Some teams will just naturally communicate with each other. An effective team design encourages communication among teams or individuals who should communicate but may not do so on their own accord. In fact, one valid reason to put someone on two teams is that doing so will increase the communication between those teams. If lack of communication between two teams is a concern, splitting a person’s time between those two teams is easily justified. Does the design support a clear understanding of accountability? A well-designed team structure will reinforce the concept of a shared, all-teams accountability for the overall success of the project while providing each team with clear indicators of its unique accountabilities. Did team members have input into the design of the team? During the early stages of your transition to Scrum, this may not be possible. Individuals may not yet have enough experience delivering working, tested, ready-to-use products by the end of each sprint. Similarly, some individuals may be initially too resistant to Scrum to contribute to team structure discussions in constructive ways. In these cases, it is acceptable for managers outside the team to design an initial team structure.
Download from www.wowebook.com
Additional Reading
199
While doing so, however, they should remember that this is a responsibility that will eventually need to be turned over to the team as a whole.
onward In this chapter we’ve looked at why Scrum teams should be kept small and used the analogy of being able to feed each team with two pizzas. To further enhance a team’s ability to rapidly, correctly, and efficiently develop software products, we also considered whether teams should be structured around features or components. We concluded that in structuring multiple teams, we should seek to favor feature teams and try to avoid the use of component teams, while acknowledging they will occasionally be appropriate. Next we dispensed with the myth that a self-organizing team is a random collection of individuals. As with any team, team members should be chosen with effort and care. We also looked in detail at the need to structure teams in such a way as to minimize the need for individuals to belong to two or more teams. Finally, we concluded with nine guidelines for structuring teams. In the next chapter we turn our attention to the subject of teamwork. We look specifically at what the members of a single, two-pizza team can do to work well together during a sprint.
Additional reading DeMarco, Tom, and Timothy Lister. 1999. Peopleware: Productive projects and teams. 2nd ed. Dorset House. It is impossible to say enough good things about this book. I remember the day in 1989 when my CEO told me, “After reading Peopleware this weekend, I am going to completely change our development group.” She did, and the group excelled because of it. This book is full of advice on helping teams achieve their fullest potential. Goldberg, Adele, and Kenneth S. Rubin. 1995. Succeeding with objects: Decision frameworks for project management. Addison-Wesley Professional. This book precedes the agile movement but still contains some of the best advice on various team structures. Two chapters include a summary of various team structure options, how to choose among them, and case studies of how six teams chose to organize. Hackman, J. Richard. 2002. Leading Teams: Setting the stage for great performances. Harvard Business School Press. The premise of this book is that a leader’s job is to design and support teams that can manage themselves. It includes an excellent chapter (“Enabling Structure”) on how to structure teams.
Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
Chapter
11
Teamwork
Teamwork is at the heart of every agile process. The Agile Manifesto proclaims
that we are to favor “individuals and interactions over process and tools” (Beck et al. 2001), meaning great software comes from great teams. Scrum itself derives its name from the view that a product development team should behave much like a rugby team—a group of individuals moving the ball down field as a unit. Considering the central importance of teams to successful agile development, it should be no surprise to encounter a chapter called “Teamwork.” Scrum teams succeed together and fail together. There is no “my work” and “your work” on a Scrum team; there is only “our work.” This is a radically different way of working for most people, especially those used to working in specialty silos or those who have developed a habit of doing only what they’re asked to do. Teams that break free of this mind-set rightly feel a sense of satisfaction and accomplishment. Too many teams, however, stop improving at the point where they begin functioning as a unit, missing out on many of the advantages Scrum can bring.To become a truly high-performing Scrum team requires a concerted effort toward continuous learning and improvement. In the following sections, we explore whole-team responsibility, collaboration, and the role of specialists on a Scrum team. We also look at how Scrum teams can work effectively during a sprint by doing a little bit of everything all the time.The chapter concludes with advice on how to go beyond a basic level of functionality by fostering team learning, eliminating sources of knowledge waste, and eliciting a commitment from the team to continuous improvement.
Embrace Whole-Team Resposibility One of the first steps to becoming a functional Scrum team is to come to terms with whole-team responsibility. When I teach, my favorite questions are the ones starting with “Who is responsible for….” It doesn’t matter how someone ends that question, my answer is always the same: the team. Not wanting to fully evade such questions, I will expand further. Suppose the question was, “Who is responsible for the product backlog?” I will answer 201 Download from www.wowebook.com
202
Chapter 11
Teamwork
that although the whole team is responsible, it is the product owner I’ll go talk to about making it happen. The whole team should feel responsible for all aspects of the product. Quality is a whole-team responsibility. Clean code is a whole-team responsibility. Having a well-formed product backlog is a whole-team responsibility. And so on. As Jon Katzenbach and Douglas Smith, authors of the best-selling The Wisdom of Teams, wrote, “No group ever becomes a team until it can hold itself accountable as a team” (1993, 60). Yes, there will be specific individuals who should feel additional responsibility for some of these items. But that doesn’t relieve the team from sharing full-team responsibility for the overall product and all aspects of its development. Although having clean, well-written code may seem to be something only the programmers can do anything about, that isn’t the case. Suppose a tester notices that a handful of bugs appear, are fixed, and then reappear in one part of the application. This may be evidence to the tester that this particular code has become difficult to maintain. Exactly what the tester does with this information is up to the tester and the culture of the team. The tester may, for example, share the concern with a programmer who has worked in that area, with the whole team during a daily scrum or retrospective, or with the product owner.Which approach the tester selects is unimportant. That the tester takes action out of a sense of responsibility for having well-written code is what matters. Lisa Crispin, long-time agile tester and coauthor with Janet Gregory of Agile Testing, recalls how she first learned that on an agile team she was not solely responsible for quality. My title at my last job prior to joining my first agile team was “Quality Boss.” I thought I was in charge of quality. I had a lot of input to release decisions, and in fact, I had the keys: I was the only one who could release. Our first iteration on my new XP team, the server crashed if two people logged on to the app at the same time. I was appalled and deemed it unacceptable. Our coach had to have a talk with me and explain that I wasn’t in charge of quality. In fact, our customer was in charge.The customer worked for a start-up company and wanted bells and whistles that could be shown to their potential customers.They had no need for two users being logged in at the same time—that wasn’t what they were prioritizing—so the programmers hadn’t written code to support it. This was a huge mind-set change to me.
Download from www.wowebook.com
Embrace Whole-Team Resposibility “If everyone is responsible then no one is responsible. For everything that needs to be done there needs to be one throat to choke.”
203
OBJECTION
From a manager’s perspective it can be nice to always be able to point to one person and say, “That’s who I’ll blame if things go wrong.” But the “one throat to choke” argument is false. Historically, there may be one person who takes the blame for things when they go wrong, but that doesn’t mean that person was responsible for the failure. Take the case of a sports team. At the start of a new season, who on a sports team do we say we’ll hold responsible for winning the championship? The coach? The owner? The star player? Teams that win championships find a way to win games, no matter the circumstances. If the game plan isn’t working, the coach and players adapt. If the star player is having a bad day, someone else steps up. The whole team feels responsible for winning somehow, some way. If the team loses, it may be tempting to blame one person or another, but the team members know that each one of them is accountable for the loss. It’s never just one person’s fault. In reality, there is no single, wringable neck. Consider a nonsports analogy. If both parents were involved in raising a child (and assuming one of them isn’t abusive or obviously negligent), which parent is the one throat to choke if a child grows up to be a convicted felon? There is a reason we call it a parental unit. Raising a child is a team effort. The only way to ever create an environment of shared ownership and responsibility is to let go of the notion of having one throat to choke. That doesn’t mean no one is responsible. That means that on a successful team, the team members must do their part, or even go beyond a perceived role, to ensure that the team reaches its goals. “But my annual review is based on what I do, not what my team does.” Indeed it probably is and, if not altered, that will work against your organization’s successful long-term adoption of Scrum. We do not need to completely abandon individual assessments, but periodic performance reviews should include a significant component measuring achievement of team goals. This topic is discussed in more detail in Chapter 20, “Human Resources, Facilities, and the PMO.”
Download from www.wowebook.com
204
Chapter 11 Teamwork
Nurture Whole-Team Commitment
SEE ALSO As a result of the shift to whole-team responsibility, individuals will often be called on to perform work outside their specialties. Changes in the day-to-day work of various individuals are described in Chapter 8, “Changed Roles.”
Along with shared responsibility must come a shared commitment to achieving the goals the team accepts. One of the worst things I’ve ever heard at the end of a sprint was a programmer who said, “But I finished my tasks,” when the product owner complained that sprint backlog items were left incomplete. This programmer may indeed have finished his tasks, but his tasks were only one part of the work his team had committed to finish and only a small portion of the work required to move the product forward. During sprint planning, the team plans the work of the coming sprint. Although I do not recommend that this planning include selection of tasks by individuals (“I’ll do this, you do that….”), such early allocation of work is common among teams new to Scrum. During these early sprints, I remind teams I coach that these allocations are to be treated tentatively. The team’s goal is to finish all of the product backlog items it has committed to for the sprint.This is a whole-team commitment, not a commitment by each person to complete the tasks he or she has signed up for. In some organizations, it will be difficult to shift from a culture of “I am responsible for and commit to completing my tasks” to a culture of shared, wholeteam responsibility. Until this shift occurs, however, teams will find it difficult to complete the selected product backlog items for a sprint. With whole-team commitment, the team member who is ahead of schedule will help the one who is behind such that hopefully each finishes on time.Without a whole-team commitment, it is almost certain that many product backlog items will be “90% done” at the end of the sprint, as each waits on a last bit of work from the person who was a little behind schedule. ❑
In your next sprint planning meeting, do not have individuals sign up for specific tasks. Go ahead and identify who is likely to work on which tasks so that everyone can agree to the product backlog items to be completed. But, don’t write any names next to tasks, and let the assignments emerge during the sprint. After the sprint, discuss how it went.
❑
Swarm on one product backlog item at a time: Have the entire team commit to working on one product backlog item until it is finished before moving on to the next. This is a great way for team members to learn to work together, even if it may be overly restrictive as a permanent practice.
THINGS TO TRY NOW
Rely On Specialists but Sparingly A common misconception is that everyone on a Scrum team must be a generalist— equally good at all technologies and disciplines—rather than a specialist in one.
Download from www.wowebook.com
Rely On Specialists but Sparingly
205
This is simply not true. What I find surprising about this myth is that every sandwich shop in the world has figured out how to handle specialists, yet we in the software industry still struggle with the question. My favorite sandwich shop is the Beach Hut Deli in Folsom, California. I’ve spent enough lunches there to notice that they have three types of employees: order takers, sandwich makers, and floaters. The order takers work the counter, writing each sandwich order on a slip of paper that is passed back to the sandwich makers. Sandwich makers work behind the order takers and prepare each sandwich as it’s ordered. Order takers and sandwich makers are the specialists of the deli world. Floaters are generalists—able to do both jobs, although perhaps not as well as the specialists. It’s not that their sandwiches taste worse, but maybe a floater is a little slower making them. When I did my obligatory teenage stint at a fast food restaurant, I was a floater. I wasn’t as quick at wrapping burritos and making tacos as Mark, one of the cooks. And whenever the cash register needed a new roll of paper, I had to yell for my manager, Nikki, because I could never remember how to do it. But, unlike Mark and Nikki, I could do both jobs. I suspect that just about every sandwich shop in the world has some specialists—people who only cook or who only work the counter. But these businesses have also learned the value of having generalists. Having some generalists working during the lunch rush helps the sandwich shop balance the need to have some people writing orders and some people making the sandwiches. What this means for Scrum teams is that yes, we should always attempt to have some generalists around. It is the generalists who enable specialists to specialize. There will always be teams who need the hard-core device driver programmer, the C++ programmer well-versed in Windows internals, the artificial intelligence programmer, the performance test engineer, the bioinformaticist, the artist, and so on. But, every time a specialist is added to a team think of it as equivalent to adding a pure sandwich maker to your deli. Put too many specialists on your team, and you increase the likelihood that someone will spend perhaps too much time waiting for work to be handed off, which is the subject of the next section. ❑
In your next sprint planning meeting, agree that one specialist on the team will not work in that specialty for the duration of the sprint. The specialist can advise others who do the specialty work but cannot do the work personally. The goal is not so much to broaden the specialist’s skill set as it is to develop those skills in other team members. Discuss how this worked during the retrospective. Consider repeating it with the same person. Consider trying it with a different specialist.
ThINgs TO Try NOw
Download from www.wowebook.com
206
Chapter 11
Teamwork
Do a little Bit of Everything All the Time Teams used to a sequential development process have become accustomed to hand-offs between specialists. Analysts hand their work to designers who hand it to programmers who pass it on to testers. Each of these hand-offs includes some overhead in the form of meetings, documents to read and perhaps sign, and so on. In part because of this overhead, the hand-offs tend to be of large amounts of functionality. In the purest meaning of a waterfall process, the entire application is handed from group to group. Teams that are new to Scrum often do not go far enough in eliminating these hand-offs. They often make the assumption that the programmers should finish programming a product backlog item before handing it off to the testers. This results in lengthy delays at the start of a sprint, when the testers are waiting for a first product backlog item to be handed to them. On a Scrum project, the unit of transfer between disciplines should be smaller than an individual product backlog item. That is, although there will always be some hand-offs (not everyone can be working on everything all the time), the amount of work being transferred from one person to the next should generally be as small as possible. As an example, suppose a team is developing a new eCommerce application. The team chooses to work on this user story: “As a shopper, I can select how I want items shipped based on the actual costs of shipping to my address so that I can make the best decision.” A discussion should ensue among those who are interested in or who will be involved in developing this feature. Let’s suppose that includes the product owner, a business analyst, a tester, and a programmer. Their initial discussions are around the general requirements implicit in this feature—things like which shipping companies do we support (FedEx? DHL? and so on), do we want to support overnight delivery? two-day delivery? three-day? and so on. As these discussions occur, the individuals involved will naturally be thinking about how to get started. On a traditional project, each would be able to start however he or she wanted (after the work was handed over). On a Scrum team, however, how to get started should be a collaborative discussion among those who will work on this feature. For this example, let’s assume that the programmer makes the case that it will be easier for some reason to start with FedEx.The tester agrees. The analyst states an intention to investigate DHL and learn more about the parameters that affect DHL shipping costs. The analyst’s goal is to have that information available by the time the programmer and tester finish with FedEx. When the programmer knows enough to get started coding, she does so. The product owner, analyst, and tester discuss high-level tests. (Will our site ship any odd-sized items like skis?) After that discussion, the tester turns the high-level list of tests into concrete tests (boxes of this size and weight going to that destination). The tester creates test data and automates the tests. Some automation may be possible without any interim deliverables from the programmer. Full automation
Download from www.wowebook.com
Do a Little Bit of Everything All the Time
207
may require getting an early version from the programmer. While the tester is thinking of the concrete tests, he should also inform the programmer of any test cases that the programmer may not be considering while she’s programming. When the programmer and tester have finished, they add support for calculating FedEx shipping costs into the build, complete with automated tests. Graphically, this can be depicted as shown in Figure 11.1.
FIGURE 11.1
Programmer
Tester
Business Analyst
Product Owner
These four individuals work closely together on one product backlog item rather than handing it to each other.
Discuss user needs
Specify tests for FedEx
Investigate DHL
Automate tests for FedEx Design, code, unit test support for FedEx
Add to build
Specify tests for Automate DHL tests for
DHL
Design, code, unit test support for DHL
Add to build
Next, the programmer and tester check in with the business analyst, who has hopefully learned more about calculating DHL shipping costs. The process is repeated, and support for DHL shipping calculations is added to the application when the programming and testing are complete. The key element in Figure 11.1 is that the team has learned to work by doing a little of everything all the time. Rather than an analysis phase (done without the programmer and tester) followed by a programming phase followed by a testing phase, a little of each of those activities is happening at all times.
Don’t Wait Until the End of the Sprint to Finish Everything A symptom of continuing to hand off work in overly large chunks will be a tendency for no product backlog items to be finished until the last few days of the sprint. Testers on teams that work this way often complain that they are given nothing to test until two days before the end of a sprint and are expected to test everything that quickly. The best way to expose this problem is to create a chart of the number of product backlog items finished as of each day in the sprint. An example can be seen in Figure 11.2a.
Download from www.wowebook.com
208
Chapter 11
Teamwork
As the ScrumMaster on a team, I often just hang this chart in the team area with no fanfare or explanation. Team members soon figure out the problem a chart like this exposes and hopefully start to find ways to finish product backlog items sooner.The result will often be similar to Figure 11.2b, which shows a much smoother flow through the sprint. FigURE 11.2 Charting the number of product backlog items finished as of each day in the sprint can expose the problem of handing off large pieces of work.
a. A common starting point
b. The ideal result
Product backlog items finished
Product backlog items finished
Days
Days
Mix the Sizes of the Product Backlog items You Commit To When planning a sprint, pay attention to the sizes of the product backlog items you are committing to. Some product backlog items are more complex than the FedEx/DHL example given in this section. Some product backlog items will require a week or more of programming time before the programmer can give something even beginning to be testable to a tester. That’s OK. Not everything can be split as small as we might like. You want to avoid bringing a bunch of items like this into the same sprint. Doing this will shift too much testing work to the end of the sprint. Instead of planning a sprint with, for example, three very large items that cannot be partially implemented, bring one or two large items into the sprint along with two or three smaller items. Some of the programmers can work on the large items, handing them over to testers whenever possible.The remaining programmers can work on the smaller items, ensuring a somewhat smoother flow of work to testers early in the sprint.
ThINgs TO Try NOw
❑
Commit to having one-third of the planned product backlog items done by the midpoint of your sprint.
❑
Post a chart like the one shown in Figure 11.2.
❑
For the next three sprints, start by having programmers and testers find a suitable approximate midpoint of each product backlog item. Commit to adding it to the nightly build as soon as this midpoint is reached rather than only after the item is done.
Download from www.wowebook.com
Foster Team Learning
209
Foster Team learning If your team has embraced the concept of whole-team commitment, has reduced its reliance on specialists, and is doing a little bit of everything all the time, you have probably made great strides in improving how you work together. This is when most teams become complacent. Don’t.There are still opportunities for improvement. To become a truly high-performing team and to realize all of the benefits that Scrum has to offer, your team must proactively seek out new ways to learn and share knowledge. Some learning occurs naturally—a user tells the product owner that she likes how a feature behaves or a programmer discovers that scalability needs cannot be met using a particular technology. Other learning is sought deliberately.This is the learning we are interested in right now. Rather than passively waiting for learning to occur, the most effective teams and their leaders take a very active role in optimizing the rate and significance of learning.
Ensure learning Conditions Exist In the proactive pursuit of team learning as a goal of the project, there are five conditions that are necessary for team learning to occur: ●
Teams must be designed for learning.
●
Individuals must have concrete ways of sharing knowledge.
●
Leaders must reinforce the importance of learning.
●
Teams need to be presented with motivating challenges.
●
A supportive learning environment must exist.
These are described in the following sections. SEE AlSO
Design Teams for Learning As we discussed in the previous chapter, managers and others often have significant influence over the composition of a team. They should use this responsibility to create teams from individuals who, when combined, will be more than the sum of their parts. These individuals should be diverse enough that new, creative ideas are generated but not have so many differences that the team fails to jell. The best thing a manager can do for a newly functional team is to allow it to remain together for as long as possible. A team needs time to learn how to work well together; constantly altering who is on the team forces the team to start this process over each time a new member is added or leaves. Richard Hackman, a Harvard professor and authority on teamwork, cites a study that indicates that “R&D teams do need an influx of new talent to maintain creativity and
In the next chapter, Chapter 12, “Leading a Self-Organizing Team,” we will see how managers and other leaders should use this influence and responsibility.
Download from www.wowebook.com
210
Chapter 11
Teamwork
freshness—but only at the rate of one person every three to four years” (Hackman and Coutu 2009).
Find Concrete Ways to Share Knowledge
SEE AlSO Communities of practice are described in Chapter 17, “Scaling Scrum.”
Lew Platt, former CEO of Hewlett-Packard, once said, “If HP knew what HP knows, it would be three times more profitable.” For companies to be successful, teams must have concrete ways to share what they have learned not just with each other but with the rest of the organization as well. One way Scrum teams attempt to do this is through Scrum’s many built-in communication forums. Daily scrums disseminate information among the members of one team and possibly a few additional attendees; sprint reviews typically spread knowledge a bit further, especially if they are attended by stakeholders and members of other teams; and, in large organizations, the scrum of scrums allow teams to share information with representatives from all other Scrum teams. Scrum teams also have tools designed to help them share knowledge. Wikis and big visible charts give an at-a-glance view into the current state of the sprint and the project among team members and any who view it. Beyond these communication devices, high-performing Scrum teams find ways to talk with people on other teams directly. It is common, for example, for database developers to talk with other database developers and for user interface designers to talk to other user interface designers. In many environments these conversations are entirely informal and unplanned, but that does not need to be the case. Large Scrum projects and departments often form communities of practice, where groups of like-minded or like-skilled individuals can meet regularly to talk and share not only common problems but also the solutions they have discovered. Communities of practice are a wonderful means of sharing knowledge among teams.
Exhibit Behavior That Reinforces Learning Team members will interact in ways they see modeled by those they consider leaders in the organization or to their team, including product owners, any functional managers to whom team members report, and other executives and managers in the organization. To foster the right kind of behavior, then, team and organizational leaders should demonstrate the type of learning behaviors they would like to see on their teams. For example, I recently attended a meeting at which a team and its product owner, Michael, were pitching a new product idea to an executive committee. One member of this committee, a VP named Sean, was particularly adept at questioning Michael and the developers. He asked hard questions intended to help the team (and the other committee members) identify holes in the product plan. Sean was not grilling Michael to make him squirm or to shoot down his ideas. His
Download from www.wowebook.com
Foster Team Learning
211
questions (Can you give me three reasons why a prospect would buy our product instead of a competitor’s? Would those reasons be sufficient?) were designed to initiate a dialogue in which he engaged as an active participant. Because Sean—a senior leader in the company—was sincerely willing to learn during this dialogue, his behavior created and reinforced similar learning-conducive behavior in those who witnessed it. Beyond asking questions that lead to a sincere, learning-focused dialogue, Edmondson, Bohmer, and Pisano identify three additional behaviors leaders should exhibit to reinforce learning: ●
●
●
Be accessible. Leaders need to be available to team members rather than locked away behind closed doors, three floors up. Ask for input. Asking team members for input is a sure way to let them know that their opinions are valued and desired. If you ask them for input into decisions you need to make, they will be more likely to do the same of each other. If you ask the team for input, be sure later to demonstrate how that input was used or why it couldn’t be acted upon. Serve as a “fallibility model.” By admitting your own mistakes, you demonstrate to others that bugs, bad decisions, and problems can be discussed without repercussion (2001).
Give Teams a Motivating Challenge The way in which a challenge is presented to the team influences how team members will respond to it. Imagine a product owner who needs a certain set of features delivered by a firm deadline that appears to be impossible. The product owner could present this challenge to the team as a fait accompli: “I need these features by that date and there’s no flexibility. Make it happen.” This isn’t how Curt, a product owner, presented a similar challenge to his southern California team. Instead, Curt first acknowledged the difficulty of the task he was about to put before the team. He then outlined what was needed and by when. Without any false tone of doom or threat of penalty, he explained the importance of achieving the goal. He concluded by emphasizing the importance of each person to achieving the goal. Five months later the team delivered enough functionality to avoid the initial crisis, which bought them another six months to deliver the full release. In the first situation the product owner threw a problem over the wall at the team. In the second, Curt acknowledged the difficulty of the challenge but maintained a positive outlook on the team’s ability to rise to the occasion. He then worked with the team to find a suitable initial release—just enough to keep the company’s largest customer happy and as much as the team could do. This helped establish a positive environment on the project, which led to the dialogue and discussion necessary for learning.
Download from www.wowebook.com
212
Chapter 11
Teamwork
Create a Supportive Learning Environment I remember being less than impressed when I took my daughter, Delaney, to her first day of preschool. The place looked a mess. Rather than one big bookshelf or two to hold all the school’s books, there were lots of small bookshelves all over the large room that would be my daughter’s home two mornings a week. There were no orderly rows or circles of chairs; instead, chairs, bean bags, cushions, and small couches were all over the place. Every inch of wall space was covered with posters, large cut-out letters, maps, or something similar. My wife explained that while the place looked messy to me, it was actually a well-organized space intended to be conducive to learning by four- and five-year-olds like Delaney. Similarly, it is up to leaders and managers in aspiring Scrum organizations to create supportive learning environments for their teams.Whereas creating a learning environment for little kids consists mostly of arranging the physical layout of the room (being sure a book is never far from reach), creating a learning environment for a Scrum team will involve organizational, social, and psychological changes. Organizations with a supportive learning environment exhibit the following characteristics: ●
●
Psychological safety. One of the best ways to learn is to try something, make a mistake, and then do it a better way. Other ways to learn include asking questions and engaging in debate. If someone doesn’t feel safe doing these things, they won’t. Product owners, ScrumMasters, functional managers, and others must find ways to create a feeling of safety around these activities; otherwise, team members will not risk trying new things for fear of failing, looking stupid, or suffering similar repercussions. Creating psychological safety is particularly important when transitioning to Scrum because of the expertise shift that occurs. It’s likely that certain individuals are accustomed to being viewed as experts, perhaps in the technology, the code base, or the domain.Transitioning to Scrum disrupts existing expertise and introduces the need for new expertise. Organizational leaders (and, in fact, all team members) need to create psychological safety so that, for example, the company expert on multithreaded Java programming is willing to ask rudimentary questions about automated unit testing. Failure to do so usually results in the expert resisting the transition. Appreciation of differences. Individuals on a team need to appreciate rather than attack differences. When everyone has the same background, the same skills, approaches a problems with the same style, or so on, the result can be a lack of creative thinking. As Harvard professor and author of Leading Teams, Richard Hackman puts it: “Every team needs a deviant, someone who can help the team by challenging the tendency to want too much homogeneity, which can stifle creativity and learning. Deviants are
Download from www.wowebook.com
Foster Team Learning
●
●
❑
213
the ones who stand back and say, ‘Well, wait a minute, why are we even doing this at all? What if we looked at the thing backwards or turned it inside out?’” (Hackman and Coutu 2009) Openness to new ideas. Scrum teams are often asked to meet difficult challenges: develop this faster than we’ve done similar projects before, do that project with fewer resources, and so on. To rise to meet these challenges, team members often have to look beyond the tried-and-true. An openness to new ideas—and occasionally to the temporary failures and setbacks this creates—is vital. Time for reflection. Teams need time apart from the fast pace of iterative development in which to reflect upon what they are doing and how they are doing it. Real-time learning in action is the best way for a team to learn, and this is helped by daily scrums. But most teams find that somewhere between a half hour and a half day every sprint spent finding ways to improve is time well spent. If a team includes members who are expert at some aspect of the current way of working but who feel threatened by the changed technical practices Scrum inspires, this is an excellent time to bring in an external coach. The lead developer who is struggling to get her head around test-driven development and mock objects often feels less threatened learning this new skill from an outsider than from someone on the team whom she is normally mentoring.
ThINgs TO Try NOw
Eliminate Knowledge Waste While establishing an environment conducive to team learning, we must simultaneously strive to eliminate organizational impediments that cause knowledge waste. Knowledge waste refers to either lost opportunities to learn or learning less than we could have from a situation. Lean development expert Allen Ward divides knowledge waste into three categories: scatter, hand-off, and wishful thinking (2007). Scatter happens when anything breaks the flow of work. At the individual level, scatter refers to the many things that distract us or break our day into small pieces, making it difficult to do substantive work. At a project level, scatter occurs when the team is interrupted, such as when it is asked to stop what it’s doing and work on a different feature, when a person is added to or removed from the team, or when the team is harassed for updates on its progress toward an urgent task. There are two main causes of scatter—barriers to communication and poor tools. Communication barriers can be physical, such as the 5,000 miles or two floors between team members. Barriers to communication can also, however, be
Download from www.wowebook.com
214
Chapter 11
Teamwork
the result of corporate policies (“all database change requests must be in writing”) or skill deficiencies, such as the inability of two groups to communicate because they lack a common vocabulary. Ed Catmull, cofounder of Pixar, makers of Toy Story; Finding Nemo; The Incredibles; Monsters, Inc.; and other movies, acknowledges these barriers. Getting people in different disciplines to treat one another as peers is just as important as getting people within disciplines to do so. But it’s much harder. Barriers include the natural class structures that arise in organizations: There always seems to be one function that considers itself and is perceived by others to be the one the organization values most. Then there’s the different languages spoken by different disciplines and even the physical distance between offices. (2008, 70) By poor tools,Ward was not specifically referring to the software products that are such a part of our day-to-day lives. The poor tools that cause scatter are the standardized practices that are so common in a typical development process. For example, one company I consulted to had failed to anticipate the effect of a change to the database shared by multiple applications. This led to a new rule that every new feature must be accompanied by a database impact report.The vast majority of application changes, of course, had no database impact, but this standardized report was required nonetheless. Rather than mandating that all projects complete a standard form, a more appropriate response would have been to clarify the responsibility of all project teams to consider and communicate impacts to the database. Responsibility for results, not process adherence, should be the goal. ❑
ThINgs TO Try NOw
In your next sprint retrospective, identify at least a dozen causes of scatter affecting your team. Pick two to work toward eliminating over the next month. Look for items that cause scatter within a single day and for items that create scatter across the span of a project.
Ward defines a hand-off as a separation of knowledge, responsibility, action, and feedback. Hand-offs occur everywhere you look in a sequential software development process. The results of analysis are handed off to architects who hand the architecture off to programmers. Programmers then hand off code to testers. Most written documents on a project are produced to enable a hand-off. Not all hand-offs are of artifacts, however. Holding a traditional project manager accountable for meeting project specifications and deadlines she didn’t contribute to is an example of a responsibility hand-off. Cross-functional teams became popular, at least in part, as a response to the trouble caused by hand-offs on traditional development projects. Think back
Download from www.wowebook.com
Encourage Collaboration Through Commitment
215
to the earlier section of this chapter, “Embrace Whole-Team Resposibility.” The main point of that section was that although there may be one person we look to for certain tasks, just about everything is the responsibility of the whole team. The more the whole team is involved and the more the whole team feels this shared responsibility, the fewer hand-offs there will be. By eliminating hand-offs we eliminate problems created by waiting and by the need to transfer knowledge from one person to another. Ward’s third category of knowledge waste, wishful thinking, is not simply optimism. Wishful thinking refers here to making decisions without adequate information to support those decisions. Late projects are the most obvious result of wishful thinking. Choosing a date, creating a specification, and hoping the project will run exactly as planned with no unexpected changes is the ultimate in wishful thinking. Discarded knowledge is a second type of wishful thinking. Discarded knowledge is the failure by teams to capture acquired knowledge in useful formats. When a team finds and fixes a rare bug but fails to add an automated test to prevent that bug from being detected later, it is discarding knowledge. It is wishful thinking for the team to think that the bug will never recur. It is hard to overstate the importance of team learning. I meet too many teams who are much improved over how they were before they adopted Scrum but that have failed to improve since. Continuous improvement is part of Scrum; failing to learn and wasting the knowledge gained are serious deficiencies.
Encourage Collaboration Through Commitment Tommy Lasorda, long-time manager of the Los Angeles Dodgers baseball team, has said, “My responsibility is to get my twenty-five guys playing for the name on the front of their shirt and not the one on the back” (LaFasto and Larson 2001, 100). Team learning will only get you so far in your quest to become a highperforming, agile team. To keep your self-organizing team working as a unit instead of a collection of individuals, you must constantly reenergize and focus it toward shared goals.To do this you must find ways to renew team members’ commitment to their purpose and to each other.There are a number of things you can do to build and nurture this kind of commitment. Involve widely. One of the most common complaints I hear from programmers, in particular, is that they do not want to be treated like “code monkeys.” They use this term to mean someone who is told exactly what to code and has had all creativity (and fun) stripped from the job.You can avoid treating developers like code monkeys by involving them in as many project activities as practical. This is why, for example, I advocate including all developers in product backlog story-writing
Download from www.wowebook.com
216 SEE AlSO For information on conducting a storywriting workshop, see User Stories Applied for Agile Software Development (Cohn 2004).
Chapter 11
Teamwork
workshops.The broader the picture of the project and product that team members see, the more fully engaged in the project and committed to it they will be. Find an igniting purpose. London Business School professor Lynda Gratton uses the term “hot spot” to refer to a place and time when “working with other people was never more exciting and exhilarating and when you knew deep in your heart that what you were jointly achieving was important and purposeful” (2007, 1). For a hot spot to form, you need what she calls an “igniting purpose,” which is “something that people find exciting and interesting and worth engaging with” (13). In the mid-1990s I worked at a company that had the igniting purpose of revolutionizing healthcare by changing how patients interacted with providers. This company was built around nurses in a call center, supported by developers writing systems for them. Every week the head nurse sent an e-mail summarizing important information for the week. Much of it was mundane: how many new clients were added, how many calls were answered, the average time to answer calls, and so on. What wasn’t mundane and what stoked the company’s igniting purpose was the summary of patients’ lives we’d saved. I remember one particular call the head nurse e-mailed us about. The caller was a man who had pain in his upper-left back. He wanted to know if he should go to a doctor or just take ibuprofen. By asking a few questions and being guided by the expert system within our software, the nurse determined the caller was having a heart attack. She dispatched an ambulance to his house even before he hung up, thereby saving his life. An igniting purpose does not have to be as lofty as saving lives. It just has to be something that excites and interests the team members so that they are anxious to be a part of it. Tap into existing intrinsic motivation. Beyond seeking a teamwide igniting purpose, you should also feed team members’ existing motivations. These will differ from team member to team member, but a project that is structured such that each individual’s unique, personal goals are aligned with project goals will generate the desired commitment. Perhaps a Java developer wants to gain some experience with C#. Is there an opportunity to do that on this project? Perhaps a tester wants to gain some leadership experience. Can he be given responsibility to lead the effort to select a vendor who will develop some outsourced components? Beware the least motivated team member. One highly motivated and skilled individual often makes each of his teammates a little better. One unmotivated team member, on the other hand, can drag the whole team down with him. Christopher Avery describes the devastating effect of one bad apple.
In my experience when a freeloader comes into a team and can’t be rejected because of bureaucratic policy, the other hardworking
Download from www.wowebook.com
All Together Now
217
members of the team immediately and drastically reduce their work level and channel their attention and commitment to other parts of their lives. (Avery, Walker, and O’Toole 2001, 97) Help everyone understand their relevance to the goal. No one wants to feel superfluous or that they are making only ancillary contributions to a project. It is difficult for team members to fully engage and commit to a project’s goals if they do not feel their contributions are significant. Product owners are an obvious source for helping everyone feel important and relevant to the goal, but relevanceboosting comments can come from anyone on the team. Build confidence. While knowing that the challenge before them will not be easy, team members do want to feel confident they can achieve it. Confidence doesn’t come from making the goal easier but from belief in ourselves and our teammates. People enjoy working with those who boost their confidence. A confident team will commit to almost any goal.
Remember that creating commitment is not a one-time effort. Teams need periodic reenergizing to renew their commitments both to the project and to each other. In Teamwork Is an Individual Skill, Christopher Avery suggests that while calendar years and quarterly boundaries are good times to reenergize, “the best time to reorient a team is any time you notice that the sense of shared direction has been lost or that energy has decreased” (107). ❑
Does your team have an igniting purpose? Can all team members express it? Would each do so in roughly the same terms? If not, ask the product owner to facilitate a chartering session as described in the “Energize the System” section in Chapter 12.
❑
Do you understand what motivates every other person on your team? If not, find out. How? Ask.
❑
Do others understand your motivation? If not, tell them.
ThINgs TO Try NOw
All Together Now Creating the right sense of teamwork can be challenging. ScrumMasters can help by ensuring that the team embraces the concept of whole-team responsibility and whole-team commitment to deliver working software at the end of each sprint. The team might struggle at first to break long-held habits of specialization and hand-offs. Minimizing individual task assignments and doing a little bit of everything all at once in a sprint are essential to shifting from sequential development to working as a team. After a team is working well together and delivering what it has committed to during each sprint, the team deserves to feel pride and a sense Download from www.wowebook.com
218
Chapter 11
Teamwork
of accomplishment. Don’t fall into the trap, though, of being satisfied with merely being a functional Scrum team. Becoming a high-performing, agile team requires that you continue to learn and improve. Foster team learning, eliminate sources of knowledge waste, and keep your team’s collaborative spirit alive by eliciting its commitment and finding ways to renew it throughout the project. The next chapter looks at ways in which leaders can further influence selforganizing teams, leading them forward toward high performance and optimal productivity.
Additional Reading Avery, Christoper M., Meri Aaron Walker, and Erin O’Toole. 2001. Teamwork is an individual skill: Getting your work done when sharing responsibility. Berrett-Koehler Publishers. The premise of this book is that each individual needs to take responsibility for the performance of the team. Avery provides details and anecdotes about how any team member can improve the performance of the overall team. Katzenbach, Jon R., and Douglas K. Smith. 1993. The wisdom of teams: Creating the highperformance organization. Collins Business. An early classic on the subject of teams that has stood the test of time. Covers every aspect of teams including the stages they progress through, who should be on them, who should lead them, the role of management in working with them, and more. Larson, Carl E., and Frank M. J. LaFasto. 1989. Teamwork:What must go right/what can go wrong. SAGE Publications. The authors spent three years studying and interviewing 32 highly successful teams across a broad spectrum. Included were a cardiac surgery team, a team that climbed Mt. Everest, championship sports teams, an airplane design team, and even the team at McDonald’s that invented Chicken McNuggets. From this they distilled eight characteristics of a high-performing team.
Download from www.wowebook.com
Chapter
12
Leading a Self-Organizing Team
One of the earliest models for organizational change was put forth by Kurt
Lewin in the 1940s. In Lewin’s model, change is a three-step process: “unfreezing” the current situation so that change may occur, transitioning to a new state, and then “refreezing” the new state so that it persists. Many subsequent organizational change models are similar to Lewin’s in depicting extended periods of relative stability punctuated by brief times of transition. Although this may have been Lewin’s world in the early 1900s, the world today is much different. Change no longer happens in short spurts that interrupt long periods of relative stability. Instead, rather than moving from one state of equilibrium to another, organizations in the 21st century operate under far-fromequilibrium conditions. Despite the turmoil and frenetic pace this leads to, there are benefits. An organization in equilibrium, and that seeks to return to equilibrium when pushed away from it, is one that resists change (Goldstein 1994, 15). Organizations that operate far from equilibrium become better suited to continuous change. As such, it is up to an organization’s leaders and change agents to keep the organization in these far-from-equilibrium conditions. Leaders do this by periodically agitating the organization. By stirring up, exciting or calming, pushing, shaking up, stimulating, and rearranging the organization, leaders are able to keep the organization from achieving an equilibrium from which it will resist moving. This keeps the organization on its toes and better able to respond to or create change. Agitating the organization becomes a fundamental way leaders and change agents continually move the organization toward becoming more and more agile. So, who are these leaders and change agents? It’s difficult to answer that without knowing the specifics of a given organization, but when I say leaders, I am addressing anyone with influence or authority over the team. That includes managers, who can hire and fire team members. It includes the product owner, who determines the scope of the product or system to be developed. It includes the ScrumMaster, who can introduce small but significant changes to the process. And it includes organizational change agents working to introduce or spread Scrum.
219 Download from www.wowebook.com
220
Chapter 12
Leading a Self-Organizing Team
In the following sections, we look at how these leaders, managers, and change agents can influence the self-organizing path of a team or company. You’ll learn about three conditions that must exist for self-organization to occur and how leaders can alter those conditions.You’ll also learn how organizations evolve, and you’ll encounter seven ways that leaders, managers, and change agents can exert influence on the evolution of their organizations.
Influencing Self-Organization Self-organization is a fundamental concept in agile software development. The Agile Manifesto includes the principle, “The best architectures, requirements, and designs emerge from self-organizing teams” (Beck et al. 2001).Yet a common misconception is that because of this reliance on self-organizing teams, there is little or no role for leaders of agile teams. Nothing could be further from the truth. In The Biology of Business, Philip Anderson refutes this mistaken assumption. Self-organization does not mean that workers instead of managers engineer an organization design. It does not mean letting people do whatever they want to do. It means that management commits to guiding the evolution of behaviors that emerge from the interaction of independent agents instead of specifying in advance what effective behavior is. (1999, 120) Self-organizing teams are not free from management control. Management chooses for them what products to build or often chooses who will work on their projects, but they are nonetheless self-organizing. Neither are they free from influence. Early references to Scrum were clear about this. In “The New New Product Development Game” from 1986, Takeuchi and Nonaka write that “subtle control is also consistent with the self-organizing character of project teams.” Then in Wicked Problems, Righteous Solutions in 1990, DeGrace and Stahl describe how managers exercise indirect control over a self-organizing team. To be sure, control is still exercised; but, it is subtle and much of it is indirect. It is exercised by selecting the right people, creating an open work environment, encouraging feedback from the field, establishing an evaluation and reward system based on group performance, managing the tendency for going off in many directions early on and the need to integrate information and effort later on, tolerating and even anticipating mistakes, and encouraging suppliers to become involved early without controlling them. (159)
Download from www.wowebook.com
Influencing Self-Organization
221
A Scrum team’s job is to self-organize around the challenges, and within the boundaries and constraints, put in place by management. Management’s job is to come up with appropriate challenges and remove impediments to self-organization. That being said, the fewer constraints or controls put on a team, the better. If leaders overly constrain how a team solves the challenge given to it, self-organization will not occur. The team will shut down; because it has already been told so much about the challenge and how to solve it, it will wait to hear the rest. So how does an agile leader achieve the subtle balance between command and influence? One way is to understand how slight changes in three team-related conditions can have a tremendous impact on how teams organize, and thereby how they perform. These conditions are containers, differences, and exchanges.
Containers, Differences, and Exchanges In her doctoral dissertation, Glenda Eoyang describes three conditions that, when altered, influence how a team will self-organize: containers, significant differences, and transforming exchanges (2001). A container is some boundary within which self-organization occurs. Imagine you are at a movie theater that does not preassign seats. The physical boundaries of the theater form a container within which you and other filmgoers self-organize into seats. Another set of filmgoers are in the adjacent theater, and they have self-organized within their physical container. The two containers (theaters) are distinct, so filmgoers in one theater cannot be said to have self-organized with filmgoers in the other theater. Containers do not need to be physical. As the following examples illustrate, they can also be behavioral, organizational, and conceptual: ●
Everyone working on the San Jose campus
●
Everyone working in Building A-3
●
Everyone working in the software development department
●
Everyone programming in Ruby
●
Everyone who is Norwegian
●
Everyone who belongs to the Agile Alliance
●
Everyone on the Capricorn project team
Differences among individuals inside the container also influence how they will self-organize. Without differences among members of our Scrum team, it wouldn’t matter who does which work or whether the individuals interact. Because we would all be equivalently skilled in all ways, each member of the group would work in isolation. Fortunately, there always are differences among the
Download from www.wowebook.com
222
Chapter 12
Leading a Self-Organizing Team
individuals on a software development team. These include technical expertise, domain knowledge, power, gender, race, education, connections to others in the company, problem-solving approach, and so on. The types and degrees of these differences influence how a team self-organizes. Finally, transforming exchanges influence how a team organizes in response to a challenge. A transforming exchange is an interaction between members within a container in which one or more of the individuals is changed or influenced by that interaction. For example, I meet with my project’s product owner who answers my questions about how a feature should work. This is a transforming exchange because I leave with new knowledge. It is not always information that passes between individuals in a transforming exchange; it might be money, power, energy, or any number of other things. A team motivated by a conversation with its product owner has experienced a transforming exchange: Energy was created and passed to the team. What do these three conditions mean for leaders and change agents? By adjusting containers, amplifying or dampening differences, or altering exchanges, leaders can influence how a team or teams self-organize. This is one form of the subtle control mentioned at the start of this chapter. For example, suppose one team member, Jeff, is domineering and no one is willing to stand up to him. This team has self-organized—it has chosen to let Jeff make all key decisions. As the ScrumMaster for this team, you recognize that this will impede the team’s efforts to improve.You consider having a private conversation with Jeff, but that is unlikely to change much. You contemplate stepping in and overruling some decisions he makes, but if you do it once the team will expect you to continue to do so, which won’t be good. Stumped, you begin to think about the containers, differences, and exchanges that are influencing how this team has chosen to self-organize.You realize that you could influence the situation by decreasing the differences among team members. As a result, you decide to add someone else to the team who will sometimes stand up to Jeff. Or you may decide to exert subtle control over the team by altering the exchanges.To do so, you suggest to the enterprise architecture team that someone from the group attend key meetings. No matter the specific problem, if you see that the team has self-organized in a way that impedes it, it is your responsibility to find a way to agitate, stir up, or otherwise disturb the status quo, so that the team adjusts, hopefully reorganizing in a more productive way. In Facilitating Organization Change, Eoyang and coauthor Edwin Olson advocate exactly this type of approach. The role of the change agent is to use an understanding of the evolving patterns to shift the container, differences, or exchanges to affect the self-organizing path, to observe how the system responds, and to design the next intervention. The objective of this
Download from www.wowebook.com
Influencing Self-Organization
223
action-oriented experimentation is to anticipate, adapt, and influence, not to predict or control the behavior of the system. (2001, 16) “This doesn’t sound right. How can a team be self-organizing if some boss or change agent is controlling things from behind the scenes?”
OBJECTION
Self-organization does not mean a collection of individuals is free to do whatever it wants. The individuals self-organize around a problem that is presented to them by the organization. (“We want a product that does this.”) The containers, differences, and exchanges put in place by the organization influence, but do not determine, how a team organizes itself around the problem. Keep in mind also that a change agent is not fiddling with a team’s or project’s containers, differences, or exchanges for her own pleasure. The change agent is doing it as part of helping the team become the best that it can be.
Adjusting Containers Colin, a development director at a medical software company, was frustrated by one team’s inability to produce working software by the end of its sprints. He wasn’t disappointed with the amount of work being done each sprint; the team seemed to be doing a reasonable amount of work each time. He was frustrated because rather than finishing five items by the end of a sprint, the team would SEE ALSO instead be “half done” with ten. He knew this wasn’t how a Scrum team should The importance of finishing each sprint behave. with working software Colin and I discussed the situation and I presented the CDE (Container, Dif- is discussed in Chapter ference, Exchange) model. Colin felt that the right people were talking and that 14, “Sprints.” he didn’t need to change the current exchanges or introduce new ones. We discussed differences among team members and agreed that one possible remedy was to move an experienced agile developer onto the team. Such a developer would be able to help the team understand the problems with how it had been working. Unfortunately, there were no experienced agile developers available for this team. SEE ALSO In discussing the containers that enclosed this team, Colin realized that a The merits of feapossible solution was to expand the team’s responsibilities. Contributing to its ture and component teams are described challenges in finishing work, he decided, was the fact that this team was depen- in Chapter 10, “Team dent on low-level functionality being developed by another team. Colin decided Structure.” to merge the two teams. By merging them, he could make the combined team entirely responsible for work that used to span two teams. This would eliminate
Download from www.wowebook.com
224
Chapter 12
Leading a Self-Organizing Team
one opportunity for excuses about why something wasn’t finished by the end of a sprint. In a later e-mail to me, Colin described his thought process. Only part of their problems were caused by delays waiting for the other team. But they’d become accustomed to leaving product backlog items half finished. By adding responsibilities and new members to the team, it would be a chance for me to re-stress my expectation that having a few things done at the end of a sprint was better than having more things started. Colin’s approach of expanding the responsibilities to expand the container is just one possible way of adjusting containers to influence the team. It and some others are summarized in Table 12.1. TAblE 12.1 Ways to use containers to influence how a team selforganizes.
Change the number of people on the team. Change who is on the team. Introduce a new container, such as a community of practice. Give the team more or less responsibility. Change the team’s physical space. Give team members more or less space. Remove or lower cubicle walls. Move everyone together on the same floor. ❑
List all of the containers that members of a team work within. Do the containers seem appropriately sized and scoped? Are there too many? too few?
❑
For each container, decide if it has a positive, negative, or neutral impact on the team’s performance.
❑
Identify the container that you think currently exerts the most influence on the team. Should changes be made to that container?
ThINgs TO Try NOw
Amplifying or Dampening Differences Carey, a development director who initiated her company’s adoption of Scrum, was troubled by a recent but sustained drop in velocity on one of her teams. The quality of its work remained high, but the team was getting less done now than it was a few months ago. During regular, 30-minute, one-on-one meetings she had with each of her employees, she asked some members of this team why they thought this had happened. She followed that up by attending the team’s next sprint retrospective. What Carey learned was that the team had made a few ill-considered architectural decisions six to nine months back. She put together what she learned
Download from www.wowebook.com
Influencing Self-Organization
225
from the retrospective, her monthly team member meetings, and what she already knew of team member personalities. Carey concluded that while some bad decisions are inevitable, some of this team’s bad decisions were the result of team members not adequately questioning one another. I had previously introduced Carey to thinking about containers, differences, and exchanges as a light-touch way for her to guide her teams. She told me later that she had used the approach in this situation. By thinking through the CDE model, Carey knew that insufficient differences existed between team members. She decided that she could best help this team by amplifying those differences. She did so through one of my favorite techniques: She asked a lot of probing questions. Carey had always been a hands-off director, but she decided this team needed more of her attention. She began to drop by when she saw the team holding impromptu meetings. During these meetings she asked questions intended to pull out dissenting opinions. She asked questions such as the following: ●
What alternative approaches have you considered and rejected before accepting this one?
●
What could go wrong with this approach?
●
What has to go right for this approach to work?
●
What could make us regret this decision?
●
Is there any information we don’t have that would help us be sure of this?
Even when Carey agreed with the prevailing opinion, she asked hard questions, poking for flaws and hoping others might voice even better opinions. Another good way to amplify differences is to change how the team makes decisions. For example, if a team currently makes decisions by a majority vote, ask members to require consensus for the next two sprints. Do the opposite if they currently require consensus.These and other approaches for dampening or amplifying differences are shown in Table 12.2. Introduce a new team member with significantly more power, experience, knowledge, or so on. Ask hard questions of the team to ensure different viewpoints are heard. Change the team’s decision-making style.
TABLE 12.2 Ways to amplify or dampen differences to influence how a team selforganizes.
Encourage dissenting viewpoints.
Download from www.wowebook.com
226
Chapter 12
Leading a Self-Organizing Team
❑
For each way in which team members differ (such as technical knowledge, domain knowledge, industry experience, tenure with the company, respect, problem-solving style) rate the differences from one to ten. From this, do team members appear too different? too similar?
❑
Identify one difference that if amplified would improve team performance. Could someone be added to the team who would amplify that difference?
❑
Identify one difference that if dampened would improve team performance. Could someone be removed from the team who would dampen that difference?
ThINgs TO Try NOw
Altering Exchanges A leader or change agent in the organization can also influence a team by altering the exchanges in which team members participate. Alejandro, a technical lead at a video game development studio, was attending his third sprint review of the day when he noticed a problem. Each team included an artificial intelligence (AI) programmer. The AI programmers were responsible for the behavior of the bad guys who would attack the player in the game. Alejandro picked up on statements in the sprint reviews that told him each team was programming its AI a bit differently. Not only would this lead to inconsistent game play, but it was also a duplication of some of the effort. I met Alejandro after he had encountered and solved this problem. His solution was to introduce a new exchange. Because the AI programmers were not talking to each other often enough, Alejandro decided the AI programmers should meet once a week with no one else present. Although not one of the AI programmers himself, Alejandro had enough personal authority in the organization that he was able to convince them this was a good idea. During a two-week sprint, AI programmers met on the day after sprint planning so that each would be aware of what the others had committed to and would be working on. A second meeting was held around the start of the second week, giving them a chance to compare progress and expectations. Alejandro introduced a community of practice, a group of like-minded or like-skilled individuals. We saw the use of communities of practice in Chapter 4, “Iterating Toward Agility,” as the basis for the organization’s Enterprise Transition Community and the improvement communities that help the organization adopt Scrum. We will see them in more detail in Chapter 17, “Scaling Scrum.” In addition to introducing a community of practice, additional techniques for altering exchanges are shown in Table 12.3.
Download from www.wowebook.com
Influencing Evolution
227 TAblE 12.3
Add or remove people from an exchange.
Ways to alter exchanges to influence how a team self-organizes.
Formalize or deformalize an exchange. Change how an exchange occurs (face-to-face conversation, document). Change the frequency of an exchange.
Now that we’ve looked at three factors that influence how a team selforganizes around the challenge it is given, let’s look at ways leaders can keep the team or company evolving over time. ❑
Who outside the team do you wish the team would talk to more often? Is there a way to encourage such exchanges?
❑
Diagram the intensity of interaction among team members. Draw a circle for each person. Then draw lines between pairs of team members who interact. Use color or thickness to indicate intensity or frequency. Do you see any problems?
❑
Observe the team carefully for a sprint: Are the right people involved in all exchanges? Should some exchanges involve more (or fewer) people?
ThINgs TO Try NOw
Influencing Evolution Many years ago I worked for a CIO, Jim, who was well-known in the company for frequently reorganizing his department. A joke made the rounds that if you didn’t like Jim’s current organization, you should just wait a day. He didn’t reorganize us daily, but it did feel that way at times. Jim’s reorganizations are just one example of how the company today is not the same as the company last week. Companies evolve. Organizational evolution comes in response to environmental factors, competitive forces, strengths and weakness of employees, and other influences. Evolution is the result of three elements: variation, selection, and retention. Philip Anderson explains the connectedness of these three elements with the example of the giraffe. Through a random mutation a giraffe is born with a longerthan-normal neck. This is variation. The longer neck helps this particular giraffe reach food that other giraffes cannot. This makes that giraffe more likely to breed successfully, which is known as selection. Finally, the giraffe passes the gene for longer necks to its descendants, which is known as retention (1999, 120–1). Organizations also evolve through variation, selection, and retention. An organization needs sufficient variation among employees, teams, processes, and the like so that a variety of results can be achieved. There must also be a sufficient
Download from www.wowebook.com
228
Chapter 12
Leading a Self-Organizing Team
definition of success so that employees can distinguish between variations that lead to desirable outcomes and those that do not. In effect, variation and selection lead to someone in the organization noticing that “when we did more of suchand-such, it led to better results.” Finally, there must be sufficient mechanisms in place to reinforce behaving in the new, better way. If culture or human resources policies run counter to a new way of behaving, the new way will not be retained. Leaders and change agents do not sit idly by while their organizations evolve. Instead, they help guide the organization’s evolution through variation, selection, and retention. Self-organization proceeds from the premise that effective organization is evolved, not designed. It aims to create an environment in which successful divisions of labor and routines not only emerge but also self-adjust in response to environmental changes. This happens because management sets up an environment and encourages rapid evolution toward higher fitness, not because management has mastered the art of planning and monitoring work flows. (Anderson 1999, 119) Phillip Anderson suggests seven levers that leaders can use to guide an evolving organization. These are summarized in Table 12.4. We have already covered choose people (similar to altering containers or amplifying differences) and reconfigure the network (similar to exchanges) in our earlier discussion of the CDE model. The remaining levers form the basis for the sections that follow. TAblE 12.4 Techniques a leader can use to influence how an organization evolves.
Select the external environment. Define performance. Manage meaning. Choose people. Reconfigure the network. Introduce vicarious selection systems. Energize the system.
Select the External Environment Self-organization and evolution occur in response to the environment in which the team works. Leaders can have a significant amount of influence on that environment. By environment I mean more than simply a team’s physical work space. There are many more important environmental factors under the influence of
Download from www.wowebook.com
Influencing Evolution
229
leaders. Leaders, for example, control or influence the business the organization is in. They determine the organization’s approach to innovation: Is the company an innovator or a fast follower? Leaders also control the type of projects to be worked on and the rate at which new projects are introduced to the organization. Each of these factors will influence how an organization evolves and adapts. Julie was the general manager of a large division of a software company. She was responsible for approximately half of her company’s 500 developers. Scrum began in a grass-roots manner within her division. When early results proved promising, she initiated a plan to spread Scrum to all teams within a year. As part of doing this, Julie also slowed the flow of new projects into the organization. This wasn’t because Scrum teams were developing more slowly; they were, in fact, developing quickly. But her early experiences with Scrum helped her realize that the organization was trying to do too many projects at the same time. Experiences SEE AlSO with her initial Scrum teams had proven to her the benefits of allowing people to The issue of doing be dedicated to one or possibly two teams. To achieve that, she needed to match too many concurrent projects is discussed the flow of incoming projects more closely to the rate at which projects were be- in “Put People on One Project” in Chapter 10. ing completed.
Define Performance Organizations and organisms evolve to fit their environments. According to the principle of selection, those traits most likely to help an individual or group survive in the organization will be the ones retained. It is the organization’s leaders and managers who define what traits help groups or individuals survive. If agile values such as openness and transparency lead to survival in the form of promotions and public praise, those behaviors will be the ones individuals select. Leaders and managers can exert a great deal of influence in how they define successful performance. For example, they define the organization’s attitude toward trade-offs between short- and long-term performance. An organization that favors long-term success will be more likely to invest in training, support working at a sustainable pace, be willing to allow employees time to explore novel ideas, and will not exchange meeting a near-term deadline for unmaintainable code.
Manage Meaning Individuals in a self-organizing system evolve in response to the messages they receive. Messages can be generated from within the system itself or fed into the system from outside it. Managers and leaders manage the meaning of these messages by providing context to help employees interpret the messages. Much of this context is provided in the stories, myths, and rituals that leaders repeat. Leaders select and tell stories through which they wish employees to interpret current situations.
Download from www.wowebook.com
230
Chapter 12
Leading a Self-Organizing Team
I recall my first (and last) day with what was to have been a new client. The development director tried to impress me by saying, “Every night at 5:00 p.m., the general manager goes outside and counts the number of cars in the parking lot. He’s going to do that every night as long as there’s a problem.” This story was rapidly becoming part of the corporate folklore. It was being told so that people would know what type of behavior was expected and accepted by the new general manager. I knew that if the general manager had this attitude, this company’s Scrum adoption was doomed. I couldn’t resist trying to reframe the story to support the behavior I hoped to see: “That’s wonderful,” I said. “I can’t wait to meet him. Any boss who would go into the parking lot at 5:00 p.m. and count the number of people who are still there so he can send them home is someone I want to meet.” My attempt fell flat, and my later meeting with the general manager fell even flatter. Even after I pointed out the environmental problems inhibiting the company’s Scrum adoption, the general manager had no desire to send a different message.
Introduce Vicarious Selection Systems The primary selection system that should govern organizational evolution is longterm market success. Products that generate profits should displace products that do not; team structures that lead to profitable products should displace those that do not; and practices that lead to profitable products should drive out those that do not. This, of course, takes years. Additionally, with many changes occurring in the organization simultaneously, it is impossible to fully isolate the effect of one variation.To accelerate and improve the rate of evolution, managers can introduce vicarious selection systems. A vicarious selection system is a process for selecting desirable projects, products, or behaviors but that does so without the lengthy feedback of a marketdriven selection system. Google’s policy of allowing developers to spend 20% of their time on projects of their own choosing is a vicarious selection system. So is Google’s policy of allowing developers to move freely between teams and projects “any time they want, no questions asked” (Yegge 2006). Because developers want to work on projects that are successful, ground-breaking, or otherwise desirable to Google, these are well-designed vicarious selection systems; they select in the short term the same projects, products, or behaviors that the market would have eventually found desirable in the long term. New projects that fail to attract attention are more likely to fade away. Or, in evolutionary terms, they will not be selected and retained. Vicarious selection systems are common in organizations. Many organizations have a system where one employee can nominate a coworker for a small cash bonus.When not used to encourage individual over team performance, such rewards can be useful at communicating the type of behavior desired in the organization.
Download from www.wowebook.com
Influencing Evolution
231
Unfortunately, not all vicarious selection systems are good predictors of the behavior that the market would select. Managers must take care when putting a vicarious selection system in place. James, a vice president of development, did not carefully consider one of the vicarious selection systems in use within his organization: praise. James thrived on chaos and always needed an emergency to handle. If emergencies didn’t exist, he always seemed able to stir one up. He excelled at handling emergencies and praised others with similar skills. James’s employees learned that their boss valued crisis resolution skills more than he valued skills that avoided crises in the first place.
Energize the System Teams and organizations rely on energy. Unless energy is pumped in, the team or organization will suffer from entropy. Managers and leaders provide the energy that sustains self-organization and evolution by inspiring and challenging employees. Challenges create gaps between a product’s current state and one that is envisioned, or between a group’s current and desired levels of performance.When a group is inspired to accept a challenge, it self-organizes around how to achieve it. In their book Teamwork, Larson and LaFasto focus on the power of presenting a team with a “clear, elevating goal” (1989, 27). In Hot Spots, Lynda Gratton came to a similar conclusion, saying that high-performing teams need an “igniting purpose” (2007, 3). Bill Gates’s famous “Internet Tidal Wave” memo from May 1995 created an igniting purpose within all of Microsoft. After describing some of the ways the Internet would change Microsoft’s products and business, Gates presents a clear, elevating goal, saying that Microsoft must “first embrace the Internet and then extend it.” He concludes with a final bit of motivation. The Internet is a tidal wave. It changes the rules. It is an incredible opportunity as well as an incredible challenge. I am looking forward to your input on how we can improve our strategy to continue our track record of incredible success. In Agile Project Management, Jim Highsmith stresses the importance of starting each project with a charter—a short, memorable vision of why the project is being undertaken or what it is to deliver. An appropriately chosen charter can provide team members with a clear, elevating goal and spark an igniting purpose in a memorable way. Highsmith provides three techniques for chartering a project: ●
●
Write a one- or two-sentence summary of the project or product (an “elevator statement”). Design the box the product would ship in (even if it would never ship in a box).
Download from www.wowebook.com
232
Chapter 12 ●
Leading a Self-Organizing Team
Write a product description constrained to fit on one page (2009).
In addition to these chartering tools, I occasionally use two others: ●
●
Write the imaginary press release you would like to accompany the product release. Write the product review you would like to appear in magazines.
One of my clients used the magazine review to great effect. This client develops antispyware software and had recently been designated as “runner-up” by a magazine in its product-of-the-year awards. For many products, being the second best in its class would be quite desirable.The second-best film of the year probably does well at the box office. But for a product that most users buy only one of, being second best is a problem. I advised the team’s ScrumMaster, Erin, to have all members involved in chartering the next version of the product by writing the review they would like to read. They did. The envisioned review was then hung in a variety of strategic places within the team’s work space. Six months later the new version of the product was released and was reviewed again by the same magazine. This time the product was given the Editor’s Choice award for best antispyware product. The team’s achievement was due in part to the ScrumMaster pumping energy into the system in the form of a clear, elevating goal that led to an igniting purpose. ❑
Make a list of all the vicarious selection systems in your organization. What formal and informal mechanisms influence or decide which projects, types of behavior, approaches, and so on succeed and are propagated into the future? Are any of these at odds with adopting Scrum? What can you do, and whose help do you need, to eliminate them?
❑
Is the team sufficiently energized? If not, create a project charter using one of the techniques outlined.
❑
Identify all individuals outside the team and the messages they are sending the team. Does the team have the right context in which to interpret those messages? Can you prevent the team from receiving inconsistent messages, especially about conflicting project goals such as quality, scope, and schedule?
ThINgs TO Try NOw
There’s More to leadership Than buying Pizza While watching a tennis match, you may notice that the player receiving the serve stays on her toes rather than standing flat-footed. This stance allows the player to be ready for any ball, whether the serve is left or right, deep or short. Leaders and change agents involved in transitioning an organization to Scrum want the
Download from www.wowebook.com
Additional Reading
233
organization always on its collective toes, ready to go left, right, or any which way. An organization on its toes is ready for whatever change confronts it. Such an organization becomes accustomed to continuous incremental change, is rarely surprised by change, and will be able to assimilate change more quickly. Leaders, managers, and change agents keep an organization on its toes by altering its containers, differences, and transforming exchanges. Leaders influence the direction in which an organization evolves by pulling one of Anderson’s seven levers. There is more to self-organization than buying pizza and getting out of the way. There are subtle and indirect ways through which leaders influence teams. It is impossible for a leader to accurately predict how a team will respond to a change, whether that change is an altered container, new standards of performance, a vicarious selection system, or so on. Leaders do not have all the answers. What they do have is the ability to agitate the organization toward becoming more agile.
Additional Reading Anderson, Philip. 1999. Seven levers for guiding the evolving enterprise. In The biology of business: Decoding the natural laws of enterprise, ed. John Henry Clippinger III, 113–152. Jossey-Bass. This is one of the better chapters in an excellent book. In it, Anderson lays out the principles of organizational evolution and presents the seven levers described in the “Influencing Evolution” section of this chapter. Goldstein, Jeffrey. 1994. The unshackled organization: Facing the challenge of unpredictability through spontaneous reorganization. Productivity Press. This is one of the earliest books on self-organization within corporations. Highlights include the multiple real and anonymized case studies of self-organization in a variety of companies. Olson, Edwin E., and Glenda H. Eoyang. 2001. Facilitating organization change: Lessons from complexity science. Pfeiffer. This excellent book builds on ideas in Eoyang’s doctoral dissertation on selforganization and applies them specifically to organization change. It presents the model that organizational change can be influenced through the containers, differences, and exchanges that are put in place or encouraged by change agents in the organization.
Download from www.wowebook.com
This page intentionally left blank
Download from www.wowebook.com
Chapter
13
The Product Backlog
The biggest question looming at the start of a project is, what exactly are we
building? We know the general shape of the system to be built. We may know, for example, that we are building a word processor. But there are always dark corners yet to be explored or issues yet to be settled about how specific features will work. Will our word processor include an interactive table design feature, or will tables be designed by entering values into a series of screens? When using a sequential development process, we try to start with a lengthy, up-front requirements-gathering phase during which the product is presumably fully specified. The idea is that, by thinking longer, harder, and better at the outset of the project, no dark corners will be encountered during the main development phase of the project. A Scrum team forgoes a lengthy, up-front requirements phase in favor of a just-in-time approach. High-level feature descriptions may be gathered early, but they are minimally described at that time and are progressively refined as the project progresses. They are documented in a product backlog, which is a list of all desired functionality not yet in the product. It is maintained by the product owner and kept in priority order, which is why a product backlog is sometimes called a prioritized feature list. Unlike a traditional requirements document, a product backlog is highly dynamic; items are added, removed, and reprioritized each sprint as more is learned about the product, the users, the team, and so on. In this chapter we look at three changes organizations need to make to effectively work with a product backlog. First, we look at the need to shift from writing about a product’s features to talking about them. Second, we see why it’s important for detail to be added progressively rather than for all of it to be documented up front. Third, we see why specification by example should be a team’s preferred approach to documenting a product’s functionality.The chapter concludes with an acronym for remembering key attributes of the product backlog.
235 Download from www.wowebook.com
236
Chapter 13
The Product Backlog
Shift from Documents to Discussions There is a grand myth about requirements—if you write them down, users will get exactly what they want. That’s not true. At best, users will get exactly what was written down, which may or may not be anything like what they really want. Written words are misleading—they look more precise than they are. For example, recently I wanted to run a three-day public training course. My assistant and I had discussed this, so I sent her an e-mail saying, “Please book the Hyatt in Denver,” and reminded her of the dates. The next day she e-mailed me, “The hotel is booked.” I e-mailed back, “Thanks,” and turned my attention toward other matters. About a week later she e-mailed me saying, “The hotel is booked on the days you wanted. What do you want to me do? Do you want to try another hotel in Denver? A different week? A different city?” She and I had completely miscommunicated about the meaning of “booked.” When she told me “the hotel is booked,” she meant, “The room we usually use at the Hyatt is already taken.” When I read “the hotel is booked,” I took it as a confirmation that she had booked the hotel like I had requested. Neither of us did anything wrong in this exchange. Rather, it is an example of how easy it is to miscommunicate, especially with written language. If we had been talking rather than e-mailing, I would have thanked her when she told me “the hotel is booked.” The happy tone of my voice would have confused her, and we would have caught our miscommunication right then. Beyond this problem, there are other reasons to favor discussions over documents. Written documents can make you suspend judgment. When something is written, it looks official, formal, and finished, especially when fancy formatting has been applied. Awhile back a client whose office I’d visited many times decided we would have an off-site meeting near the company’s office. The client sent me very detailed directions from my hotel to a country club where we were to meet: ●
Turn left out of your hotel onto North Commerce Parkway and go 0.4 miles
●
Turn left on SW 106th Avenue and go 0.2 miles
●
Turn right on Royal Palm Boulevard for 1.1 miles
●
Turn left onto Town Center
But I couldn’t turn left onto Town Center! After 1.1 miles on Royal Palm, I found myself at an intersection, but Town Center went only to the right. I had been told to turn left but that road was called Weston Hills Boulevard. I could see the Country Club to the left, and it seemed like I should turn there. However, the directions had been very specific and correct to this point so I continued
Download from www.wowebook.com
Shift from Documents to Discussions
237
forward. I went another two miles, watching the country club fade past me on the left. Eventually it was clear that the one instruction had been wrong, so I turned around and turned on Weston Hills instead of Town Center as was written in the directions. Suppose instead of these directions my client had simply said, “Head toward our office the same way you usually do. But when you see the country club, turn left. I don’t know the name of that street, but you can’t miss the country club.” With a written document, we don’t iterate over meaning as we would in conversation. A few years back I read a requirements document that described a Windows Explorer–like interface for managing folders of data. One requirement said, “The name of the folder can be 127 characters.” I was fairly certain that the requirement should have said that the folder name could be a maximum of 127 characters. But this was a bioinformatics application, and there were some unusual requirements such as text fields that could contain only the letters A, C, G, and T. A folder name of exactly 127 characters was a little surprising, but it was not impossible to fathom for this particular application. Because a specific length was given, I presumed it must have been chosen for a good reason. It may not have been. Yet the nature of a requirements document made me much less likely to question the “127” mandate than I would have been had the analyst and I been talking. If we had, our conversation would have been punctuated with exchanges such as, “So what you’re saying is…,”“If I understand you, that means…,” and “Doesn’t that imply….” These questions are intended to ensure that a transfer of understanding has occurred, that I understand what you’ve said. This iterating over meaning is missing in documents. Written documents decrease whole-team responsibility. One of the goals of shifting to Scrum is to get the whole team working together toward the goal of delivering a great product.We want to strip our development process of bad habits that work against this goal. Written documents create sequential hand-offs, which deprive the team of a unity of purpose. One person (or group) defines the product; another group builds it. Two-way communication is discouraged. Through the written document, one team member is saying, “Here’s what to do,” and others are expected to do it. This type of master-and-servant relationship is unlikely to create strong feelings of engagement on the part of the servants. Rather than feeling responsible for the success of the product, they feel responsible for doing what is described in the document. Discussions have the opposite effect: Whole team discussions lead to greater buy-in by all team members.
See AlSo Whole-team responsibility and the problems with hand-offs were covered in Chapter 11, “Teamwork.”
Download from www.wowebook.com
238
OBJECTION
Chapter 13
The Product Backlog
“I can’t get rid of all documents—my project has ISO 9001 (or similar) requirements, and everything has to be documented and traceable.” As I’ll describe in the next section, you don’t need to get rid of all documents. Eliminate those you can and keep others as short as possible, even considering whether they can be automatically generated. It is also important to recognize that you can document for posterity, while still relying on conversation during the project.
Don’t Throw the Baby out with the Documentation
See AlSo The section “Learn to Start Without a Specification,” later in this chapter will show the power of specifying behavior in test cases.
These weaknesses of written communication are not to say we should abandon written requirements documents—absolutely not. Rather, we should use documents where appropriate. Because the Agile Manifesto says that we favor “working software over comprehensive documentation” (Beck et al. 2001), agile has been misinterpreted as being against documentation. The goal in agile development is to find the right balance between documentation and discussion. In the past we’ve often been skewed way too far toward the side of documents. We should also remain aware that requirements documents are just one form of documentation that may exist on a project. Other artifacts will exist: Test plans, executable test cases, and even code document the behavior (or intended behavior) of the system. Because code and automated test cases will be produced to deliver a product, an experienced Scrum team learns to lean heavily on these artifacts. It will augment these forms of documentation with a written requirements document to the extent that such a document is helpful or required for regulatory, contractual, or legal purposes. A written requirements document will still be useful on many projects. Tom Poppendieck, coauthor of books on lean software development, has said that “when documents are mostly to enable handoffs, they are evil.When they capture a record of a conversation that is best not forgotten, they are valuable.”
Use User Stories for the Product Backlog User stories are the best way to shift the focus from writing about features to talking about them. A user story is a short, simple description of a feature told from the perspective of the person who desires the new capability, usually a user or customer of the system. User stories are often written on index cards or sticky notes, stored in a shoe box, and arranged on walls or tables to facilitate planning
Download from www.wowebook.com
Shift from Documents to Discussions
239
and discussion. As such, user stories strongly shift the focus from writing about features to discussing them. User stories typically follow a simple template: As a , I want <some goal> so that <some reason>. Other templates are possible. The following template, for example, is promoted as putting the value of the user story at the front: In order to , as , I want <some goal>. Having used both formats, I still prefer starting with as a . For reasons why, see http://blog.mountaingoatsoftware.com/advantages-of-the-as-auser-i-want-user-story-template. More important than the format of the written part of the user story, though, is that the conversations surrounding the story occur.
ote
User stories can be stored in a software tool (and there are many reasons why you may choose to do so), but whenever possible I prefer to write on simple 3" × 5" index cards. Although a user story is often written on an index card or sticky note, the text written there is only the beginning. The story card is not meant to be a complete feature description in the same way we would view “The system shall…” statements in a software requirements specification. Instead, the story card serves as a two-way promise between the development team and the product owner.Team members promise they will talk to the product owner before beginning work on the story; the product owner promises to be available when the team is ready to talk. The team’s promise to talk to the product owner before beginning work is important because it frees the product owner from concerns that every last detail must be written on the card. Indeed, this is one of the reasons for using such a lightweight, apparently unimportant medium as index cards. They serve as a constant reminder that the card does not need to hold all the details. The details will come out during conversations between the product owner and the team. The product owner’s reciprocal promise of availability is important because it allows the team to accept work into a sprint without having considered all details, because doing so is impossible anyway. The product owner does not need to be constantly available to the team, although this is helpful and does lead to higher productivity. Rather, what the product owner is promising is to be accessible; it won’t take two weeks to schedule a phone call, for example.
Download from www.wowebook.com
240
OBJECTION
Chapter 13
The Product Backlog
“I can’t possibly put my requirements on index cards.” That’s fine. Projects with distributed teams, very large teams, traceability requirements, or similar needs often require the use of a software tool. A good tool can improve high-level product planning, what-if scenario discussions, and broad communication. However, teams using software tools rather than pen-and-paper are much more likely to struggle with the shift from documents to discussion that Scrum requires. A team using a tool is much more likely to fall into a number of dangerous traps, including ● ●
●
●
Writing overly long feature descriptions Having only a subset of the team (business analysts) working to understand users’ needs Resisting the need to split user stories so that complete stories can be delivered within a sprint Holding on to stories that are no longer needed because it’s actually easier to keep them than to delete them from the tool
I would never go so far as to say you cannot be agile when using a tool to manage your product backlog. I will, however, say that you can be more agile with pen-and-paper than with a tool. Whenever this low-tech option is possible, use it. “I’m already good with use cases; do I really need to switch to user stories?” Use cases are an alternative method for expressing the functionality of a system. If you—and the rest of the team including the product owner— are good with use cases, there may be no reason to switch. However, use cases were intended to be much larger than is common for a user story. In UML Distilled, Martin Fowler says that use case originator Ivar Jacobsen expects about 20 use cases for a ten person-year project. That’s six person-months per use case. Fowler goes on to say he likes smaller use cases, perhaps having 100 for a ten person-year project. Assuming twoweek sprints, a six-person team would take more than two sprints for each Jacobsen-sized use case. The same team could finish just over two Fowler-sized use cases per sprint. This conflicts with data I’ve collected from dozens of Scrum teams and hundreds of sprints showing that six-person teams average six to nine user stories per two-week sprint. This indicates that Scrum teams do best with units of work that are smaller than a typical use case. So, although you can have use cases on your product backlog, be aware that you’ll probably want to write far smaller ones than were intended by their originator.
Download from www.wowebook.com
Shift from Documents to Discussions “We write back-end software that no users ever see, so user stories don’t make sense for us.”
241
OBJECTION
The word user in user stories makes the approach sound more limiting than it is. User stories have been successfully applied in all sorts of domains. A story that reads, “As the loan authorization system, I want to receive all data as valid, well-formed XML so that I don’t have to worry about syntax checking,” is perfectly valid. Additionally, although I find writing stories in the As a , I want <some goal> so that <some reason> format to be best, it may not be best for all projects. If that syntax doesn’t fit what you’re developing, write the backlog in another format. I’ve had success with Feature-Driven Development’s feature syntax of