The Cone of Uncertainty, described by Steve McConnel, shows what any experienced software professional knows. Which is at the beginning of any project we don’t know exactly how long a project is going to take.
The reasons for this are many. No two ever projects have the same requirements, people, business context, technology, priorities and constraints. Each is unique. Every line of code is hand crafted. The amount of uncertainty decreases as the project proceeds and more research and development is conducted. There is a strong correlation between project unknowns and variances in project estimates. Plotting these variances over time creates a cone or funnel shape (variance percentages shown are only examples, values may vary).
Project managers and analysts can be helped by understanding the cone of uncertainty as they estimate projects. The amount of variance (estimated versus actuals) that will occur at different phases of a project can be predicted based on historical project data. The historical variation can then be used to determine the type of multipliers to apply based on the most likely outcome estimate. Thus, a high-to-low estimate range can be created.
As a side note, the range of variance expected during projects may also vary based on the project type. It is not uncommon for some projects to have more or less unknown information at various stages, whether it is a product launch, process improvement, or information system.