Uncertainty

The Cone of Uncertainty

I first encountered the phrase “cone of uncertainty” in the mid 1980’s while reading Barry Boehm’s book, Software Engineering Economics  (1981). Using a traditional software project context, the “cone of uncertainty” model showed that the amount of uncertainty in a software project is greatest at the beginning, ultimately converging to zero (0) at project end. In his book, Boehm reveals the magnitude of the uncertainty through research showing that estimates provided at project start are generally off by a factor of four (4). That’s right, a factor of four… and you thought your estimates were bad!

cone_of_uncertainty.jpeg

This “cone of uncertainty” made sense in a traditional project context. That is, if you’re assuming that the scope of what is needed can be determined and fixed upfront. But, we have learned that software isn’t actually like that. Let me explain.

How many times have you built exactly what the customer asked for only to hear on delivery that despite the product being what was asked for, it doesn’t meet the customer’s need? The cone of uncertainty described above is premised on the customer being right in their initial ask. Once you deliver what they asked for, you’re done. But what if they’re not right? Pause for a moment and think… in the case of a new product, has the customer ever known exactly what was needed before it was built? Is it even reasonable to expect them to know?

What I’m suggesting is that it is not estimation and our inability to accurately estimate that is the issue. In fact, our focus on estimates and estimation have distracted us from what is more important — that is, building the right thing.

The Cone of Possibilities

If we’ve never built this exact product before, we have no hard data proving that it is the right fit for the customer need. Before something is built, the idea of the thing to be built is simply a value hypothesis. We won’t know if it’s right until the product is built and in use by the customer. The sooner we build something and start generating feedback, the sooner we will have data on whether or not what we are building is right, and, if it’s not, how to change it so that it is more likely to be right.

Building software is analogous to building a new product. Building a new product is a journey from the known to the unknown. Instead of a cone starting wide and narrowing towards a point, building a new product is more like a cone starting at a point and widening out to a myriad of possibilities. A more appropriate model to describe the product evolution is a hurricane forecast cone. In the picture below, “X” marks the spot where the hurricane is now. That spot, plus where the hurricane has been in the past is what is known. Where it is going is uncertain. We can model a likely path based on current information, but our ability to accurately predict beyond the immediate future is limited. And the farther we try to predict the more uncertainty we encounter. Beyond a certain point, it’s not even worth predicting.

For a new product, we always have a current state of the product — what it is currently — even if that state is that it doesn’t yet exist! That current state is what is known. We won’t know what the next iteration of the product will be until it is actually built. Any number of unexpected things might happen in the interim.  For example, the customer changes their mind, the infrastructure on which a new feature depends turns out not to support the feature, a key team member departs, a new law or regulation limits or blocks the deployment of the feature, and so on.

Hurricane forecast models are updated frequently based on new data to improve our ability to react and prepare for the effects of the hurricane. The potential value in saving lives and property and minimizing damage to infrastructure warrants the investment in keeping the model current and useful.

Optimizing for Maximizing Customer Value

A product backlog represents a product’s potential future state. Like a hurricane forecast model, the product backlog represents possibilities. The actual track of the product is known only after the fact. The product owner’s decisions in product backlog content and order influence future product direction. With maximizing customer value as the primary optimization goal, the things that might influence the product owner’s decisions in reordering the product backlog and changing its content can be as complex as the factors influencing a hurricane’s direction. 

Just like the hurricane forecast model,  the product forecast model, the product backlog, must be updated frequently. Interestingly, the myriad possibilities of the future backlog also means that there is no upper bound to customer value creation. The main part of the product owner’s job is to manage the backlog for this purpose. Unlike in a project, the goal is not to be done, but rather to maximize value to the customer. If we are to focus on building the right thing, the more appropriate model then is an open-ended cone, rather than a closed one.

Have you considered your future product potential, what influences its direction, how to effectively forecast, model, and communicate its possibilities?


Did you know?
In 1973, Barry Boehm shocked the computer industry by predicting that software would outrun hardware costs.

Scrum Masters and Product Owners Together

partnership.jpg

The Scrum Team consists of a Product Owner, a Scrum Master, and the Development Team. It’s pretty obvious what the Development Team is doing. They’re mostly heads down analyzing, designing, building, testing, documenting and all the other related activities needed to make the product work. Simply, get the right people, communicate what you want, and get out of their way. It’s amazing what results you can get when you give a Development Team everything it needs to succeed! Exactly what the Product Owner and the Scrum Master are doing day after day while the Development Team is building stuff is often less clear.

The Scrum Guide™ tells us, “The Product Owner is responsible for maximizing the value of the product and the work of the Development Team…the sole person responsible for managing the Product Backlog.” That’s a great summary, but what exactly does that mean in action?

In addition, The Scrum Guide™ has a bulleted list of the Scrum Master’s service to the Product Owner”

The Scrum Master serves the Product Owner in several ways, including: 
* Finding techniques for effective Product Backlog management;
* Helping the Scrum Team understand the need for clear and concise Product Backlog items;
* Understanding product planning in an empirical environment;
* Ensuring the Product Owner knows how to arrange the Product Backlog to maximize value;
* Understanding and practicing agility; and,
* Facilitating Scrum events as requested or needed.

This is a great list, but again, what does it mean in action? There is no simple answer for this question. Every situation is unique and requires a situationally appropriate response. The Product Owner and the Scrum Master need to figure it out for themselves. Luckily, they’re not in it alone. They are in it together — partners in solving this ever evolving problem.

