In the world of software development, programmers face the legendary task of estimation. Also known as guessing, estimation is the difficult task that requires a software developer to predict a date for the completion of the project. From a developer’s point of view, here are some common thoughts about software development estimation that can help us reach the truth about it.
An Estimate is Not a Commitment
The first thing to consider when making an estimate is that it should not be confused as a commitment. While a commitment warrants a specific time, an estimate is can be rather broad. A quick analogy should help you understand the difference between a commitment and an estimate.
Suppose that you live in New York and then decide to jump on a plane to visit some family in Florida. Before the day of your trip, you calculate just how much time it should take to make your flight, which leaves the terminal at 10:00AM. Now, suppose you calculated that it would take exactly one hour to get from your home to the airport, through all security gates and onto the plane. Would you leave the house at exactly 9:00AM, or give yourself some extra “buffering” time?
Chances are you will leave some extra time in the event that something slows you down. Well, the same is true for software. As a developer, you may plan that it will take six months to complete a project, but since estimations are not commitments, you should really focus your completion date around 7, 9 or even 12 months. The lesson here is to anticipate a few bumps in the road when providing your customer a software development estimate.
An Estimate is Not a Measurement
Every developer, at some point or another, makes the realization that making a software estimate is never as simple as doing some handy work around the house. For example, when installing a shelf, you could simply take out a measuring tool to determine exactly how much space you have to work with. Software developers also use tools in their trade, but their tools are never precise. A developer could “measure” that a project may take one day, when in reality it could take as long as three days or as little as a few hours.
Estimates and Simple Math
Custom software development requires many tasks, but simple math can help us deliver a more accurate estimate. According to the concept of statistics, software developers can form more accurate estimates by breaking the project down into tasks. Instead of estimating the entire project, estimate each individual task and then add up everything at the end. The range of error is significantly smaller when you add up each estimated task and form a total.
Akesh Gupta is President of Light Speed Solutions. Light Speed Solutions is a custom software development Long Island company that design, develops and delivers high quality solutions on time and on budget.