How to improve time estimation in your software projects

Gustav Willig
3 min readApr 17, 2021
Photo by ThisisEngineering RAEng on Unsplash

Estimating time how long a task will take is pretty difficult. A question question which every software developer dislikes is:
“How long will it take you to complete this task?”

How long will it take you to complete this task?

As a software developer I know that there are lots of things that can go wrong. In general people are bad at estimating timelines (planning fallacy). The planning fallacy is a phenomenon in which predictions about how much time will be needed to complete a future task display an optimism bias and underestimate the time needed.

Hofstadter’s Law: It always takes longer than you expect, even when you take into account Hofstadter’s Law.

A study published in the Harvard Business Review found out that, in average projects where overrun by 27% and one of every six projects has a budget overrun of 200% and a schedule overrun of almost 70%

So the question is how to improve time estimation in your software projects.
One technique which I like to use to improve my estimation is

Magic Estimation

This is a method described in the book “The Ultimate Scrum Guide 2.0“ and helps to do a very quick estimating of time for a a large number of task.

Preparations

All you need is to describe each task on a sticky note and a table like the below one.

Execution

The moderator of the meeting will determine a random order of team members. During the meeting, the project manager should ensure that all team members take their turn one after the other. No team member should be skipped.

Round 1: Rough Ordering of the tasks

Following the initially determined order of participants, each team member should do the following one at a time:

  1. The first person in line takes the top task in the column backlog.
  2. The person talk very briefly about their assumption concerning the complexity and size of the task. A discussions between team members are not allowed.
  3. The person place the task in the column deemed appropriate.
  4. Assumptions made by the participant can be recorded by the moderator.
  5. The next team member picks up the next task from the top of the backlog.
  6. This continues until all cards have been placed into columns.

Round 2: Rough Ordering of the tasks

Resuming with the previously determined order of participants,starting with the first person:

  1. Select a task they think to be placed incorrectly.
  2. Short explanation why the task should be places in other column
  3. Put it in the column they think is appropriate.
  4. It’s the next team member’s turn.
  5. Once everyone has completed the second round, the Magic Estimation Game is considered over. Now there are no cards that require moving and the team is satisfied with the order established.

The second round is over as soon as no one wants to move any task anymore.

--

--

Gustav Willig

An AI Full-Stack Developer with a passion for using data to drive business decisions. Get your latest news about Django and AI trends by subscribing