The Art of Estimating for Custom Software Development - Inverse-Square
post-template-default,single,single-post,postid-16313,single-format-standard,ajax_updown_fade,page_not_loaded,,qode-content-sidebar-responsive,qode-child-theme-ver-1.0.0,qode-theme-ver-12.0.1,qode-theme-bridge,wpb-js-composer js-comp-ver-6.4.1,vc_responsive

The Art of Estimating for Custom Software Development

custom software development

The Art of Estimating for Custom Software Development

One of the most challenging things about building custom software applications is estimating the time involved for the build and the associated cost.

The crux of this challenge comes from the fact that we are a custom software development shop and most of what we do is being done for the first time. There is a lot of research and development in our work, and that can lead to uncertainties.

When there’s not a software solution on the shelf that fits your needs and we take on your custom project, we minimize the challenge of time and budget estimation with thorough planning.

We use wireframes to generate details concerning the functional requirements of an application. This allows us to dive into the details of what will be required to make your custom web application a success.  Accurately estimating tasks is only half the battle; knowing all of the requirements that generate the corresponding tasks and estimates is the starting point.  Wireframes help provide us with a great starting point.

With the wireframes fully assembled, we dissect each screen and discuss the tasks that will need to be accomplished to build that screen.  We then estimate each of those tasks with an optimistic (low) and pessimistic (high) number of hours for completion.  Those estimates are created in LiquidPlanner, our project planning application of choice. LiquidPlanner then analyzes the estimates to produce the most probable (expected) outcome.

In a perfect scenario, we would have multiple team members from our web application development company involved in the estimation process.  In this instance, we would usually have the full wireframes complete and a project plan that breaks down the bulk of the task list. Then, we let each user anonymously submit how long they think a task will take. This helps prevent unintentional influence from the group and also highlights major deviations on someone’s estimates. Having multiple members helps to remove more unknowns, each individual generally brings unique experiences from their time in the industry.

Estimating involves risk, and we have different types of contracts to provide different options of sharing/assigning that risk. With a time and material contract the client assumes the risk, with a potential reward that we get done faster than expected, or even right on schedule.

If a client is risk-averse or has a fixed budget, they might choose to do a fixed fee project.  In that case we take their numbers, use the high end estimates, and then apply a 20% insurance policy to the project.  Fixed fee projects are generally more expensive but they come with the guarantee of a known  price.

While all of this estimating is helpful for setting up the contract it has to be an ongoing process for actually managing the project.  Every day time has to be recorded so we know how much effort is left on a task and on the project.  Every week, estimates have to be updated and refined. Estimates will continue to change on the project plan up until the last day of the project. Think of a project plan as a living thing; it evolves and grows.

If you would like to discuss whether a custom software application or an off the shelf model, would suit your business’s needs, contact us today for your free consultation.

Want to develop your custom software with Team Awesome? Request a consultation with us today.