In the business of estimating in the presence of uncertainty, a useful tool is Bayesian analysis of what we know today to make forecasts or estimates of the future. The Bayesian approach to inference, as well as decision-making and forecasting, involves conditioning on what is known to make statements about what is not known.

Bayesian estimating consider a probability of some outcome in the future as a belief or an opinion. This is different from the frequentist approach of estimating where it is assumed there is a long-run frequency of events. These events could be a cost, an expected completion date, some possible performance parameter. A *probability *that some value will occur. This is useful when there are long-term frequencies of an occurrence. When that is not the case - for example in project work which may be a unique undertaking - a Bayesian approach to estimating is called for.

Conditioning our decisions on what is known, means making use prior knowledge. This knowledge in the project domain comes from *past performance* of the parameters of the project. These include cost, schedule, work capacity, technical performance and other variables involved in the planning and execution of the work of the project.

This information is a distinguishing feature of the Bayesian approach to estimating the future. To do this we first need to fully specify what is known and what is unknown about the past and the future. Then what is known in making probabilistic statements about what is unknown.

The Bayesian approach to estimating differs from the traditional approach - frequentist - in that it interprets probability as a measure of

believability in an event. That is how confident are we in an event occurring.

For project work Bayesian estimating asks *what's the believability that this project will cost some amount or less. *Or *what's the believability that this project will complete on some date or before*. This *belief* is based on *prior* information about the question. The assessment of the question is then a *probability* based on this prior condition.

This is stated as Bayes Theorem

Where *P*(A) and *P*(B) are the probabilities of *A* and *B* without regard to each other. And *P*(*A*|*B*) is the conditional probability of observing the event *A*, given that *B* is true.And *P*(*B*|*A*) is the conditional probability of observing the event *B*, given that *A* is true.

For project work this can be very useful, given we have prior knowledge of some parameter's behaviors and would like to know some probability of that parameters behavior in the future.

This is distinctly different from *averaging* past behavior and projecting the future behavior. It is also distinctly different from assuming that the past behavior is going to be like the future behavior. This two assumptions of course are seriously flawed but at the same time often used in naive estimating or forecasting.

This Bayesian approach to forecasting or estimating future outcomes is also the basis of machine learning using Markov Chain Monte Carlo Simulation.

When faced with questions like *when will we be done* or *how much will it cost when we are done* - and these are normal everyday questions asked by any business that expects to stay in business - then Bayesian modeling can be useful. Along with frequentist modeling and standard Monte Carlo Simulation of the processes that drive the project.

A good starting place for the whole topic of estimating software development is ...

**Introduction to monte-carlo analysis for software development - Troy Magennis (Focused Objective)**from

**Troy Magennis**

## Recent Comments