Software developers are notoriously bad at estimating, to the point where project managers and bosses regularly double or even triple our estimates. Tools like calculating developer velocities help average out these errors but also tend to cover them up. So why is it so hard to estimate development work?

Diego Basch hits the nail on the head in his opposition to the idea that we get better at estimating over time because we’re doing the same sort of things over and over again:

Real software development is about doing something that you’ve never done before. That’s why all stupid analogies about routine real-life stuff break.

As a freelance software developer I tend to do a lot of the same things over and over again but with small changes in the details. This has probably given me a false sense of being a good estimator. I think I need better problems to solve.

Speaking of estimating, if software developers are so bad at estimating why do managers and stakeholders think they are so much better? How often does your boss/client suggest that your current task should only take you 30 minutes? What insight do they have that we don’t?

I used to work in the cube next to my manager. I would hear him on the speakerphone with other managers committing me to tasks and giving them estimates. This guy could barely use a computer yet here he was saying stuff like “that should take a day”.

Maybe that’s why we have such a bad reputation for estimating.