Web Development

Estimation is Crucial to a Software Development Project

January 9, 2020

How much does a new car cost? That depends on the car. How much does a new software application cost? That depends on the application.

In either case, estimation isn’t an exact science. Until you have a somewhat detailed understanding of the application system and its specific features, you will have uncertainty in estimates. However, estimation is still crucial to the early stages of a custom software development project.

Custom Software, Emphasis on the Custom

Key question: Why do I need to pay you to do research or planning?

Custom software can be compared to buying a high-end home completely tailored to you versus buying one that you have to fit into. Or a custom fit suit versus one that kind of fits well. Or building your own business versus buying another franchise.

There are many benefits to custom software because you can completely customize it to fit your business needs. Integration with your other systems, scalability to your needs, unique branding, and ownership are also some of the key benefits.

That said, however, renting or buying software ready for purchase is a much simpler and more straightforward process than building custom software from scratch.

Uncertainty Factors

When building a custom car from scratch, you won’t know the bottom-line cost until every component is accounted for. Even then, there are complications: wrong parts, more safety tests, changing preferences that all have to be factored in along the way. There will also be fluctuations.

By definition, custom software is custom to a certain use case. In some situations, the development team will be building a novel application that requires a custom approach. Even with the most skilled team, there will always be levels of uncertainty throughout the process. This means estimates or understanding of functionality upfront will change as the project progresses.

Adding Detail Adds Certainty

Key questions: Why are some price ranges so wide? Why can’t you tell me no what this will cost?

Now that you know you want to build a car from scratch, you need to understand the requirements for the car’s design and performance. To truly accomplish what you set out to build, you’ll need more information to make key decisions before getting too deep into the process.

As development decisions are made, research is conducted, and requirements are refined, the initial variability decreases because the team has more certainty around what they’re delivering. The more you research and plan upfront, you’ll often have more certainty about an estimate.

Estimates are typically provided during the initial product stage or approval. This happens upfront before most of the discovery and requirements gathering has taken place. While the estimate may be accurate, its accuracy can’t be assumed without further exploration. For this reason, you will see large ranges for the first estimates and narrow it down as you gather more information.

This demonstrates that it isn’t particularly valuable to give supposedly precise estimates on development efforts until the project matures and has more complete requirements. Instead, sticking with ranges of possibilities while understanding the project’s level of uncertainty will allow you to have more realistic expectations moving forward. The more you put into the planning stages, the more you can hone in on a realistic estimate and avoid surprises down the line.

The Payoff of Effective Estimation

Whether you’re buying a custom-made car or investing in custom-made software, the same truth of estimation applies: It’s an imperfect but crucially important process. Given the reality of technical, temporal, and budgetary constraints, it’s important to develop as accurate an estimation as possible when planning for a major software development project.

As a company that delivers software, in our experience, one of the most important things is to build trust with clients. It begins with setting the right expectations for a successful partnership. Accurate estimates set the stage for the entire project, provide understanding, establish parameters, and identify constraints that lend higher certainty to the project. Clearly understanding how the estimates were made – by both the client and the agency – will make it easy to identify why overages and rescoping need to occur.

Dangers of Inaccurate Estimation:

  • Undue stress
  • Unhappy team
  • One party is bearing all the risk of overages
  • Project risk for completion
  • Trust deficit

Benefits of Accurate Estimation:

  • A healthy, productive working relationship
  • A happy team whose expectations are met
  • A risk-free partnership
  • Trust, which is built and maintained throughout the project lifecycle

Wrap Up

Estimation can be extremely difficult. But it’s worth investing time and energy into understanding the process and the various approaches to feel confident about establishing a strong partnership. The end result? Delivering a successful product that brings value to your company.

Download our free white paper: Your Guide to Estimation to learn how to build the most high-end products for your company.

Fresh Consulting's white paper, Your Guide to Estimation



Your Guide to Estimation


You might also like...



What is AR Development?

What is AR Development at Fresh? Augmented Reality (AR) development introduces immersive experiences that completely alter the way we interact with and perceive the world. Given that AR applications have the power to alter our perception in new, thrilling ways, creating sophisticated AR experiences necessitates a deep understanding of the technology under the hood. Harnessing … Continued

...continue reading



How to Plan for a Website Redesign

A little pre-planning can go a long way to accomplishing your short-term results and long-term goals for your website. Let’s dive into some core steps you can take to outline the project and codify your goals before jumping into design and development. #1: Define Your Audience The more information you have about your target users, … Continued

...continue reading



Everything as Code

Writing code isn’t the only skill you need to deliver software, but it might be the most important skill for everyone involved. Every role involved in delivering and operating modern systems is beginning to use tools to automate their jobs. Instead of having a deployment checklist, you can define each step in code and have … Continued

...continue reading