How to Prepare a Software Development Project Cost Estimate

Andriy Mishenin
4 min readOct 22, 2019

Before you start working on an estimate, understand the strategic objectives of the project and your goals from the business perspective. You may plan to make as much profit as possible, explore new technology, or get a great client even if the project may become loss-making. Thus you can put into the estimate a high margin, or stay on the edge of profitability and accept certain financial risks. In any case, a precise estimate is a must-have to keep the project under control.

In software development, it’s mostly about the cost of the time of people working on a project, and it’s not easy to see what it may be. Trying to guess a ballpark cost is not the best practice because it’s hard to picture all aspects accurately enough.

Bottom-Up Estimating

It’s always a challenge to estimate how much time a team needs to complete a large-scale project. At the same time, in most cases, it is feasible to perceive the scope of a small task and create a time estimate for it. Thus, if your project is large, you should break it into smaller tasks first. Such a plan consisting of small tasks is called a work breakdown structure. The latter is vital not only for time and cost estimating but for many other project management activities. Summing up such atomic time forecasts you could get the total cost of the project after applying your hourly rate. This is a popular bottom-up estimating technique.

As far as individual tasks, there are a few approaches to estimating them.

Analogous Estimating

Analogous estimating is a determination of an estimate based on similar tasks from previously completed projects.

Parametric Estimating

Parametric Estimating is a technique that allows estimating a task cost by scaling characteristics of other tasks from well-known projects. For instance, let’s say the development of a database schema for project A took one week. If your new project is twice more sophisticated, you can assume that the same task will require two weeks.

Three-Point Estimating

This method involves preparation of an optimistic, pessimistic, and most likely estimates. Then the final estimate can be received as either the triangular distribution:

E = (a + m + b) / 3

or the beta distribution:

E = (a + 4m + b) / 6

a = the best-case estimate
m = the most likely estimate
b = the worst-case estimate

It’s worth mentioning that they often use this technique in conjunction with the other two described earlier.

Contingencies, Risks, and QA

In general, estimating individual tasks and then summing them up works rather well. However, there are a few points to consider before you send a quote to your client.

  • Overall project complexity grows exponentially with the number of features in the project. In large projects, there are many dependencies and interconnections between various components. It needs more work, brings more contingencies, and requires more extensive quality assurance processes.
  • There are risks in every project, and it’s good to have a risk response plan. Think about how you will mitigate them and what it may cost.
  • When planning a project, you are likely to forget to take some details into account. So, be pessimistic about the scope you can see. Assume there are things you don’t see.
  • Plan significant time for quality assurance and addressing client feedback and include this into your estimate.

Top-Down Estimating

Top-down estimating is typically used when there is a fixed budget for a project. Top-level management can offer a budget basing on historical information about similar projects or input from experts. In this case, the estimating process is the determination of the project scope that fits the specified budget. In other words, it shows what you can do for the money you have.

In this case, it’s still vital to prepare a work breakdown structure and consider all of the aspects mentioned above for the bottom-up estimating technique. Then, as a result, you should get a plan with the list of tasks to complete.

Summary

Regardless of whether it is the bottom-up or top-down estimating, first you should prepare a work breakdown structure for your project. Then going up from the smallest tasks you can receive the total estimate; or on the contrary, going down from an already set budget determine what features can be in the project. Remember that most people tend to underestimate the complexity of their tasks. So, be careful, pessimistic, and analyze your experience from projects completed earlier.

Originally published in Trackabi Blog

--

--

Andriy Mishenin

A Senior Software Engineer and a Certified Project Manager who is truly passionate about web and mobile applications design and development