How to better estimate when developing digital products

Vincent Legault
Samsao
Published in
5 min readNov 7, 2017

We make lots of guesses on a daily basis. We estimate how long it will take to cook our favorite meal and how long it will take to get to the university. We ballpark how much money we need to go to a trip. We try to anticipate how many points our soccer team needs to win the championship.

In business as in the rest of life, we must also make estimates — for example, approximate plans and timelines for projects, budgets for different department, and teams of people for those projects and departments.

Even though we guess about needs and outcomes all the time, our estimating causes problems. Our estimates are our best guesses, plain and simple, and when we build technology products, solutions, and innovate along the way, making accurate estimates becomes supremely difficult, if not impossible.

Think about it: Creating a new product is creating something that has never before existed. We cannot possibly know all the variables and limiting constraints.

Despite how good we are at planning, we have found that brutal honesty about the nature of development helps our clients to have realistic expectations. Development is invention. Uncertainty about timeline and cost is part of the process. The budget may need to increase or decrease as new information becomes available.

With that said, we can approach development projects in such a way that we become better guessers and minimize frustration for ourselves and for our clients. The title of Johanna Rothmann’s excellent book says it all: Predicting the Unpredictable. That’s what software development is, and once clients come to understand this reality, they will be in a better position to enjoy the development process and to profit from it.

Alignment between teams and their clients creates trust, and that trust produces better outcomes. With that in mind, we’d like to share three concepts that we use to communicate estimations with clients:

1 — Order of Magnitude & Percentage of Confidence

Because precise estimates are exact, they usually miss the mark. But there’s a difference between precision and accuracy. Accurate quotes must simply land somewhere within an acceptable range. Whereas precision breeds disappointment, accuracy breeds confidence. Thus, in order to have a productive conversation about project realities, we must avoid simple statements about cost and timeline predictions.

Instead, we will rely on a date range and a price range, and we will talk about both as an order of magnitude, from optimistic to pessimistic. We will do our best to land at a “likely” point that lands somewhere between those two poles — hopefully closer to optimistic than pessimistic.

We also communicate our confidence, which we express as a percentage. For example, we might say this: “Based on our working knowledge of the technologies, the project’s team, and your clarity about what project success looks like, we are 75% confident that we can land inside this budget range and date range.”

A number of factors influence that percentage of confidence:

  • Whether or not we have worked with the project’s stakeholders previously;
  • Whether or not we have good knowledge about that particular team’s velocity;
  • Project scope (e.g., smaller scopes are much easier to estimate);
  • Whether or not a backlog exists Whether or not the backlog’s user stories have granularity; that is, they have been broken down to where each task for each user story requires a day of effort or less. The smaller the story, the greater the accuracy;
  • Whether or not we have a documentation;
  • Whether or not we have wireframes;
  • Whether or not the client have technical dependencies on third parties.

Precision may set you up for disappointment, but accurate estimate takes into account the nature of development.

2 — Reduce Scope & Iterate Your Estimate

Educated estimation hinges on a multitude of factors. The better we understand the product requirements, the better we understand the risks. And the more we know about the risks, the more accurate the estimate.

Not to beat a dead horse, but a big part of being good at estimates is managing client expectations. Even an expert team that has done tasks similar to what your project requires has never finished your project.

When a client has only an idea and a list of features, it’s impossible to say how much Version 1.0 is going to cost. We agree that we must supply estimates for planning purposes. Both parties need an estimate in order to move around resources. But that estimate is a prediction. Predictions may change the way weather changes. During the project, as we learn more about features and requirements and the team (both the client and the people building the product), estimates become more reliable.

Our percentage of confidence goes up as we discover what the client truly desires and what we can deliver. In our experience, the best way to get more reliable estimation faster — that is, to increase accuracy and confidence — is to 1) reduce scope and 2) shorten iterations. That process goes something like this:

  • Lay out your estimate with timeboxes;
  • Factor in the velocity of your team;
  • Track how your team works as you proceed;
  • Keep an eye on the backlog;
  • Use all of this new information to re-estimate;
  • Then, re-evaluate your level of confidence and include that percentage with the new estimate.

As we continue with the project, we try to keep the user stories small and iterations small too. That requires breaking larger tasks down into more digestible pieces that we can quote accurately. This extra planning and strategy takes time, but it also increases accuracy. Smaller stories allow for easier and more frequent dialogue with the client. At the same time, we can deliver results more often.

That evidence of progress, in turn, builds trust and keeps morale high.

3 — The Team Doing the Work Should Provide the Estimates

This should be obvious by now, but you want the team doing the work to be giving you the estimates. Otherwise, the estimate is not useful. No, you want someone on the ground, breathing the air, so to speak, to tell you what to expect. You cannot depend on anyone’s estimate! Outside teams will overestimate or underestimate the amount of work.

In Closing

By educating our clients and helping them manage their expectations, we can help them set priorities and achieve the right outcomes.

By being honest about the nature of development, we create a lot more value than we do if we try to pacify them with precise estimations. It all comes down to consistent communication. That’s really the only way to establish a foundation of trust.

You’re more than welcome to comment or share your experience in the comments section below. As usual, feel free to hit the claps button and recommend the story if you found it valuable, it’s always appreciated :)

If you want to know more about our digital agency or what kind of products we craft, please visit our website or reach us here.

--

--