To increase the Probability of Project success we have to know something about the attributes and measures of the Five Immutable Principles that enable this success, while managing in the presence of uncertainty
All engineering projects, including software projects, are a constrained optimization problem. How do we take the resources we have and deliver the best outcomes requested by those paying?
The answer is to apply the microeconomics of decision-making to the problem. Unlike models of mechanical engineering or classical physics, the models of microeconomics are never precise. They are probabilistic and statistical models, driven by the underlying processes of the two primary actors - suppliers and consumers. The suppliers provide solutions. The consumers define what is needed and pay for the solution. The Developers and the Customers in the software development world. Both these actors live in the presence of uncertainty. Uncertainty in knowledge (epistemic uncertainty) and uncertainty of the natural forces in the project (Aleatory uncertainty). Both these uncertainties create risks to the success of the project. Epistemic uncertainty can be reduced. Aleatory uncertainty can only be addressed with margin.
Making decisions in the presence of these uncertainties on software development projects means calculating or assessing the probability that some future event may impact our goal. As successful managers and developers, we should be interested in making decisions about our future actions, in the presence of this uncertainty, so that we satisfy goals along the way to Done.
This means Knowing 5 Immutable things about the project...
- Knowing what Done looks like in units of measure meaningful to the decision makers.
- Knowing what plans and schedules are needed to reach Done at the needed time, for the needed cost, with the needed technical and operational capabilities.
- Knowing what resources are needed to produce these capabilities.
- Knowing what impediments will be encountered along the way, and how those impediments will be handled, reduced, or avoided.
- Knowing how to measure progress to plan, schedule, reduce impediments, and deliver the needed capabilities.
This knowing means knowing in the presence of uncertainty to a degree of precision and accuracy needed to make decisions
In order to know the precision and accuracy needed to make decisions, in the presence of uncertainty, we must start with estimating what is possible, estimating the attributes and measures of the needed outcomes of the work activities, that produce the capabilities for the needed cost and schedule.
- Estimating what Done looks like in units of measure meaningful to the decision makers.
- Estimating what Plans and Schedules will be needed to reach done.
- Estimating what Resources we will need to reach done.
- Estimating what Impediments will be encountered.
- Estimating the Progress to plan that will be needed to arrive at done.
All of these knowables and the estimates of the work and the outcomes of that work, operate in the presence of uncertainty. When we operate in the presence of this uncertainty, estimating is needed to inform the decision makers along the path to success. Without this estimating process, we have no ability to assessing the past data in the presence of this uncertainty in order to Know, to the needed degree of precision and accuracy, to make informed decisions about the future.
Without estimates, we'll be driving in the dark with the lights off