Most people know nothing about learning; many despise it. Dummies reject as too hard whatever is not dumb - Thomas More, Utopia
The Fallacy - We can't know much of anything about the Future. But in fact, the future is always knowable to some degree of precision and accuracy unless it is truly Unknowable
Software developers and the IT managers they work for operating in the future. Many of this practitioners view the future as an esoteric, abstract, impractical realm, But the future is where the value of the software is earned. The future is where to cost to develop that software is paid back. The future is where the users of the system will be satisfied with the provided capabilities.
The primary job of management and those developing value for management is to find the future, not just the future in general, but the specific futures for the customers. - Al Ries, in Positioing the Battle for Your Mind.
This future is not in the resulting products and services but the cost, schedule, and technical attributes needed to produce these products and services. Knowing this future can be on large-grained boundaries - sometimes called waterfall. Or on fine grained boundaries - sometimes called spiral, incremental commit and agile.
All Project Work Operates in the Presence of Uncertainty
All work even production line work operates in the presence of uncertainty. Uncertainty comes in tow forms - Aleatory and Epistemic
Managing in the presence of these two uncertainties requires one or two approaches:
- For Irreducible Uncertainties - margin is required since the uncertainty cannot be reduced. This can be schedule margin, cost margin, or technical margin. How much margin must be determined as well. This is typically done with a Monte Caro Simulation of the underlying statistical processes that are creating the Aleatory uncertainty.
- For Reducible Uncertainties - redundancy, experiments, prototyping, fault tolerance, failure safe and a variety of other processes to protect the system when the uncertainty creates a risk or fault.
Now to the Logical Fallacy
In the presence of Aleatory and Epistemic uncertanty, risk is created to the cost, schedule, and technical performance of the project. To assess the impact of that risk, devise the protective actions needed to address the resulting risk - ESTIMATING is required. Without estimates the Aleatory and Epistemic uncertanty that exists on All project will go unaddressed and the probablity of project sucess will be significanlty reduced, perhaps to Zero.
Without estimating both the probability of occurance (for reducible uncertanties) and the statistical processes (for irreducible uncertanties) informed decsions cannot be made.
The falalcy is that decsions can be made in the presence of these uncertanties - that exist on all project work - willfully ignores these principles.
There are two type of errors made, of which this fallacy adheres:
- An Error of Omission - a mistake that consists of not doing something you should have done, or not including something such as a value or fact that should be included. I didn't know I should be estimating.
- An Error of Commission - a mistake that consists of doing something wrong on purpose, such as including a wrong value, or including an amount that is knowingly wrong - I willfully ignored I should be estimating.
[1] Software Cost Estimation with COCOM II, Barry Boehm, et al
[2] The Incremental Commitment Spiral Model, Barry Boehm, and Jo Ann Lane
[3] The Economics of Iterative Software Development, Walker Royce
[4] Facts and Fallacies of Software Engineering, Robert Glass
[5] Facts and Fallacies of Estimating Software Cost and Schedule
[6] Distinguishing Two Dimensions of Uncertainty, Craig Fox and Gülden Ülkumen, in Perspectives of Thinking, Judging, and Decision Making
[7] Decision Analysis for Professionals, Peter McNamee and John Celona