Why Are Software Projects So Hard to Estimate?

Written by Chris Picard

Chris explains why software is hard to estimate.

Introduction

If you have read popular comic strips, you know about the feud between project managers and software engineers. However, more is needed to understand why software is so hard to estimate. This post will discuss the causes of this uncertainty and ways to handle it.

Too many factors can lead to a project needing to be easier to estimate and cover in one post. However, I will discuss some of the big hitters.


Three Main Issues with Estimating Software Projects

Concerns About Adding and Supporting a Feature

Issue 1: The Difference Between the Difficulty of Adding a Feature vs. Having a System Supporting that Feature.

The leading cause of the difficulty in estimating a software feature is the difference between the difficulty of adding a feature and the difficulty of the system supporting the feature.

A good parallel to this issue is adding a bathroom to your basement. Now, most modern basements have the plumbing infrastructure pre-built-in concrete to make this addition. However, imagine if they did not and you had to add them. This factor alone can mean a difference of thousands of dollars in cost and weeks.

The same is true in an existing software system. A feature not preplanned in the original design could not have aligned with it and required significant changes. To make matters worse, it is easier to tell if the change is supported once someone tries to complete it.

Concerns About The Rate of Software Change

Issue 2: The Rate of Software Change

Another major factor is the rate of software change. Changes can be made to items every week. Most of these changes are usually benign and require no time to incorporate. However, some of these changes occasionally require a lot of effort. You may be thinking, why don’t engineers put off making these types of changes until they fit into the schedule? Some firms take this approach, but it often comes with a high cost. Once you are unaware of the latest changes, getting current can be an ever-increasing effort. Also, not being current can have huge security implications, leading to many avoidable hacks to these systems.

Concerns of How Long It Will Take to Debug

Issue 3: The Nature of Debugging

The final significant contributing factor to why estimating software is hard is due to the nature of debugging. If you have not heard that term before, debugging is a software term for removing technical issues coined from the early days of computers when a moth got caught in a vacuum tube system.

Even someone genuinely skilled in this art cannot estimate how long it will take to solve a problem. Sometimes, it can take hours or worst-case months. You will need to find out which experience you will have.


What Can Be Done About These Issues?

With all of these variabilities, along with many others, how do you give a realistic estimation of a software project?

A Novel Solution to Getting Better Accurate Estimates for Software Projects:

The only way to overcome these issues is to break the project's features into groups.

Break the Project Into 3 Groups

1. Must-Haves

2. High Priority Group

3. Nice to Haves

These groups consist of must-haves or can be guaranteed even if everything goes wrong to make it into the project.

 Our company has adopted this methodology for creating software. To learn more, check out our custom software page or contact us.

Next
Next

Why Is It So Hard for Companies to Add Feature Requests to Software?