How to Get a More Accurate and Efficient Estimate for Your Software Project

July 29, 2019

Although getting an estimate for a software project can be challenging, you can take steps to make sure you get a precise estimate in a timely manner.

As a general rule of thumb, the more information you disclose, the faster and more accurate your estimate will be.

Because the success of your estimate largely depends on your involvement, you should have a decent understanding of how software vendors approach the estimation process.

Clearly Articulate Your Needs 

As a client, you need to help your software vendor understand your needs and what you want your software project to achieve. 

Consider the following:

  1. What is your end goal?
  2. What does the software vendor need to know?
  3. How much time does the vendor need to estimate the cost of the project?

Depending on the scope of the project in question, it can take between one and three days to come up with an estimate. However, if you’re pressed for time and need your estimate quickly, there are ways to speed the process along and make it smoother for everyone involved.

Give Your Software Vendor the Context of the Project

Your software partner needs to be familiar with the business context of your project. 

Communicate important information such as:

  • Your business’s mission
  • The products/services you offer
  • Industry-specific requirements (e.g., a critical infrastructure support system will differ in security requirements from a barbershop-booking app)
  • External factors shaping the business context (e.g., launching a Christmas app in January would never be successful—always apply common sense)
  • Third-party agendas (i.e., the involvement of any external investors, VC funds, angel investors, family members, or anyone who might have a say in shaping the final product)
  • The benefit you hope to provide users (e.g., the possibility of booking an appointment through a barbershop-booking app)
  • The defined target customer segment
  • The features required for a minimum viable product (MVP)

All of these elements will impact how your software development vendor approaches your unique project. 

If you don’t have that information yet, brainstorm a priority list of the top 5 features you want your software project to exhibit. 

Then, divide those features into two categories:

  1. “Must Happen” – These are the features that are non-negotiable and must be included in the final product.
  2. “Can Wait” – These are features that would be nice to have, but don’t need to be included in the initial iterations of the product. 

When prioritizing these features, consider your unique advantages in comparison to your direct and indirect competitors. 

Also, always be sure to respect your competitors’ intellectual property and never send your software vendor a link to a competitor’s app asking them to copy it. 

Know What You Want the Software to Achieve 

Your software engineers cannot produce a software project that meets your expectations if you do not know what you want it to achieve. 

It’s important to consider and communicate the following: 

  • How will the user interact with the product?
  • What do I want the product to look like?
  • How much traffic do I expect to earn?

By considering user flow, creating an app mockup, and setting goals for traffic volume, you can get a better idea of the product you want, which will help you clearly communicate your expectations to the developers. 

For example, if your software vendor knows the level of traffic volume you expect to earn, they will be better able to define the technical requirements for future scalability. 

It’s best to assume your traffic will be low at first since overnight success is rare. As your traffic grows, your budget might have to double or even triple to accommodate the additional users.

If you don’t have the basic requirements figured out, host a discovery workshop to define them. This will lengthen your timeline but will make for a more a seamless software creation process. 

Manage Your Workflow Using the SCRUM Method

Project management is a complex process that involves numerous steps.

Once the company has a clear idea, they can begin the estimation process which consists of selecting a pricing model, negotiating price, and splitting the project into five main phases: 

  1. Development 
  2. Testing 
  3. Adjustments/fixing bugs 
  4. User Acceptance Test 
  5. Deployment 

To avoid burying your project in endless corrections and proofing, use the Scrum methodology, to make validating your project’s features easier. 

SCRUM allows team to work in "sprints" and allows for more a more productive and efficient development process. 
Scrum is a popular agile methodology where teams work on a product in sprints, usually in two-week intervals. 

In each “sprint,” the vendor’s SCRUM team plans the scope of work, delivers it, and presents the results to you for verification.

As a result, if the team creates unsatisfactory features, you will learn about it no later than two weeks after, and you can react accordingly.

Predictability Is Key in Software Project Pricing Models 

You need to adopt a certain mindset when discussing pricing models.

When discussing price, it is always important to: 

  1. Clearly communicate budget restraints 
  2. Ask yourself if the budget is too good to be true

Money is always a sensitive issue, but transparency will make it easier to avoid disappointment. A trustworthy software partner will also tell you which features can and can’t be brought into the market.

In order to get estimates that aren’t too low or too high, it’s important to get the opinion of at least three different vendors to compare. 

There are three main pricing models you will likely encounter:

  1. Fixed-price
  2. Time and materials
  3. Time and materials with a cap

These different pricing models come with their own sets of pros and cons, so it is important to consider each one to determine which is the best fit for your project, business, and budget. 

Fixed-Price Contracts Offer Security but Less Flexibility

In the fixed-price model, you and the vendor agree on a price. This gives you security and assurance you won’t exceed your budget. However, it also offers less flexibility in product development. 

Under this pricing model, introducing changes to the scope of your project may prove difficult. Those changes require you to put in extra effort and issue a formal, time-consuming “user change request” which may require additional costs. 

Time and Materials Offer Flexibility but Less Cost Assurance

The “Time and Materials” model lets you define the price based on the actual time and resources devoted to your project.

Unlike the fixed-price model, time and materials offer more developmental flexibility, so changes can be introduced more quickly but at a cost. 

A “Time and Materials” contract also gets you started faster, which adds a clear benefit: The sooner your software is ready, the sooner it can bring you profit. 

We’ve seen clients struggle with changing their product in the final stages of development while using the fixed-price model. Because of this, the vast majority of our contracts are Time and Materials.

Unless you’re a software development expert, having a more flexible contract is better so you can adjust throughout the process as needed. 

Time and Materials With a Cap Allow Flexibility Without the Risk of Exceeding a Budget

But what if you want flexibility and cost security? In this case, you could choose the “Time and Materials With a Cap” pricing model. 

This means that you can set a budget limit and make sure you don’t exceed a pre-defined amount. The “cap” essentially means you factor a total cost limit into the equation.

This approach will help you avoid overspending while allowing room for adjustments. 

Make Sure You Understand What the Estimate Covers

Before you accept an estimate, always ask what the estimate covers. 

Ask your software vendor whether the deployment process is included in the estimate and make sure they apply the best available practices to the production process.

This applies primarily to unit tests and code reviews. Finding those accounted for in the estimate is a sign you’re dealing with serious professionals.

Another question to consider is how can you be sure to time and materials won’t turn into an endless struggle without a clear deadline for project completion?

Look to the company’s social proof and portfolio for assurance. If the portfolio is rich and contains multiple testimonials, you don’t need to worry about the vendor being unqualified or inexperienced.

Experiences software vendors may challenge your ideas – Don’t treat this as an attack. Discussion is key to a healthy creative process and the expertise of your partner can be valuable. 

Budget for Additional Costs and Human Error

Cost estimation is not an exact science, and human error needs to be budgeted for. 

According to Project Smart, more than half of projects (52%) are underestimated and almost a third of projects (31%) get canceled before completion. 

31% of projects get cancelled before completion, and 52% of projects are underestimated cost-wise. 
However, the risk for an underestimated cost can be mitigated by asking critical questions during the estimation process and making sure you budget for error.

A Smooth Estimation Process Requires Clear Communication

After 14 years of experience building software projects for clients, I’ve found these guidelines to be extremely helpful in every area of our own software project estimation, from product design to choosing the right pricing model.

By clearly communicating with your software vendor, setting realistic expectations, and considering which pricing model best fits the needs of your project and budget limitations, you will likely enjoy a speedier, smoother software development experience

You have all the tools you need; the rest is up to you.