Agile: No Estimates or Commitments and Operating in the Cone of Uncertainty

By Kristi Salmi, Moneycatcha

In the initial stages of a project, estimates of time and resources are typically off by a factor of four in each direction. The exact requirements and resources available aren’t clear, and can be four times too high or too low. This is the “Cone of Uncertainty”, a term coined by Stephen McConnell in his book Software Estimation: Demystifying the Black Art.

It’s challenging to operate within uncertainty. Say you have an agile DevOps team working on a project to build a solution for the organisation. There’s a need to plan and coordinate resourcing for testing, change management, training and implementation. But the DevOps team won’t make any estimates or commitments because they’re in the cone of uncertainty.

This uncertainty makes estimates difficult. But there are some tools and techniques to help remove some of the variability.

1. Set goals and priority sliders

At the start of a project, stakeholders need to agree on the goals they want to achieve. Priority sliders then rank outcomes from highest to lowest priority, such as quality, security, timeframe etc. These goals and priorities, which determine the MVP (minimum viable product), need to serve as a continual reference point and reminder.

2. Domain Driven Design

Using domain driven design techniques, such as Event Storming, is a great way to map out visually what is required. Event Storming involves the Product Owner and business stakeholders mapping out the actors involved and all the events. The DevOps team will then walk through this with the business representatives providing an opportunity to ask questions and gain a shared understanding, of the process, requirements and terminology.

The output created from the Event Storming session is then used to create Product Backlog Items (PBIs) in the form of User Stories that the DevOps team will work on to build the product / solution. The Event Storming process can be repeated throughout the project to map out happy paths and unhappy paths for all requirements, whether they are features, functionality or processes. 

3. Define an MVP

Confirming and communicating the MVP to the DevOps team eliminates uncertainty and variability. Once the MVP is released, subsequent iterations will see additional features and functionality added, until the value added is no longer worth the cost of continued development.

4. Ready and Acceptance Criteria

Before a PBI is accepted in the Sprint Backlog to be worked on by the DevOps team, the requirements need to be clear. This is the Definition of Ready (DoR) criteria. If a PBI doesn’t meet the DoR then it shouldn’t be worked on. A PBI should also have acceptance criteria included before the team agree to work on it. If the team agrees that they understand a PBI and accept it into the Sprint Backlog this means there’s no uncertainty associated with it.

5. Backlog Refinement and Story Elaboration

There are a number of meetings held that also assist in reducing uncertainty.

  • Formal Backlog Refinement meeting with relevant SMEs, stakeholders and technical leads to review the PBIs and prioritisation
  • Story Elaboration meeting where the PBIs are played to the DevOps team, who can ask questions and raise concerns, before accepting items into the Sprint

6. Inspect and Adapt

Teams should have an inspect and adapt meeting everyday (Daily Stand-Up) as well as at the end of the sprint (Sprint Retrospective). The purpose of the Daily Stand-Up is to identify any challenges, including anything that’s unclear, so the team can address them immediately. Likewise, the Sprint Retrospective is an opportunity for the team to review their performance and to identify things they can improve or would change.

7.  Story Point Estimation

Using relative sizing in estimating the amount of work required for a PBI is a really useful technique, especially for providing estimates to the business or a PMO. Humans are better at estimating the size of something in comparison to something else.

Really, it’s only during the early part of a project that a team is operating in the cone of uncertainty. If more than 20% of the project time has elapsed and the team are unwilling to provide estimates because there’s still uncertainty, try some or all of the above techniques.

If you are over a third of the way through a project and still having these problems the team may be operating in a cloud rather than a cone of uncertainty. If this is the case it’s highly unlikely your project will be completed on time, if at all. It may be time to re-evaluate the project as well as the team composition and skill-sets.

How to add value and propel your career

Throughout my career, specialising in data analytics, I’ve learn that what’s critical for promotion and progression is adding value. Simply doing a good job – just turning up and doing what is required – isn’t the same. It’s pretty easy to deliver what’s expected, after all, you’ve been hired to do that. You have the necessary skills and experience.

Adding value is much harder. It can be scary to step outside your comfort zone and start looking at why something is done a certain way, how it could be done better, and what you need to do to achieve that. There’s a fear factor in not wanting to make a mistake, particularly when you are new, inexperienced or not in a leadership/manager position. Company culture can also be a problem. Some organisations and people are really resistant to change, and there’s a focus on just getting stuff done.

But if you can add value, it can benefit you and your company. I found that once I focused on doing this, my career really started to fall into place for me in terms of opportunities, development and progression. Here’s a list of 7 things that I’ve found have helped me to add value and benefited my career:

1. Focus on solutions

Make a conscious choice to focus on solutions rather than problems. If you focus on the issue then you’re not focusing on finding a solution. Start by asking questions, speaking to other people, doing mind maps or writing things out. It doesn’t matter how you do it, what matters is that you do it. Even if the initial idea you have isn’t very good, it’s a starting point and can be improved.

2. Own and learn from mistakes

We can view mistakes as bad, or as an opportunity to learn and grow. The reality is that you will make a mistake at some point, and how you respond to it is what helps define you.

In a previous role, I was using a system generated dataset to track movements in savings balances, to identify trends. Over time, I noticed some large monthly swings in balances that didn’t make sense, and errors I couldn’t explain. I notified the IT department who investigated, and found a bug with the program. The lesson I learnt was always obtain data from the source, and run a comparison to validate and identify anomalies.

3. Keep learning

Whatever your experience level, there are always things to learn or improve. Continuous learning, whether formal or informal, soft skills or hard skills, is important. Find out what successful people or people in similar positions you aspire to are sharing on LinkedIn, and read what they read. Many online courses are available, many of which are relatively inexpensive on sites like Udemy and Lynda.

4. Find a mentor

Don’t underestimate the power of having a mentor. They should be someone you respect, who is experienced and can help guide you, and give you vital perspective. Mentors also make great sounding boards to run ideas past and seek advice from. You could have a formal or informal mentor, in the same company or even in a different industry.

I had the GM of Strategy for a mentor. I was able to learn from their experience, run ideas past them, and discuss possibilities for career progression and professional development. Later on, a change management contractor I worked with became an informal mentor. With extensive experience in very senior roles across different industries, he was great to be able to discuss concerns and opportunities, and approach things in a different way.

5. Have evidence based discussions

When discussing an issue, gather facts and information that reinforce your position. If you have supporting evidence it makes your stance more difficult to refute. It also shows that you are prepared and what you are saying is more likely to be respected. An evidence based discussion is generally more effective than an emotional one.  

6. Take every opportunity

Taking advantage of opportunities when they arise, even if they don’t seem that significant at the time, can present a huge a learning experience. I was once given the chance to work on a very tedious, 18 month doing data definition projects. At the time I didn’t really enjoy it and wouldn’t have viewed it as an opportunity. But the knowledge I gained was invaluable as were the subsequent opportunities that flowed on from this.

7. Be proactive

It’s not always obvious how you can add value. You may need to be proactive and actively seek out opportunities, such as letting people know that you’re keen to work on other things. Once you get into the habit of doing this, it starts to become second nature to you, and you’ll be perceived as enthusiastic and willing.

There are many other ways you can add value, but these are the major things that I believe have helped me. Some days it’s harder to do them, and on other days it’s easy. But I think key is consistency, and over time I’ve improved in being able to add value.