Lately there has been a fracas brewing about the “No Estimates” movement.
I have some meta commentary before diving into the subject at hand.
First of all, like “agile vs waterfall” itself, or the agile word itself, “no estimates” tries to capitalize on novelty, disruptive shock value, and binary thinking as opposed to a holistic reasoned discussion.
Let’s all agree on something — estimates are vague. How vague are they?
While I agree that we should let everyone know that estimates are — well estimates, and not guarantees, it’s folly to think that we should do no estimating. (Note this means I don’t agree with sprint “commitments” — especially in a vague or no estimate world).
Of course, the NoEstimators will say, well we didn’t REALLY mean NO estimates, that’s just another case of bait and switch and false advertising, similar to “agile” — why not call it deemphasized estimates?
So now on to the crux of the issue.
The estimates will get more accurate as the work is done.
Let’s say I own a 1920’s Victorian house and I say, oh, well, I want better, more energy efficient windows.
How much, dear Contractor, will it take to upgrade my house so all the windows are double pane glass, with or without LCD dimming.
Well, they can guess, but only after digging through each and every window frame will they determine, how much moisture rot there is, if any, how much termite damage there is, if any, how much settling of the house in any particular area might cause framing issues, etc.
So it’s like a Mandelbrot curve. The coastline gets longer the smaller caliper you measure it with.
Any upfront estimates will be saddled with the Mandelbrot problem — so let’s admit that.
That doesn’t mean estimates are useless, it means the estimates have a margin for error.
Let’s talk about that and bring it out into the open, not grandstand with shock value reactionism in hopes of getting linkbait.
We need modulated, varied reasoning, not drawing lines in the sand for shock value. Shock value won’t sustain lady gaga and it won’t sustain modern software development.
My proposal of range estimation (http://postagilist.wordpress.com/2012/07/09/range-estimation-versus-point-estimation/) which predates the NoEstimate movement, is a good place to start in this regard — not that I invented it — and I think this is a better root for discussion — as it avoids the extremes and focusses on the reality.