You are here

App Development, Resources

How to Create a Cost Estimate of a Software Project

June 05, 2019

Software developers should figure out their clients’ expectations and budget, use the right employee to make the estimate, and create an out-of-scope section to create the most successful cost estimate possible.

A successful software development estimate depends on proper communication with the client first and foremost. The accuracy of the estimate comes second in importance.

Following a clear plan for client communication empowers companies to avoid unnecessary issues and makes the entire process of crafting an estimate smooth. 

At KindGeek, we have followed a set plan for all 4 years of our company’s existence. Having a plan in place has helped us acquire more than 80 projects from accounts all over the world.

The map featured below displays our clients’ locations.

KindGeek client locations

Estimates can be tricky. For the average client, every dollar counts, and he or she may not fully realize the specifics of software development.  Communicating with a client properly is an important task to prioriize that minimizes the potential for doubt about the accuracy of your cost estimates.

It is still extremely important, however, to create an estimate that covers all possible issues and is as accurate as possible.

Step 1: Figure Out the Client’s Expectations

The first and the most important step in creating a cost estimate is to figure out exactly what a client wants.

It's always fortunate when a customer provides detailed documentation that describes every element of the future product sufficiently, but our experience has demonstrated that this rarely happens.

The primary task of an engagement manager, or anyone else who is responsible for communication with a client, is to figure out the client’s exact vision and the primary functionality of a project.

A client’s general idea of the project is not enough; an accurate estimate require details. If you are unsure how certain elements of a project should work, don’t guess. Ask a client to make sure, and provide your ideas if you have relevant ones.

Understanding which needs a client prioritizes and what problem he or she wants to solve will help you better understand the purpose of a project. With this information, you'll be able to make a more accurate estimate.

Don't be afraid to ask a client relevant questions about a project. The more answers you receive, the better — for both you and the client.

Ignore the fear of appearing incompetent when 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 your 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 that he or she 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. You can then use this accumulated information to create a relevant product.

It is important to inform a client that the discovery phase will help make a future estimate more accurate and also create a more competitive and reliable project.

Step 2: Figure Out the Client’s Budget

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

Clients don't always have the right knowledge base needed to realize how much money crafting a product will require. Many can be very secretive about their budgets due to a variety of different reasons.

About 30% of our clients do not want to share their budgets.

Approximately 30% of our clients did not want to share their budgets

Perhaps the most prevalent reason to be secretive about a budget is the simple fear that a company will try to squeeze the most money out of the customer and will adjust the project cost accordingly.

In reality, a company needs to know the client’s budget to ensure it can cover the entire functionality of a project.

Using a budget to craft an appropriate cost estimate will result in two things:

  1. A client will not be intimidated and frustrated by the final price of a project provided in an estimate
  2. A company will spend less time crafting an estimate and trying to come to a mutual understanding with a customer who was not ready to receive such a bill

If a budget is too small, a company can propose to ignore non-primary functions by creating an MVP before the finished product. It is important to communicate to the client that MVPs can be as successful as complete products.

About 75% of startups we worked with had an MVP first.

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

Step 3: Use the Right Employee to Create an Estimate

A person with sufficient experience and expertise in the required technology stack should create an estimate of the project’s costs.

The most suitable employees may be very busy on other projects, however. In such cases, you might decide to have another person do the estimate who is less busy, even if they're not unfamiliar with the requested technology stack.

While this might seem like a natural solution, this is not the best idea. Companies should avoid developing this habit, since it can be very detrimental to the well-being and quality of services a business provides. You should always aim to use the most-suited employee for tasks, including creating project estimates.

Even though estimates don't take long to craft, they are still essential to the overall success of a company. You always need the best person for the job to perform each task.

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

If clients are determined to keep their budget to themselves regardless of your explanations, don’t panic; you can use your experience and a bit of intuition.

Your primary task is to make an accurate estimate that does not scare a customer away, so 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. This will ensure you don’t develop the features that aren’t necessary to the project first.

In fact, you should do this regardless of whether or not you know a client’s budget.

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

The worst case scenario that could happen would be your client claiming that your argument is irrelevant. In such a case, you can move an element from the out-of-scope section to the MVP.

Using this approach will not only make your estimate more client-friendly, but also help prioritize your workflow during the development phase.

Win a Client With a Well-Crafted Cost Estimate

The process of creating an estimate is both an art and a craft. The most technically-minded people at your software development company should analyze future projects to determine the most accurate number of hours required to create the piece of software. Employees with more communication expertise should be the ones to explain everything the client needs to know and retrieve as much valuable information as possible.

Despite all the nuanced complexity of this process, using this simple checklist we've compiled will help ensure that you have everything required for the most accurate estimate possible:

  1. Find out client’s expectations
  2. Figure out client’s budget
  3. Get the most suitable employee to craft an estimate
  4. Include a sufficient out-of-scope section