I am a software developer and am frequently asked by prospects to provide a workload estimate for a potential project. I would like to implement a statistical approach to estimation that works as follows:
- Create a list of tasks that make up the project.
- Have N colleagues provide a low and high estimate (in man/days) for each task.
- Average the low estimates and high estimates for each task.
- Assume that the distribution of real possible workloads for each task (again in man/days) is normally distributed with the low and high estimates each one standard deviation from the mean.
- Calculate workload estimates for the entire project (in man/days) with 10%, 50% and 90% confidence. In other words, based on the assumptions in step 4, what is the total workload estimate where I can be 10/50/90% confident that the real workload will be equal to or less than the estimate?
Where I need guidance is step 5. Is there a standard statistical approach that can be used?
(Side question: I'd also be interested about how to refine the estimate once we have historical data to feed into the model. Obviously it would be ideal to have the real workload data for each task, but this will be hard to know with certainty since programmers usually work on several tasks in parallel. Realistically the most reliable historical data will be the actual workload required to complete the entire project.)