How to Create Optimal Cost Estimate of a Software Project

You may not expect it, but the accuracy of an estimate depends on proper communication with a client as much as it depends on the proficiency of employees. Therefore, a company should have a clear plan to follow while communicating with a client to avoid unnecessary issues and make the whole process of crafting an estimate smooth. This article provides such a plan.

We have followed this plan for the years of our company’s existence, and it helped us obtain more than 80 projects from all over the world. 

Estimates are tricky. For a client, every dollar counts while he or she may not completely realize the specifics of the software development. Therefore, it is an important task to communicate with a client properly in order to ensure the accuracy of the future estimate and save the client from unnecessary frustrations.

Step 1: Figure Out Client’s Expectation

The first and most important part is to figure out what a client wants exactly.

It is great when a customer provides detailed documentation where each and every element of the future product is sufficiently described. However, the experience demonstrates that it rarely happens. Therefore, the primary task of an engagement manager, or any other who is responsible for communication with a client, is to find out the exact vision of a client and primary functionality of a project. 

The general idea of the project is not enough, you require details. If you are not sure how certain elements of a project should work, don’t guess. Ask a client, and also provide your ideas if you have relevant ones. 

Also, you have to understand which business need exactly a client targets and what problem or desire of a user he or she wants to address with a project. It will help you to understand the functionality of the project better and make a more accurate estimate.

So, do not be afraid to ask a client relevant questions about a project. The more answers you will receive - the better for you and for a client. You should ignore fear to appear incompetent if asking a lot of questions. Such fear can cost a company’s employees dozens of hours of unnecessary work and frustration. You are asking questions, not because of the lack of knowledge but because you want to deliver exceptional service and ensure that everything is working out as a client expects. 

If a client does not have a clear vision or struggles to describe some of the functionality of the project, you can propose him or her to conduct a discovery phase during which business analysts will investigate the functionality of a future project in detail as well as its place in the modern market to use accumulated information to create relevant product. In this case, it is important to inform a client that the discovery phase will help to make a future estimate more accurate and also create a more competitive and reliable project.

Step 2: Figure Out Client’s Budget.

When crafting an estimate, you rarely know the budget of a client or how much they expect to invest in a project. So, figuring out a client’s budget is an essential step that helps to avoid a lot of issues.

Clients do not always have enough appropriate knowledge to realize how much money is required to craft a product and can be very secretive about their budgets due to different reasons.

Perhaps, the most prevalent reason to be secretive about the budget is a simple fear that a company will try to squeeze the maximum out of the customer and will adjust the project cost accordingly to do it. However, in reality, the situation is quite the opposite. A company does not want to know a budget because it anticipates a significant amount of money it can earn. A company wants to know the budget because it wants to be sure whether the budget can cover all the functionality of a project. And if it does not, a company can propose to ignore non-primary functions in the MVP before the estimate is done. If so, two things will happen:

A: A client will not be intimidated and frustrated by the final price for a project provided in an estimate.

B: A company will spend less time crafting an estimate and less time trying to come to a mutual understanding with a customer who was not ready to receive such a bill. 

A task of a person who communicates with a client is to cautiously explain these things to a client who does not want to share his or her budget. 

It is also important to communicate to the client that MVPs can be as successful as complete products. 

Approximately, 

  - 75% of startups we worked with had an MVP first

  - 10% started with a POC. 

Knowing the budget helps to craft a reasonable estimate of a project faster, avoid unnecessary frustrations and misunderstandings, and adapt project vision to a budget beforehand.  

Step 3: Get the Right Employee to Get Estimate Done

Obviously, an estimate of the project costs should be performed by a person who has sufficient experience and expertise in the required technology stack. 

However, it may happen that the most suitable employees are very-very busy on other projects at the moment so maybe that other person who is not that busy and fairly familiar with the requested technology stack can do the estimate instead?

No, it is not the best idea. And it is not a habit a company should develop as it is very detrimental to its well-being as well as to the quality of the provided services. Estimates do not take long to craft, but still essential to the overall success of a company. Therefore, there is rarely a force-majeure that is impossible to handle without that one particular employee so he or she could not craft a cost estimate.

Step 4: Include an Out-of-Scope Section into Your Estimate

If clients are determined to keep their budget secrets to themselves regardless of your explanations, don’t panic; here you should use your experience. As far as your primary task is to make an accurate estimate that does not scare a customer away, you should not blindly include all of the described functionality of the project into an MVP. A company should closely examine the requested product and determine all the elements that are excessive or redundant to the MVP and include it into an out-of-scope section of the project. In fact, you should do it regardless of whether you know or don’t know a client’s budget.

Important! Clearly elaborate why you included certain elements of the project into the out-of-scope section and explain that it decreases the overall costs of the project quite significantly. 

The worst that can happen is a client will tell that your argumentation is irrelevant, and you will move an element from the out-of-scope section. In any case, such an approach will not only make your estimate more “client-friendly” but also will help to prioritize your workflow during the development of the project.

Conclusion

The process of creating an estimate is both an art and a craft. While tech savvies should analyze the future project to determine the most accurate number of hours required to create a piece of software, communication savvies should explain clients everything they need to know and retrieve as much valuable information as possible.

Despite all the nuanced complexity of this process, there is a simple checklist that will help to ensure that you have everything required for the most accurate estimate: 

 1) Find Out Client’s Expectations

 2) Figure Out Client’s Budget

 3) Get the Most Suitable Employee to Craft an Estimate

 4) Include Sufficient Out-of-Scope Section