Chapter 12. Rock Breakers

There’s a nasty misassumption in common Agile practice: that there’s a single person responsible for writing stories and conducting all these story conversations. In the Agile process Scrum, that person is called the product owner. There are two big reasons, however, why this logic doesn’t work, and probably a lot of smaller reasons, too.

Big reason #1
There are too many conversations to have to move a story along its journey from vague idea to small, specific things to build. One person isn’t enough to cover all these conversations. And, if you set up your process so that one person has to be there, you’ll quickly see what a bottleneck that person can be, and likely will become.
Big reason #2
One person can’t come into the conversation with the expertise and diverse viewpoints it takes to arrive at a best solution. It takes the collaboration of people with different skills to really arrive at best solutions.

Requiring a single product owner to write all of the stories and be present for all story conversations doesn’t work.

Don’t get me wrong here. In my vision of good product development, the product owner is a critical leader. He keeps the product and whole team focused on moving the same direction.

The alternative is design by committee—a seriously bad anti-pattern where everyone gets an equal say in what we do. In a committee, when we only have time and resources to do one thing, we compromise. My ex-wife and I would often do this when choosing a restaurant. She wanted seafood, and I wanted Mexican food, and we’d settle on something neither of us liked. When a committee isn’t constrained by time and resources, we do it all. You’ve used software products like this: the product with more features than anyone can count, and where your biggest problem is finding the feature or remembering how to use it.

Effective product owners surround themselves with the people they need to make good decisions. They incorporate the expertise and opinions of many. But, in the end, when resources are constrained or the success of the product is at stake, they must make decisions. And there’s always someone who’ll be unhappy with that decision. My friend Leisa Reichelt puts it well: “Design by community is not design by committee…design is never democratic.”[12]

Valuable-Usable-Feasible

In his book Inspired: How to Create Products Customers Love (SVPG Press), Marty Cagan describes the responsibility of a product manager to identify a product that’s valuable, usable, and feasible. When I first read these words, I pictured in my head a simple Venn diagram where the solution we want is an intersection of what’s valuable to our company and our customers, usable by its users, and feasible to build given the time and the tools we have.

image with no caption

But what may not be dead obvious here is that, to really identify the solution in the center of that sweet spot will take collaboration between people who understand our business, our customers, our users, and the technology we use—and not just understand those things, but take responsibility for the success of the solution. These people actually speak with stakeholders, customers, and users; they actually design and test user interfaces; they actually design and test the code that makes the product work.

Remember that misconception in Agile development where a single product owner or product manager decides what to build? It’s rare if not impossible for a single person to possess the business, user interface design, and engineering skills necessary to find that valuable-usable-feasible sweet spot. That’s why the most effective organizations use small, cross-functional discovery teams that work together to find that right solution. As we discussed in the preceding chapter, think of discovery as rock-breaking work. It’s the work we do to move a story from a big vague idea to something small and specific we can build.

A small, cross-functional team led by a product owner orchestrates product discovery work.

The ideal size for the team is two to four people—dinner-conversation-sized so the members can quickly build shared understanding.

This team should be led by a product owner or product manager who has deep understanding of her business’s vision and strategy, and of the market her product serves. This core team includes someone who understands users, is comfortable working with them to learn about the way they work, and can sketch and create simple UI prototypes. It also includes a senior engineer from the team who’ll build the product. This person needs to understand the current architecture of the system and have insight into newer engineering approaches that could be used to solve tough problems. The real secret here is that the most innovative solutions often come from the engineer supplied with insight about the business problem and the users’ problems.

image with no caption

A cohesive discovery team is a powerful, fast-moving group of experts who can find problems and validate solutions quickly. I often hear the term triad used to describe this core team. On my recent visit to Sydney-based Atlassian, Sherif, whom you met in Chapter 8, pointed to three seats close together. He explained, “This is where the triad sits.” The area around the triad was filled with desks and computers where the rest of the team sat. I hear the term triad used when there are two people, four people, or even more on the discovery team, since it’s the three concerns—valuable, usable, and feasible—we’re talking about, not three bodies.

Support product owners with a core team that includes user experience, design expertise, and technical expertise.

A Discovery Team Needs Lots of Others to Succeed

An effective discovery coordinates collaboration with not only the development team, but also business stakeholders, subject matter experts, customers, and end users. It’s tough work that requires top-notch communication and facilitation skills, in addition to the specific expertise each team member brings in.

image with no caption

Now, here’s the real secret. For a product of any significance, it’ll take a team to get it built. To keep the vision of the product clear, ensure the solution the team builds is cohesive, and help keep everyone moving in the same direction, a good product leader is critical. The best of these leaders focus on helping everyone take ownership. In a healthy story-driven environment, you’ll see lots of story conversations going on all the time. And many of them won’t need the product leader there.

The Three Amigos

¡Three Amigos! is the name of a mediocre 1986 western comedy starring Steve Martin, Chevy Chase, and Martin Short. What does this film have to do with Agile software development and stories? There’s a more tactical triad of collaborators that’s valuable during story workshops. And I’m not sure who originally gave them the moniker “the three amigos,” but it appears to have stuck.[13] (I’m sure if more people had seen the movie, it wouldn’t have.)

