Predictions instead of estimates

· 3 min read

Ask an engineer how long something will take and you get a number. The number is a feeling. It comes out of how well they slept, how recently they were burned by something similar, and how much they like the person asking.

The industry’s answer to this has been to add process on top of the feeling. Size the work, argue about whether it’s a three or a five, compare it to some reference task from four months ago that nobody remembers accurately. All of that sophistication sits on the same subjective guess, and it inherits every problem the guess had.

There’s a way out, and it starts by giving up on sizing entirely.

Break it down and stop sizing

Split the work until each piece is small. Roughly a day is the right target, and you’ll know you’ve gone far enough when a piece is too boring to argue about.

Then treat every piece as identical. One piece is one point. Not one to five points depending on how it feels. One.

This will look obviously wrong, because the pieces are not identical. Some will take two hours and some will take three days. That’s fine, and it’s the bit that makes the whole thing work.

Count what actually happened

Record how many points the team completes per week. Not how many they thought they would. How many they did.

After a few weeks you have a rate. That rate is a measurement of a real team doing real work on a real codebase, including the meetings, the interruptions, the production incident on Tuesday and the two days somebody was ill. All of the things that never appear in an estimate are already inside it, because they were there while the number was being recorded.

Now the arithmetic is trivial. Points remaining, divided by points per week.

Why the uneven pieces don’t matter

You’re not predicting any individual piece, and if you tried you’d be wrong, the same way the estimate was wrong. You’re measuring a rate across a lot of pieces, and once there are enough of them the short ones and the long ones stop mattering to the total. The errors don’t disappear. They cancel.

This is the whole trick. Sizing tries to make each piece accurate, which is impossible. Counting accepts that each piece is inaccurate and relies on there being enough of them.

What changes

You stop asking people how long they think something will take, which was never a question they could answer. You start telling people what this team has done for the last six weeks, and what that implies about the next six.

One of those is an opinion. The other has a record behind it.

LATER EDIT: Two months on I wrote up the dates themselves, and what happens to them when a project slips. That’s the other half of this.

Originally published in November 2018. The server it lived on is gone, so this is rebuilt from memory.

#project-management #engineering-management #estimation