How Do We Estimate Software Projects
I've been meaning to write something like this for a while now. We've been using a project estimate template for small to medium-sized project estimations that could benefit others.
Estimating the cost, timeline, and resources required for software projects is a crucial aspect of project management. However, it is also one of the most challenging tasks.
Estimating a software project is like predicting the future; it is fraught with uncertainties, unknown variables, and shifting priorities. As a result, it can be challenging to provide accurate software project estimations and we don't bother trying to be 100% accurate. Being in the ballpark is always better than shooting it way off the field by trying to pinpoint the deadlines.
So how do we do it?
One possible solution to these challenges is the PERT algorithm, which stands for Program Evaluation and Review Technique. This algorithm enables project managers to create a range of possible outcomes by analyzing the critical path and calculating optimistic, pessimistic, and most likely estimates for each task. By weighing these estimates, project managers can arrive at a more accurate estimation.
Standard deviation is another formula that we use that measures the variability of a set of data points and shows the amount of deviation from the mean. In the context of software project estimation, the standard deviation provides a way to understand the possible range of outcomes and assess the level of risk involved.
The Monte Carlo simulation uses statistical modeling and simulation to generate a range of possible outcomes. This method involves running multiple simulations of a project using different inputs and parameters to determine the likelihood of various outcomes. The Monte Carlo simulation helps us identify that our assumptions are in the correct and acceptable range.
While the PERT algorithm, standard deviation, and Monte Carlo simulation are valuable tools for software project estimation, they do have limitations. These methods rely on historical data and assumptions, and they cannot account for unforeseeable events that may impact the project. This is why I suggest using it only for simpler project estimations.
Essentially, we estimate the effort it takes for a task to be implemented by using story points and estimating effort instead of duration. After that summing up the totals, calculating PERT and the standard deviation to give us the "estimative" story points for the project.
Finally, converting the story points to development hours, by knowing how much similar projects take on average, then running everything through 5000 Monte Carlo simulations to give us a ballpark estimate with 68-95-99.7 rule-based confidence levels.
It sounds harder than it is. In the link below you'll find the Excel file that takes care of all of this, you just have to estimate the tasks using the story points. Have fun!
The template Excel file: Primal Skill Project Estimate Template
Make sure you download the file and open it in Microsoft Excel for the formulas to function correctly.