Chapter 31. Forecasting with Less Effort and More Accuracy

Matthew Philip

When we estimate something, whether it’s a batch of work or any particular single piece, the typical goal is to answer the question “When will it be done?” But do our traditional ways of estimating how long it takes to complete a task work? When we ask a group or individual to estimate knowledge work—work that by its nature is complex and unique—the information about the work is very low. Although more modern, Agile estimating practices (when done correctly) mitigate some of the pain of estimating—planning poker, for instance, is intended to reduce biases and time spent—estimating still requires time that we could spend on creating the software (opportunity cost) and involves multiple human biases. And we’re still considering (and guessing at!) only a part of what accounts for delivery time: effort, or essential complication; that is, the amount of time it takes to do the job itself. Developers hate estimating, and managers hate nagging developers and missing deadlines.

Fortunately, we have probabilistic forecasting. A probabilistic forecast is simply a forecast communicated as a range and a probability. For example, most weather forecasts indicate the likelihood of some event occurring, such as snowfall:

  • No accumulation: 11%

  • Up to an inch: 48%

  • One to three inches: 34%

  • More than three inches: 7%

This is an appropriate and more realistic way of answering the “when” question because of what ...

Get 97 Things Every Engineering Manager Should Know now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.