I can estimate some tasks very accurately.  I know that adding this new flag to my system will take a day.<p>Other tasks I can accurately say I don&#x27;t know how long they&#x27;ll take.  This new feature is... a couple of weeks?  This new application is... a few months?  I can roughly guess (estimate!) but there&#x27;s a wide certainty margin.<p>That uncertainty is never built into the mathematical model used by project managers, which is invariably a simple addition of scalar estimates.  The only common way of dealing with uncertainty is to <i>pad</i> the estimates (multiply by two, etc), but that&#x27;s still not a statistical boundary -- it&#x27;s just a scalar.<p>Furthermore, when adding uncertain values, they wind up not being independent, for a number of reasons -- the lessons from one feature are carried on to the next, or the next task is easier because of new existing code, or because as you approach the original deadline you invariably throw out feature requirements.  So you can&#x27;t necessarily just add all the uncertainty values.<p>So a better approach to estimation would be to formulate a (<i>simple</i>) model which encodes each estimate as {guess, uncertainty, independence} and then provides a function for compounding the guesses and uncertainty and independence factors in a realistic way.