Delivery and Estimation

One of the important responsibility of a developer is estimating a feature. In this article we articulate what would is the best way for estimations.

The current process to estimate involves breaking the task to sub components and then providing an estimate against it. Including time for integration and other such components.

Sample estimation work

For a final delivery date, various methods such as Gant Chart can be used.

Similarly for estimation various methods such as ‘Story points’ in Agile, or ‘HLD/LLD breakdown’ can be used.

The question that I raise is ‘How accurate should xn(days) in above chart be’. There is an investment attached to accuracy.

Accuracy (y-axis) vs Investment (x-axis)

Assuming hypothetical investment numbers (in hours) for a task. The graph is a logarithmic graph, with high investment required for high accuracy. There is a cost associated with achieving close to 100% accuracy for a task.

Is there an alternate?

If we assume for each task the optimistic and pessimistic estimates on x axis and plot the number of deliverables achieved within them, we will get a bell curve (assuming pessimistic estimates are calculated correctly and is not simply a multiplier to optimistic estimates).

The estimates provided should be 1.158*optimistic estimate. This provides 15.8% chance of meeting the timeline accurately.

In case you go beyond 1.5*optimistic estimate, you increase the chances of meeting the timeline, yet there is the cost of lost time. This happens, because of ‘Parkinson’s law’ and well as tasks that will occupy time which are neither urgent nor important.

Why 1.158*optimistic estimate

Its easier to estimate optimistically then otherwise.

The probability of meeting the deadline is higher then 15.8% , due to the human factor.

As this becomes a reasonable timeline to be met, the team works enthusiastically to meet the timeline rather then working pessimistically when a roadblock happens in optimistic timelines, and playing catchup.

Murphy’s law will always come into the picture when developing. Better to be prepared then caught off-guard.

Do let me know your thoughts on how you estimate or where does your estimate number lies between the optimistic and pessimistic estimates.

You can also follow me at techiejai.com

I am passionate about designing and developing complex systems that impact people’s life. A avid reader and a believer of multi-disciplinary teaching.