There is an abundance of estimating guidance to counter the abundance of ill-informed notions about estimating. Here's some we use on our programs,
- Handbook of Software Cost Estimating, JPL D-26303 Rev 0
- Software Cost Estimation Using A Decision Graph Process: A Knowledge Engineering Approach
- Software Cost estimating at JPL
- Accurate Estimates without Calibration Read the rest of Menzies papers
- Software Development Cost Estimating Handbook
- Avoid Software Project Horror Stories
- NESMA - an independent international organization focused on software metrics and software measurement.
- ISBSG - Improve IT performance through estimation, benchmarking, project planning &
management and IT infrastructure planning. - COSMIC - is a voluntary, world-wide grouping of software metrics experts. Started in 1998, COSMIC has developed the most advanced method of measuring a functional size of software. Such sizes are important as measures of software project work-output and for estimating project effort.
- Parametric Estimating Handbook
The list goes one for 100's of other soruces. Google "software cost estimating." But here's the core issue from the opening line in the Welcome section of Software Estimation: Demystifying the Black Art, Steve McConnell.
The most unsuccessful three years in the education of cost estimators appears to be fifth-grade arithmetic - Norman R. Augustine
Augustine is former Chairman and CEO of Martin Marietta. His seminal book Augustine's Laws, describes the complexities and conundrums of today's business management and offers solutions. Anyone interested in learning how successful management of complex technology based firms is done, should read that book.
All Project Processes Driven By Uncertainty
The hope that uncertainty can be "programmed" out of a project is a false hope. However, we can manage in the presence of these uncertainties by understanding the risk they represent, and addressing each in an appropriate manner. In Against the Gods: The Remarkable Story of Risk, author Peter Bernstein states one of the major intellectual triumphs of the modern world is the transformation of uncertainty from a matter of fate to an area of study. And so, risk analysis is the process of assessing risks, while risk management uses risk analysis to devise management strategies to reduce or ameliorate risk.
Estimating the outcomes of our choices - the opportunity cost paradigm of Microeconomics - is an integral part to managing in the presence of uncertainty. To successfully develop a credible estimate we need to identify and address four types of uncertainly on projects:
- Normal variations occur in the completion of tasks arising from normal work processes. Deming has shown that these uncertainties are just part of the process and attempts to control them, plan around them, or otherwise remove them is a waste of time. Mitigation's for these normal variations include fine-grained assessment points in the plan verifying progress. The assessment of these activities should be done in a 0% or 100% manner. Buffers and schedule margin are inserted in front of the critical activities to protect their slippage. Statistical process control approaches forecast further slippage.
- Foreseen uncertainties that are identified but have uncertain influences. Mitigation's for these unforeseen uncertainties are done by the creation of contingent paths forward are defined in the plan. These on ramp and off ramp points can be taken if needed.
- Unforeseen uncertainties are events that can’t be identified in the planning process. When these unforeseen uncertainties appear new approaches must be developed.
- Chaos appears when the basic structure of the project becomes unstable, with no ability to forecast its occurrence are the uncertainties that produced. In the presence of chaos, continuous verification of the project’s strategy is needed. Major iterations of deliverables can isolate these significant disruptions.
Managing in the Presence of Uncertainty
Uncertainty management is essential for any significant project. Certain information about key project cost, performance, and schedule attributes are often unknown until the project is underway. The emerging risks from these uncertainties can be identified early in the project that impact the project later are often termed “known unknowns.” These risks can be mitigated with a good risk management process. For risks that are beyond the vision of the project team a properly implemented risk management process can also rapidly quantify the risks impact and provide sound plans for mitigating its affect.
Uncertainty and the resulting risk management is concerned with the outcome of future events, whose exact outcome is unknown, and with how to deal with these uncertainties. Outcomes are categorized as favorable or unfavorable, and risk management is the art and science of planning, assessing, handling, and monitoring future events to ensure favorable outcomes. A good risk management process is proactive and fundamentally different than issue management or problem solving, which is reactive.
Risk management is an important skill applied to a wide variety of projects. In an era of downsizing, consolidation, shrinking budgets, increasing technological sophistication, and shorter development times, risk management provides valuable insight to help key project personnel plan for risks, alert them of potential issues, analyze these issues, and develop, implement, and monitor plans to address risks long before they surface as issues and adversely affect project cost, performance, and schedule.
Project management in the presence of uncertainty and the risks this creates requires - actually mandates - estimating the outcomes from these uncertainties. As Tim Lister advises in "Risk Management Is Project Management for Adults". IEEE Software. May 1997.
Risk Management is Project Management for Adults
In the End
So those conjecturing that software estimating can't be done, have either missed that 5th grade class or are intentionally ignoring the basis of all business decision making processes - the assessment of opportunity costs using Microeconomics.
As De Marco and Lister state:
An almost-defining characteristic of adulthood is a willingness to confront the unpleasantness of life, from the niggling to the cataclysmic.