Bob wanted to chat. “We can’t seem to make this work”, he said. “I just don’t think scrum works for a team like ours.”

I had provided scrum training and a bit of coaching for his team a few months back to get them going. Their story was pretty common – they had been using kind of an ad hoc, waterfall style process. They weren’t very strict about it, but the traditional phases were all there – Product Managers writing requirements documents, the team building out the requirements, a few months of testing, then release. They had heard about scrum and how other teams had really liked it and after the training, they were pumped up about how it could be a much better process for them.

Now things seemed to be falling apart. The team was cheating on the definition of done to get features into the demo by the end of the sprint. “We’ve got to meet our commitments!” they stated. The daily scrums seemed more about rote reporting to the engineering manager, who was also the scrum master. Product Managers were regularly adding “emergency requirements” in the middle of sprints. Retrospectives had quickly devolved into a disengaged, repetitive finger-pointing session focused on what went wrong in the last sprint.

I handed Bob a copy of the book “Tribal Leadership” and asked him to read it and see if it gave him any insight into solving his problems.

“Is Tribal Leadership an agile book?”, Bob asked.

“Not exactly, but I think it will help your team be more agile”, I replied.

While our first inclination may be to jump in and fix each of these problems, I’ve learned that the problem probably is not about the team or about the process. In short, Scrum and other agile approaches are patterns of a Tribal Stage 4 and 5 culture, and if you’re working in a Tribal Stage 2 or 3, you’re going to struggle to make it work. Hit the break for more about cultural stages and some ideas for how to move the needle.

In Scrum Training courses, we do a scrum simulation that is pretty fun. Early on in the simulation, teams need to do sprint planning. If you’re familiar with scrum, you’ll know that the primary purpose of the Sprint Planning Meeting is for the team to arrive at a commitment to delivering a Sprint Goal and/or a set of Product Backlog Items during the Sprint. In the simulation, I push the teams pretty hard as far as the amount of time they get to do sprint planning. They usually have not quite enough time to really think through the plan, but I push them to make a commitment anyway. Under this pressure, most teams will smile and make a commitment to a plan in which they’re not very confident. This pattern of commitment with low confidence is a persistent challenge with many of the teams that I work with.

To help highlight this pattern of commitment without confidence, I use a facilitation technique called “Fist of Five”. As soon as the team has their commitment and I’ve looked around the table asking if everyone agrees (typically with everyone nodding, and often with at least one person’s body language screaming “no way” while they nod their head), I’ll ask them to think for a moment about their own personal confidence that the team will meet its commitment. I ask them to think of how confident they are on a scale of one to five, with one meaning not confident at all, and five meaning completely confident that barring some highly unusual circumstance, the team will meet the goal.

I tell them that once they’ve got their one to five number in mind, to simply put their fist in the air without revealing their vote, indicating that they’re ready. When all of the fists are in the air, I ask hem to reveal their votes together on the count of three. It’s always a revealing moment when some people who had passively nodded their heads to the team’s commitment hold up a two or three (or even a one). I then ask anyone with lower than a four to share their concerns about meeting the commitment. Often this results in a quick change to either the plan or the commitment itself to address the concerns of those that were not at a four or five. With the modified plan, we’ll re-vote until everyone is at a four or five.

I’ve found this facilitation technique to be useful in many situations where there might be tacit agreement to a plan without true confidence. I’ve used it in sprint planning meetings, release planning sessions, and even family discussions where we’re deciding what to do.

One of the biggest challenges for teams that are new to an agile approach is the change from what we call horizontal splitting to a “vertical slice” approach. Teams often aren’t used to thinking about problem decomposition this way, and I’ll hear comments like “well, our system is too complex”, or “we need to build really big features or our users won’t get what they need”. I always tell people that in the eight years I’ve been using this approach with hundreds of teams, I’ve only been stumped once to where we just couldn’t figure out how to slice something small enough to fit into a two week sprint. Well, we could have split it, but it didn’t add any value.

Below I’ll give a quick overview of why we prefer this approach and four simple strategies for splitting stories into small slices.

Several years ago during a break in a scrum training class, a student approached me and asked “what do you think will come after scrum?”. At the time, I had no answer for this question. The several teams that I had worked with that had used scrum had gotten so much benefit from it, and the rest of the organization needed scrum so badly (in my opinion), that I couldn’t imagine the need for anything different for product development.

Our organization, its environment, and my understanding of scrum have all evolved quite a bit since that day. If asked the same question now, I would have several possible ideas to discuss, depending on the team and the situation. Scrum would probably be the starting point for all of those conversations, but in many cases it would be augmented by something else, or a modified version of scrum, or some other agile approach like Kanban might be the right answer. There are still many parts of our organization that will benefit from adopting scrum, and teams that have been using it for years have all evolved their own implementation of scrum that suits them well. I don’t see scrum going away in organization any time soon. But if it did not evolve it would seem a failure to me.

