Article

Estimation is Crucial to a Software Development Project

austin-distel-744oGeqpxPQ-unsplash-e1572308427323

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.

Your-Guide-to-Estimation
Steve-Hulet-Default-BW_optimize.jpg

Steve Hulet

CTO

Steve is the Co-Founder and CTO at Fresh. A former Software Engineer at Amazon with over 12 years of web development experience, Steve provides technical, architectural, and engineering oversight to projects. Steve is responsible for all technology reviews related to websites. His specialities include programming languages such as C, C++, Java, Python, and PHP, and technology software including Eclipse, GLPK, jQuery, Linux, and MATLAB. Steve’s skills include automation, databases, linear programming, optimization, and testing, all of which he uses in conjunction with Fresh’s digital strategists provide innovative solutions to clients.