Software estimation uncertainty principle
When asked, engineers often say it’s impossible to predict when their project will ship.
I disagree.
It’s possible to estimate and ship a project by a due date. As the due date approaches, progress is inevitably slower than expected. This doesn’t prevent shipping on time. It’s instead a prioritization decision. Which is more important: shipping by the due date or completing the remaining features?
This gives rise to the Software estimation uncertainty principle:
The scope and the completion time of a project cannot both be estimated exactly, at the same time, even in theory. The very concepts of exact scope and exact completion time together, in fact, have no meaning in nature.
Next time a manager needs an exactly completion time, always ask “What scope is less important than hitting our deadline?”