Scrum was invented in the early 90s. We’re approaching its 20 year anniversary. In software terms, that is ancient. That it has survived and in many ways thrives is a testament to its broad applicability. Most successful scrum adopters will augment the framework with other technical and business practices like XP, Innovation Games, and Lean Startup. Particularly with teams that are taking a Lean Startup approach, I’m beginning to see the need for the way we understand the Product Owner role to evolve. I’m not sure how that evolution will happen, but I wouldn’t be surprised if on such teams, the PO role gets absorbed into the cross-functional team, doing both the idea validation with customers as well as development of the software that results from those discussions. I wouldn’t be surprised to see Product Backlog Items sorted into categories like “working software”, “idea validation”, and “technical validation”, rather than having a single Definition of Done for all product backlog items. While this could be a slippery slope for an org that is not agile in its culture, experienced agile teams can gain significant advantages from such an approach since the learning we need most doesn’t always require us to build working software to get an answer (check out the link to Lean Startup above for more on this idea).

With these thoughts in mind, I started wondering: “Is scrum too much of a sacred cow to evolve?” I’m not sure the answer to that question, but while thinking about it, the idea came to me that Scrum is not a sacred cow as much as it is the Model-T of agile.

Ford didn’t invent the automobile, that honor goes to Nicolas-Joseph Cugnot, Gottlieb Daimler, Carl Benz, or Wilhelm Maybach, depending on the book you’re reading. What Ford did was figure out a way to mass produce the automobile and sell it to the public at an affordable price such that it became an integral part of the lives of nearly everyone on the planet today.

Similarly, Jeff Sutherland and Ken Schwaber didn’t invent agile. The ideas of agile go back to at least the 1950s and probably before that, and are part of a family of new approaches to doing business that also includes movements like Lean, Theory of Constraints, and Six Sigma in manufacturing, Leadership Agility and Radical Management in management theory, and Lean Startup and Innovation Games for learning about customer needs. What Jeff and Ken did was figure out a way to mass produce Agile and sell it to the software industry in a way that has put agile on the map all the way up the C level of nearly every organization where software is important. Gartner famously predicted that by this 2012, 80% of software development will be done with an agile approach. The focusing of agile principles into a broadly applicable framework like scrum was a major innovation, just as the development of the Model-T assembly line was a major innovation in manufacturing.

The Ford assembly line was the exact innovation needed in its day. It persisted as the primary innovation in the auto industry until the 1970s when companies like Toyota evolved a newer approach that was more fit to customer’s evolving needs and provided higher quality products. It took decades for Ford to adopt similar approaches to catch up to Toyota. The question for me is this: at 20 years old, will Scrum see the need to evolve, and if so, how?

I have heard something multiple times this week, something that has me a bit concerned. The gist of the sentiment is something like this: “Oh, we discourage the developers from talking to customers; we don’t want them to be distracted from their work or to build a bunch of stuff that’s not in the plan”.

If you are working in an agile environment, this sentiment is outdated and harmful. We want developers to understand the customers and have empathy for them, and there is no substitute for direct interaction for building that understanding.Let me start by discussing the agile mindset regarding developer-customer interaction, then address the concerns expressed in the statement.

Cross Functional Teams

Agile, and specifically scrum, relies heavily on the idea that cross functional teams build better stuff. While product managers, sales people, and similar roles have responsibility for understanding the customer problem space and communicating it to developers, and agile teams typically have a Product Owner for a similar purpose, agile teams see that expertise as a part of their team, not a separate group. The most effective development teams try to learn as much about the customer problem space as possible. They make multiple small decisions every day about how to solve customer problems. Requiring all knowledge about those problems to be siloed in one person or group, and separating that group from the team creates an unnecessary bottleneck to the system. Once developers understand the Why of what they are developing, they become much more engaged, championing solutions that they think will best help their users.

Empathy

Great products emerge from experimenting in the overlap between the customer problem space and the technical possibility space. Developers know the second space well, but can only know the first space through experience either as an actual customer or through talking to customers. In my experience, great products are rarely built without the developers having a good idea of how their customers think, and more importantly, empathy for their problems. Chip and Dan Heath give a great example of this in their book Switch. They describe a Microsoft team full of brilliant developers. They were certain they were writing brilliant software, but when the usability group tested it with users, six out of 10 customers couldn’t figure out how to use the new features. When they told the programmers, their response was, “Where did you find six dumb people?” To increase empathy, Microsoft brought the programmers into a usability-testing lab and put them behind a two-way mirror. When the programmers watched a real customer struggle with the software they designed, the programmers immediately started thinking about ways of changing it. They were developing empathy for the users, and instead of contempt for their ineptitude, they developed an intrinsic desire to improve the software to better meet the needs of the customers.

But what about those concerns?

“…we don’t want them to be distracted from their work…”

