I came across two articles over the past few days, both of which resonated with me, but neither of which filled me with much hope for a resolution to the problem they addressed.
Ron Jeffries‘ article, Estimation is Evil: Overcoming the Estimation Obsession, enumerates some well-known issues with how software estimates are interpreted and the problems they cause. His suggestion is to forego estimation, start building software, and come to a go/no-go decision after a couple of iteration cycles.
Martin Fowler followed up Jeffries’ with his own post, PurposeOfEstimation. In it, Fowler says it may be better to only estimate items that require you to make a significant decision.
But as Jeffries states in his article:
It seems that “they” [clients] often want to know how long something is going to take, and how much it will cost…”they” are often powerful and have the money we need, so we need to answer their question, even though we cannot.
And usually “they” want the question answered before the work starts, the exact point in time when “…we know less about our project than we’ll ever know again.”
Ultimately, I think the issue comes down to client education about the estimation process and it’s weaknesses. Fowler touches on this when he quotes his colleague Angela Ferguson:
the way that estimates set expectations is up to us – it is poor project management (whether by project managers or other team members) that results in a client who thinks estimates are fixed, or that raw estimates = actual effort/duration
Even more important is building up trust with the client by delivering working software as early and frequently as possible. Establishing a pattern of delivering value to the client can create enough goodwill where the client can focus on the bigger picture and look past the inevitable misestimates that occur.
Convincing your client to forego an estimate before work begins, or taking the time to educate them that estimates are not guarantees, are both difficult tasks. Both the appropriate choice of strategy and success with either will vary from client to client. But I find it hard to envision an environment in which business concerns don’t require estimates to be made with some level of accuracy.