You might recall that story workshops is the term I give to that last best conversation where we decide specifically what to build. It’s here where the three amigos come in.

During this last best conversation, we really need to consider lots of details and alternatives for implementation, so we’ll need a developer from the team who’ll build the software—ideally, one of the developers who will actually work on it.

For this small piece of software to be considered done, it’ll need to be tested, so we’ll need a tester in the conversation. A tester—the first amigo—will often bring a critical eye into the discussion, spotting things that might go wrong sooner than most. The tester is often the best at playing the “What-About” game.

And, of course, we’ll need someone who understands what we’re building, who it’s for, and why we’re building it, so we’ll need a member of that core product discovery team. That person is the second amigo.

At this stage we’re often not introducing a new feature idea. We likely already did that back in discovery. Now we’ve more or less committed to build something, so it’s important to understand specifically how that software should look and behave. So often the person involved in this conversation is a user experience designer or business analyst who’s worked through those details. This is your third amigo.

image with no caption

This group will work through the details and agree on specific acceptance criteria for the story. It’s out of this conversation that we’ll have our best estimate of how long it will take to build and test the software. And it’s often in this conversation that we’ll make decisions to split the story into smaller, “right-sized” development stories—those stories that take one to three days to build and test.

Story conversations happen continuously as we move ideas through software development. In every conversation, keep what’s valuable, what’s usable, and what’s feasible in the discussion. Include people who can speak to those things. Avoid design by committee by holding a product owner responsible for a successful, cohesive product.

Product Owner as Producer

If you work in a more traditional IT setting, the notion of a product owner may seem confusing. For example, if you help build critical systems for a bank, the bank knows its real products are the banking services it sells to its customers. If there is a person with the official title of “product manager,” it’ll be his job to look after a specific type of bank account or credit product. The computer systems that support that service offering are just a piece of the puzzle. And often that same IT infrastructure supports lots of different banking products. Understandably, the bank doesn’t see that infrastructure as a product, and there’s often no one who owns it.

In these types of organizations, business analysts (BAs) are often placed in a “requirements gathering” role. They’ll act as an intermediary between the developers and the business stakeholders like the product manager of a banking or insurance product. When those businesspeople need changes to the IT infrastructure that supports their product, they’ll work with the BA to describe those changes. And here’s where they might take on the client role as the BA acts in a vendor role, and that’s where the anti-pattern kicks in.

In casual conversation, my friend David Hussman gave me a better metaphor for the relationship the BA should have with his business stakeholders—the same relationship that a music producer has with a band. This makes sense coming from David, who’s both an Agile guru and ex-guitarist for the 1980s heavy metal band Slave Raider. He’s worked with producers, and been a producer himself. In that relationship the band comes to the music business with passion, and hopefully some talent, but they don’t know the music business or the mechanics of recording an album. The producer does, however. It’s the producer’s job to help that band make the most successful recording it can. Successful producers can turn raw talent into a polished, commercially viable recording artist.

As a business analyst in an IT context, that’s your job. Take the vision of your business stakeholders and help them make it a success. You can’t be just an order taker—you’ll need to behave more like a doctor. And sometimes this means telling your stakeholders things they don’t want to hear. But, if you’re sincere about helping them succeed, they’ll see it and value your help.

When acting as product owner for other stakeholders’ ideas, take on the role of a producer who helps them succeed.

One potential anti-pattern is to make the business stakeholder take on the product ownership role. I say potential because it can work if the businessperson has lots of help and support from other team members, an aspiration to learn how to do the job of a product owner, and the time it’ll take to do it. Product ownership isn’t a trivial responsibility, and shouldn’t be treated as something that could be done in your spare time. Instead of forcing another job on businesspeople, I’d recommend you find them a producer to help them succeed.

This Is Complicated

For an idea that at its core is simple, this whole story thing has gotten terribly messy. If anyone told you software development—or any product development, for that matter—was easy, they were lying.

Stories are many things at once. We’ll use the word to refer to the card, to the chunk of software we build, and especially to the kind of conversations we have to make decisions about what we should build. Stories can describe very large opportunities, or the almost insignificant deliverable pieces that by themselves aren’t necessarily meaningful to customers and users. Working with stories is a continuous process of conversation and discussion to break them down from big things to small things. And through all those conversations, we’re keeping not only what we could build in focus, but for whom, and why. Story mapping is just one of the ways to help us break big things down while keeping the focus of the conversation on the people using your product and what makes them successful.

If this is all starting to make sense, then you’ve made that big, necessary mindshift. It’s not a shift to use stories to document requirements, but a shift toward working with people more effectively, and together focusing on solving real problems with the products you create.

And that, I hope you’ll agree, is a beautiful thing.



[12] Leisa Reichelt originally included this gem of a comment in a 2009 IXDA talk. See her later essay here: http://www.disambiguity.com/designbycommunity/.

[13] This article on the Scrum Alliance website by Ryan Thomas Hewitt explains a three amigos–style story workshop: http://bit.ly/Utg8er.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.17.91