DEV Community

loading...
Cover image for Why Software Developers Suck at Estimating Time (And How to Fix It)
7pace

Why Software Developers Suck at Estimating Time (And How to Fix It)

madeby7pace profile image Devs @ 7pace Updated on ・4 min read

You’ll probably recognize the typical software developer’s workflow:

Your boss approaches you with a new task. They ask you how long you expect it to take, so that they can plug it into their timeline for launching a new feature.

So you take your best guess to use as an upfront time estimate–perhaps it’s 10 hours.

But more often than not, this guess fails to account for all of the time that goes into developing a new feature, including related tasks like research, meetings with other team members (and check-ins with your boss), and inevitably debugging your code.

In this all-too-common situation for software developers, your 10-hour time estimate turns into 20 hours of time in actuality.

Does this sound familiar?

Aside from any personal anguish you may feel for being incorrect with estimating, you also have to deal with negative backlash from your boss. Part of your job involves making them look good, but if your imprecise estimates get in the way of on-budget, on-time delivery—they won’t soon forget that.

The solution? Improving time accuracy estimates with data.

4 Steps to Effectively Tracking Accuracy over Time

Joel Spolsky, the Co-Founder of Stack Overflow, sets forth a simple process for tracking accuracy that any software developer can implement, regardless of the tools at their disposal.

Here’s how to track accuracy over time—a process also referred to as Evidence-based scheduling:

1. Use Available Data to Get Started

Have you used a time tracker before—whether on your bosses command or out of your own curiosity?

If so, take a cursory glance over the features you’ve tracked. This will provide a baseline of historic data to use. Did your time estimates match the reality as demonstrated by your recorded data? Does that data actually consider all relevant aspects of the project, including tasks like research, debugging, and meetings?

If not, you’ll want to get started now, if only for the purpose of improving your time estimate accuracy over time. If you don’t have a time tracking solution in place, you can download 7pace Timetracker free with a 28-day trial.
Alt Text

2. Calculate New Data Points for Every Feature You’re Responsible For

When calculating your accuracy with time estimating, there are no complex formulas required.

It’s simple. Take the time you originally estimated, then divide it by the actual amount of time it took you to build a feature.

3. Create a Plot of your Personal Time Estimating Accuracy Chart.

Here’s where things get interesting (and useful).

For each feature you’re tracking, perform the above calculation to get individual data points that represent your personal time estimating accuracy for each feature.

Once you have a few data points to work with, plot them on a graph to see your personal time estimate accuracy trend line, as such:
Alt Text
Depending on how many features you’re responsible for within your organization, you’ll start to see useful accuracy trends data in just a few week’s time.

4. Use Data to Predict Future Project Estimates

Now that you have more historic data to work with, it’s time to put it to use. Review your time estimate against the actual hours you spent on each task to uncover any discrepancies and to determine what went wrong.

Interestingly enough, Joel Spolsky states that it’s somewhat irrelevant as to whether or not your time estimating accuracy improves as the result of following this process. As long as you’re consistent with under- (or over-) estimating your time investment on various tasks, your boss will still be able to use this data to predict a project’s date of completion.

Spolsky’s process of evidence-based scheduling incorporates the Monte Cristo method, which suggests multiple possible dates of completion, as well as their resulting probability of likelihood.

Regardless of your improvements with accuracy, make sure to give your boss—perhaps even other team members with which you regularly collaborate—access to your personal data plot so that they feel empowered when putting together a complete project timeline.

The key to making this data useful over the long-term is consistency. It’s not worth starting if you can’t keep it updated over time—at least until your predictions start to match your actual time invested on features.

Final Thoughts: How to Reconcile When Time Estimates Don’t Match Reality

Being inaccurate with time estimates can result in negative outcomes for the organization you work for. For the sake of your company’s future, as well as your own, it pays off to become more accurate when forecasting the amount of time a given task will take you.

Develop this skill like you would any other in the workplace to become a better software developer.

After all, once you have committed to an estimate and have started a project/sprint/iteration, it’s too late to change things. The only way to get better at estimating is to use historic data to inform future predictions.


7pace Timetracker is the only integrated, professional time management solution for teams using Azure DevOps.

Alt Text

Discussion (1)

pic
Editor guide
Collapse
hanpari profile image
Pavel Morava

I can assure you that not only software development fails to estimate project times.

In fact, psychologists conducted several experiments and proved that human beings tend to be way too optimistic in their estimation.

As for the data-driven approach, I wonder if it just doesn't create another hassle that contributes to the complexity of project management.

My real life method is simpler. Take your estimation, multiply it by two, and somewhere in between these two values lies the point of interest.

Its location depends heavily on complexity, familiarity, and vis major.