In his book Radical Management, Steve Denning describes a shift in the way that we describe the high level goals of everyone at a company. He proposes that the primary goal of every employee is to “Delight Customers”, and that companies should set measurable goals for the company, executives, and employees related to this purpose. In this light, the idea that a developer’s work can be summarized as “writing code” feels almost insulting. Great software teams tend to spend the vast majority of their time figuring out what problems their users are facing, potential solutions to those problems, and the best technical approach to solving those problems. A small percentage of their time is spent actually typing code. In this environment, “their work” is not just writing code, but delighting customers.

“…we don’t want them to build a bunch of stuff that’s not in the plan…”

This one’s pretty easy to address in an agile environment. One of the simple rules of scrum is this: “if it’s not in the product backlog, we don’t work on it”. This provides transparency to the system.

Another potential concern:

“…developers will promise customers stuff that we can’t deliver…”

Sales people have been doing this for decades, so this isn’t much different <grin>. At least if developers promise something, they get to experience a direct consequence of their action, so the behavior is likely to improve.

So get out of the building, talk to customers, find out what’s driving them crazy. Scrum says that developers should spend 10% of their time on forward looking backlog refinement. What if they spent an additional 10% of their time talking to customers? Would we have a higher chance of delighting customers? It’s an interesting hypothesis. Anyone care to test it?

I had the opportunity to present an experience report about the Adobe Premiere Pro team’s adoption of scrum at the Agile 2012 conference today. I’ve uploaded the 10 page paper here, as well as the slides from the presentation. If you have any questions or comments, add them below and I’ll be happy to share more!

This week I am attending the 2012 Agile conference. Below is a quick recap of some highlights for me today:

In the morning, I started out attending a session but found it to be, shall we say, “uninspiring”, for me. Using the Law of Two Feet, I took off after about 15 minutes. The other sessions I had marked as interesting were full, so I wandered the halls.

Wandering the halls is awesome. I ran into LOTS of friends and met some new ones. Instead of sitting impatiently in the originally planned session, I ended up in great, engaging hallway conversations:

Getting picture taken with Luke Hohmann, excited about the release of Scrum Knowsy (sorry, too lazy to look up the character for “registered”). (BTW Luke, I’m still waiting for the cardboard version of Knowsy to be released. I’m all over it when it is!)

Catching up on our plans to put together a Lean class for agile practitioners with Robin Dymond and Bas Vodde

The famous quote that is the title of this post typically refers to how an individual’s approach needs to change as they move into management and then executive leadership. I like to think of it in a broader context. In a business where the environment is constantly changing, the approaches that were successful in the past are often less effective in the new, evolving work. Unfortunately, just like newly minted managers trying to succeed by doing everyone’s work for them, or new execs struggling to get out of tactics and into strategy, we often find it difficult to break our habits, especially when those habits have yielded success in the old context.

The same applies to teams attempting to break old habits. When teams try to adopt a new approach, like agile, or a framework, like scrum or Kanban, they often find themselves falling back into old habits shortly after the afterglow of training wears off.

Scrum defines a role to counteract this problem, that of the scrum master. In scrum, the scrum master helps the team be aware of situations where they are falling into old habits. They help the team recognize the possible consequences of that habit, and help them figure out new habits that will get them where they need to be.

Breaking old habits is really simple: Be aware of the habit, recognize a new possibility, then practice! Just like scrum, that simple approach is really difficult to do well. Having a defined role to help the team continually update their habits to more effectively address the current situation is extremely helpful. When we are choosing who should act as a scrum master, we should therefore keep in mind that this role is all about change management.

Scrum masters, how are you helping your team recognize that “what got them here won’t get them there”? What new habits are you helping them form?

At a recent workshop on agile requirements, I was surprised by the number of attendees who had been told that EVERYTHING in their product backlog had to be written in the form of a user story, and specifically in the format described in Mike Cohn’s great book User Stories Applied for Agile Software Development: As a <type of user>, I want <some feature>, so that <some goal>.

Now, I’m a huge proponent of writing user stories. So-called “Requirements” are the hardest part of software, and a user story, when done right, is a great way to make requirements a little bit better. Like many tools, they are most useful when used as intended, namely a quick way to describe a requirement with a bit of context, so that the team knows who to talk to for more details and what problem the feature is trying to solve. They are not the only tool we can use to make our requirements a little better, we have other things like Acceptance Criteria (actually an important part of a user story, the “confirmation” of the three Cs: Card, Conversation, and Confirmation). We have Story Maps, Use Cases, User Persona, and a host of other great tools to use. User Stories are probably the easiest to understand and teach, and maybe for that reason, they are the most common agile requirements tool. I love to use them, as well as the other tools.

But I am also lazy. I abhor anything that smells faintly of “busy work”. Writing a user story for every item in a product backlog smells pretty strongly of policy over pragmatism, or to put it another way, Processes and Tools over Individuals and Interactions. So jump the break and let’s look at when to use the User Story hammer and when to leave it in the toolbelt.