Understanding this partnership, how it works as a multiplier, and avoiding the pitfalls of stepping outside the bounds of each role are critical to both Product Ownership and Scrum Mastery. We have found that this partnership gets off on the best footing when the Product Owner and the Scrum Master share the same experience in learning about Scrum. When a Scrum Team’s Product Owner and Scrum Master attend one of our classes together, they tend to have better traction and attain greater success in their use of Scrum to achieve their goals. This correlation is so significant that we’ve decided to introduce a new ticket type to enable them to attend the same class together at a special PARTNER price. No special code is required. Just choose ticket type “Scrum Master/Product Owner Partnership” when registering. 

Our current classes are listed here.

Organizational Change... Not!

organizational change not.jpg

What do you do if you happen to find yourself in a organization that is simply paying lip service to agile? First, don't despair. Organizations don't change overnight and it is highly unlikely that you as one person are going to change the organization. Don't feel bad about it. That's just the way it is. Second, don't lose faith. There are some things that you can do within your control to effect positive change:

  • Know your team's purpose. What value does your team create for your customer? What difference does this value creation make to your organizations bottom line? Don't know your team's purpose? Ask.
  • Be transparent. Let others know your team's goal and communicate what you're doing to help the team achieve the goal.
  • Ask for help when you need it. Your team is better when it works together.
  • Get real. If things aren't going according to your plan, fix your plan to deal with your current reality. The plan was built on what was, not what is. Whatever reality is, deal with it.
  • Be the change. We all have preferences, biases, and models of how we see the world. If any of these is not helping,  be willing to change yourself!

Who knows, with enough individuals making a positive difference, we might just get the organization to change as well.

Scrum Waves

The great wave off Kanagawa - Print at the Metropolitan Museum of Art

The great wave off Kanagawa - Print at the Metropolitan Museum of Art

I caught myself daydreaming about waves today.  What can I say, it's summertime and I have to admit that I've always been fascinated by waves, or more specifically, waves in water. It doesn't matter whether it's ripples on a pond, standing waves on a class 3 river, or rollers breaking in the surf at the beach — to me waves are mesmerizing, powerful, mysterious.

The next thing I knew, I was thinking about something Craig Larman said in a LeSS class that I attended earlier this year.

Most organizations rent Scrum rather than own it.
— Craig Larman

If you're wondering how I got from waves to Scrum and renting versus owning, it's a dream. Just stick with me. I'll explain.

Waves move through water, but are not made of water. When a wave passes, it is sort of like something happened to the water, but the water is not the wave. After the wave passes, the water hasn't changed. It's still the same water as it ever was. It is kind of like the water is renting the wave rather than owning it. It’s just a temporary thing that is just passing through.

Now if you happen to be at the beach bobbing up and down where the rollers begin their break and you decide to body surf a particularly big wave in to the shore, you might experience the thrill of the energy, speed, and dynamic nature of the wave. But after the wave has crashed on the beach and left you in its backwash, the wave is gone and the receding water is still just water. It is you, the body surfer, that is changed by the experience, not the water.

Now back to organizations renting Scrum rather than owning it. Organizations trying Scrum are often like water with Scrum simply a wave passing through. Waves come and they go. The people in the organization might get tossed and turned, but the organization stays the same. Scrum is seen as the fad that is the current wave. Soon, too, it will pass.

In my experience as a coach, Scrum works better when an organization acts like the body surfer, using Scrum as a never ending series of waves to effect positive change and having joy in the process.

Which would you rather your organization be — the water or the body surfer? Is your organization a renter or a buyer?

Magic Words, Jargon, and Gibberish

Does your Daily Scrum feel a bit like the movie Groundhog Day?

The idea for this post was sparked by a text this morning from one of my former students who I have anonymized below as Development Team Member (DTM):

gibberish

Despite the subtext of humor, DTM is clearly frustrated. She has just endured an hour’s long ordeal of (mostly) gibberish. That much is clear. What is not so clear is whether the team has a plan for working together over the next 24 hours. Nor is it clear as to how the team is progressing in relation to their Sprint Goal and their forecasted increment.

Where was their Scrum Master? How did this happen?

Words lose their meaning

Agile, Scrum, Lean, Daily Scrum… these are just words. Good ideas lose their positive impact when the words we use to describe them and their underlying practices are not understood in the same way by all stakeholders. For example, while we may understand what we mean by “Daily Scrum”, it is unreasonable to expect someone unpracticed in the correct enactment of the Scrum framework to share this same understanding. Jargon is not a substitute for an effective conversation!

Unfortunately, there are probably more examples like the one above of “bad” Daily Scrums than there are of good ones. Attempts to become agile through “magic” meetings with “magic” incantations such as “What did you do yesterday…?” are ineffective without a keen understanding of the why behind the question and the expected outcome of the meeting. If we can’t get a Daily Scrum right, what hope do we have to change the way we engage with our customers?

On a positive note

In the text exchange above, DTM has an idea as to how to improve the meeting. The “ball” she suggests bringing next time will serve as a talking stick to support her team’s agreed upon “one speaker” team norm at the Daily Scrum. Another idea DTM’s team might consider is a visible timer to serve as a reminder that the Daily Scrum is only part of the day’s “work”. (Scrum reinforces this idea through its rule limiting the Daily Scrum to a 15 minute time-box).

Most important, DTM’s insight for a way to improve the team’s way of working together is in the spirit of Agile. The authors of the “Manifesto for Agile Software Development” had in mind a sense of adaptability grounded in learning. DTM’s frustrating experience in today’s Daily Scrum is learning that will lead to the type of adaptation that the authors intended — and that is an outcome that transcends magic words, jargon, and gibberish.