Tonight I read this blog post about estimating the time it takes to create software. The author is against software estimation, mostly because he doesn’t believe that it is accurate. Due to this inaccuracy and trying to manage this extent of inaccuracy we are embarrassing ourselves in front of our customers and wasting huge amounts of time trying to stick to an estimate. The author wants to do away with estimates.
I completely agree with him that software estimates are not accurate. A few months ago I underestimated a project by a factor of three – it took me three times longer than I expected. And since our company’s philosophy is that our clients should know the most they are going to pay up front, we ate the time for that mistake. That isn’t the only time I’ve gotten an estimate wrong, either – I know the pain of software estimates.
But unfortunately they are the best we’ve got. From a software developer’s point of view it might make sense to discard estimates. We definitely don’t make estimates and timelines for our company’s internal projects. But we are in the nice position of only burning our time when we make software – we don’t have to worry about any employees’ salaries or health benefits or making sure they can feed their families because it’s just the two of us.
Most businesses don’t have that luxury. They have real budgets which they depend on for survival. They need to know how much they will be paying for something and estimates are the best we have right now.
I wish we had a better way, but I can’t think of one. Somehow we’d have to remove money as a factor and that doesn’t seem possible.