When it comes to estimating the cost of software you are about to build, there is no silver bullet. We know this especially after our recent survey, where we found out that everyone uses different methods and tactics that work for their specific business. There are, however, a few main approaches to the problem.

Software cost estimation models can be two types – algorithmic or non-algorithmic. A non-algorithmic approach leans towards any previous experience and expertise in the area of the requested scope. 

In this blog, we will look at the most popular non-algorithmic approaches. 

Estimating by analogy

In this model, we use previous project costs. When estimating costs, you would find previous similar projects and relate them back to your current requirements to estimate the cost of the new project. 

Pros

This model is relatively easy to use, as it does not require any particular knowledge about requirements and edge cases. This means that a non-technical person can review past projects and estimate the cost of the new one, and do it fairly quickly. 

Cons

The model requires historical data, which means there needs to be an existing system collating this data. It can also lead to mis-estimation due to the unclear nature of the new requirements – something that sounds identical to a previous deliverable can turn out to be completely different in practice. Finally, this model does not consider technology or other technical factors that can sway the final cost. 

Expert judgement

This model is a very common approach – the person putting together the cost estimations collects information from experts in the areas of the new requirements. The experts use their knowledge, experience, and their own techniques to provide a cost estimate.

Pros

This model feels safer and more precise, as someone with experience is providing the numbers. It provides an accurate result in most cases. It is an especially effective approach to delivering estimations when combined with one or more of the other techniques in this blog.

Cons

This method probably takes the longest, as you have to wait to receive the feedback from the experts. It’s not bullet-proof either – statistically, the accuracy of this approach decreases as the size of the requirements in question increases, so it’s not a scalable model.

Story points

This is a method used by agile teams who use SCRUM. It tends to combine the first two models – analogical estimation and expert judgement. The team’s work is split into sprints, at the beginning of each of which they use story points to determine the workload of every requirement they are assigned. They then use these story points to calculate the hours of work it will take and finally, the cost of the implementation.

Pros

This model usually gives accurate results. It’s also more flexible, with the budget being updated regularly with every sprint – most often this means a weekly or bi-weekly update. It also considers all real-world facts – even edge cases and other challenges can be considered at the time of the estimation.

Cons

Because of its nature covering requirements as you work through them, this estimation technique cannot be used to provide a quote to use in proposals. Essentially, the client cannot know in advance what cost to expect.

Top-down approach

This approach is usually used to deliver a ball-park figure of the cost to be expected, as it only gives a low level of accuracy. However, it is a very fast way to get information. You identify the main requirements and determine their cost separately. In this method, you would usually use a higher margin for maximum cost to cover possible errors due to the lack of detail.

Pros

The pros are obvious – this model gives you a very quick deliverable of the estimation figures, and it can be used at the very early stage of the project to determine whether the project is worth starting.

Cons

Unfortunately, the cost of having an estimation so quickly is its low accuracy. This model should only be used to gain a general understanding of the possible cost of the project, having in mind that the final result may be very different from the provided estimation.

Bottom-up approach

The final model we’ll discuss in this blog post splits the project into detailed requirements. You then create a cost estimation based on the sum of the project components and requirements. This means that for this model to work properly, the requirements list must be known and finite. Similarly to the top-down approach, here we combine expert judgement and estimation by analogy to determine the cost of each requirement. This model is usually used at the proposal stage of the project, where a final figure with possibly low margins is required to sign the contract.

Pros

The bottom-up approach is useful because it can provide strong estimates that the sales team can use in the proposal.

Cons

Unfortunately, the cost of having an estimation so quickly is its low accuracy. This model should only be used to gain a general understanding of the possible cost of the project, having in mind that the final result may be very different from the provided estimation.

Conclusion

The most popular non-algorithmic models for cost estimation can be used individually or combined to come up with a cost estimate that’s at the level of accuracy or speed your business needs. We recommend using more than one of the techniques we’ve described above to get the best results possible. Try them out, and see what works best for your business and team. 

In the next blog, we’ll discuss the most popular algorithmic software cost estimation models.

Leave a Comment