🍦Are you working outside the cone of uncertainty?

How to handle uncertainty so it doesn’t derail your next software project.
Jonas Fleur-Aime
Jonas Fleur-Aime
July 13, 2023 | 3 min read

👋🏾 Hey there and thanks for reading. Each week I share tips and tactics that help software developers and teams create more successful software projects. Get the latest issue of the Build It Better newsletter in your inbox by subscribing today.

🍦Are you working outside the cone of uncertainty?

The cone of uncertainty is a way to visualize how uncertainty should decrease as time passes. It’s commonly used in forecasting and project management.

Ideally, uncertainty and risk should be the highest at the beginning of a project and decrease over time as we do more discovery, gather requirements, discover more unknowns, and get feedback from users and stakeholders. By the end of our project, there should be no uncertainty left.

Project management methods like Agile/Scrum, Waterfall, or Kanban all take this approach to reduce uncertainty over the course of a sprint, phase, or task. In reality, the cone of uncertainty is really an uncertainty waveform: uncertainty increases and decreases through most software projects due to many factors.

Signs that you’re outside of the cone of certainty:

  • External dependencies are blocking your progress on a feature/task.
  • Priorities have changed and impacted the requirements or goals of the project.
  • A technical challenge is taking longer than you expected to resolve.
  • The project deadline changed at the last minute.
  • Someone joined or left the team during the project.

How to deal with uncertainty in your software projects:

  • Regularly rate your certainty and share it: On a scale of 1 to 5 – rate yourself on the project’s certainty. Share that score in your project status updates so your team and stakeholders know whether the project is trending in the right direction.
  • Decide how you’ll deal with uncertainty: Before the start of the project make sure everyone is clear on what you’ll do if your project starts getting more uncertain. Will you add more resources? Will you reprioritize the project’s scope? Move the deadline? Or remove low-priority functionality?
  • Wait to make promises and estimates: Avoid making commitments on project scope, timeline, or effort when uncertainty is highest. Instead, make them only once you’ve done enough discovery and planning to feel confident in what you’re committing to.
  • Prioritize high uncertainty + high impact: Prioritize working on features and requirements that have the highest uncertainty and highest user impact. This will allow you to focus on uncovering risks early while delivering the highest value sooner.
  • Share ownership: Responsibility for a project’s uncertainty should be shared by everyone responsible for completing that project. Each person’s actions can affect whether a project gets less uncertain over time or
  • Lean into the uncertainty: When uncertainty is high it’s tempting to start saying “no” more often as a way to protect the project’s current scope and timeline. Instead, use those moments as an opportunity to shift scope and collaborate with your team and stakeholders more closely.

✅ Closing the issue

The cone of uncertainty can be a useful tool to understand the health of your projects. Plan for it and you’ll be able to have more confidence in your software projects and build trust with your team and stakeholders.

Hit reply and let me know: How much certainty do you need before you provide an estimate of effort for a new project? How do you deal with uncertainty when it pops up late in your projects?

Learn how to build better software

The best software developers and teams make smart choices. Subscribe to the Build It Better newsletter and get tips and tactics in your inbox each week.

    Build It BetterBuild It Better

    Helping software developers and teams make smarter choices so they can plan, build, and ship better software.

    © 2023 Build It Better - Underline Labs, LLC. All rights reserved.