Mike Cohn has been involved on Scrum Projects since 1995, and is a Certified Scrum Trainer and author of two books on Agile software development: Agile Estimating and Planning and User Stories Applied: For Agile Software Development. Matt Heusser talks with Mike about his earlier work on Agile planning and story-driven Development, along with his upcoming book, Succeeding with Agile.
Matt Heusser: How does your body of work fit inside of this big umbrella we call Agile?
Mike Cohn: I think of myself first and foremost as an advocate for unbranded Agile. I’m very much a Scrum guy at heart, though, but that’s because Scrum is really the minimal set of what’s needed to be Agile.
In the three books I’ve written—including my new one, Succeeding with Agile—I’ve written mostly about unbranded Agile. But in this newest book, I did find that I couldn’t be specific enough without using the Scrum language. Ultimately I made it a Scrum book, even though everything in it should be applicable to any Agile team trying to get better.
Matt: If you had to describe your recommendations for Agile estimating and planning while standing on one foot, what would you say?
Mike: Probably, “Quick, give me something to hold onto!" as I’m not very balanced. But to try to summarize it very briefly, the essential point in the book is that it’s critical to separate estimates of size from estimates of duration.
Most software developers don’t do that. But it’s a natural, real-world way of estimating. If I were to ask you how long it would take you to read a particular book, you’d first estimate how big the book is. You might think, “That’s a 600-page book with normal-size print.” Then you’d think, perhaps, of how many pages you read per hour, and you’d do some math. If you think you can read 60 pages per hour, you’d divide 600 by 60 and tell me 10 hours.
That’s what I mean by separating the estimates of size (“600 pages”) and duration (“10 hours”). When we are asked to estimate software work, we usually just guess—and that never works.
So the book goes through how to estimate in this manner, why it works, how to put together plans based on estimates created this way, and more.
Matt: You're known for championing the idea of user stories for Agile development; you even wrote a book on it. Can you tell us a little bit about the core idea, and how it is different, than, say, use cases or traditional software requirements?
Mike: User stories are short, simple statements that describe something a user wants added to the system. I recommend writing them in first person and I especially like writing them in the form of “As a <type of user>, I want <some goal> so that <some reason>.” For example, “As the vice president of marketing, I want to review the performance of past ad campaigns so that I can select which ones to run again.”
I’ve written about the differences in my User Stories Applied book so let me give you just two ways that user stories differ from use cases.
First, a use case is meant to be complete and fully descriptive. A written user story is intentionally incomplete; we augment the written part with conversations. The written story is a reminder to have those conversations.
Second, it’s very possible to write use cases at different levels and Alistair Cockburn describes wonderfully how to do this. The problem is that very few companies (at least that I’ve encountered) have the discipline to write use cases at different levels. Most settle on the user-goal level and write all their stories that way. With user stories it is much, much easier to move between large stories (which we call epics) and small ones because the format and amount of writing is no different. I find that this ability to move easily between big feature to small and back to big helps teams work incrementally, which is part of being Agile.
Matt: Another one of your books is Agile Estimating and Planning. Yet the Agile manifesto says to value responding to change over following a plan. How can you make planning 'Agile?' What does that even mean?
Mike: Agile planning involves acknowledging that all plans entail uncertainty. A plan is a point-in-time prediction about the future. So Agile planning is planning that accommodates change by recognizing it will occur.
Agile planning is done iteratively and incrementally, just like how we build products. We create an initial plan and refine it, adding more detail with each iteration.
Matt: Is it fair to say that you invented "Planning Poker?" Tell us about it.
Mike: Definitely not. Some of the teams I was working with in 1999-2000 realized that it would be better to agree on a sparse set of numbers to use when estimating. For example, we might say it’s 20 or 30 days to do something and have a good argument between those numbers. But we shouldn’t argue over 20 versus 21. They’re too close. To remember the valid numbers, those teams wrote the numbers on index cards. They used many of the rules in use today by most teams playing Planning Poker: Play until you come to consensus. You can’t play two cards and add them together. So those teams invented that way of playing.
Probably around the same time, James Grenning started doing something similar with teams he worked with. He had some slightly different rules; consensus wasn’t emphasized and you could play multiple cards. James also came up with the great name.
Matt: Tell me a story about a great Scrum success you've been involved with.
Mike: One of the biggest successes in all of Agile has to be Salesforce.com. I’m very proud to have been part of their transition (along with Pete Behrens who provided coaching). Steve Greene, Chris Fry, Parker Harris and the others who started that effort did an amazing job. They converted more than 200 engineers overnight.
What impressed me was Management’s courage to stick with it even when resistance and complaining came out of the woodwork the first few weeks. The company had gotten away from the quarterly releases they had been known for and did only one release in 2006. Salesforce.com went Agile around the end of the year and then in 2007 they did four releases. They delivered 94% more features than in the prior year and delivered 38% more per developer.
Most impressive was a measure they used called “cumulative value delivered,” which looked at the features delivered and when during the year a feature was delivered. A feature delivered in January gave more value to customers than one delivered eight months later. Using that measure, they delivered well over 500% more value to their users in the first year. That’s a success.
Matt: If you had to pick one common barrier that companies have when converting to Scrum, what do you suppose it would be? How do you recommend that companies overcome that barrier?
Mike: Stopping too soon. Too many companies adopt Scrum, see some good improvements but nothing compared to what they could really see. And when they stop improving, there is organizational gravity that pulls them right back to where they started. There’s a reason why the organization is the way it is before they adopted Scrum. Something about personalities, job descriptions, the industry, and so on shaped the company that way. Unless the organization achieves an “escape velocity” when adopting Scrum, they will get pulled right back where they started.
I’ve written about this, using the acronym ADAPT to describe the five activities that are necessary for an organization to really adopt Scrum or any agile process. ADAPT stands for Awareness, Desire, Ability, Promotion, and Transfer. It’s the last two that often do a company in.
To become Agile, we first need to become aware that a change is needed, that the status quo is no longer working. Once we’re aware, we need to develop the desire to actually change. Being aware that a change is needed and having the desire to do it are different.
Next, we need to develop the ability to work in a new, Agile way. Training, coaching, and mentoring can all provide this. Early successes need to be promoted to the rest of the organization so that other teams and projects develop their own awareness and desire.
Finally, the implications of being Agile need to be transferred to the rest of the organization. I don’t mean that the finance group needs to run sprints. But we need to make sure that other groups are not working at odds with the development group being Agile. An HR group that insists on forced ranking of employees, for example, is inconsistent with staying Agile over the long term. That’s a form of the organizational gravity I referred that can pull a company right back to where they started.
Matt: At various times you have done custom development, consulting and training, and served as a editor for Better Software magazine. What are you doing now? What kind of company could benefit from your services?
Mike: I’m finishing a new book called Succeeding with Agile: Software Development using Scrum. It’s taken me almost exactly four years to write. I think of it as a “second book on Agile.” After you’ve read one of the many good books that can get someone started, then pick up this book. It starts right in assuming that readers know what Agile and Scrum are and then goes through the things you need to do to help your organization get started and then get good at it.
At the end of each day of coaching or consulting for the past four years, I wrote down notes about what questions I was asked, what objections people threw at me, and what specific things I advised people to do. I’ve tried to put those into this book so, for example, there are specific sidebars for objections and things to try now.
Matt: What do you want to do next?
Mike: I have a goal of taking a day off sometime in 2010. Seriously, one day off. I’m the world’s worst workaholic but it’s because I love what I do. Sometime in 2010 I vow to take one day completely off. I won’t read about software development. I won’t turn on my computer or iPhone. All I plan to do is to start the day with a single tweet as that will help me hold myself to it. So follow me on Twitter and give me some crap on December 31, 2010 if I haven’t done it.