Software’s Cone of Uncertainty is a model for understanding estimation uncertainty in software projects. Estimates inherently contain high uncertainty early in projects. Uncertainty can be reduced once the project is underway. Project leadership must take specific steps to cause the reduction in uncertainty. Organizations should avoid making commitments until the Cone has been reduced, because until then the commitments will not be supportable.
Software’s Cone also applies to agile and iterative development although in a somewhat different ways than it applies to sequential development.