Hacker News new | ask | show | jobs
by nutheracc 3605 days ago
NoEstimates: http://ronjeffries.com/xprog/articles/the-noestimates-moveme...
1 comments

That's a great idea if you don't have any customers or constraints.

In the real world, there are externalities that have an impact and require some estimation. Maybe we have to provide new support materials to customers, or finish a contract with a third-party data provider, or change our infrastructure. It's exceptionally hard to do some of these things without being able to make commitments of some kind. Estimates allow us to create a guideline, and subsequently alter either the thing we are going to deliver (i.e. dropping lower-priority features) or the time we are going to deliver (i.e. missing the deadline).

If I hired a builder, and he told me that he refused to estimate the amount of money or time it would take to construct my property, you can be sure I'd move on. I have no idea why we'd consider it appropriate for an engineer to do this.

>If I hired a builder, and he told me that he refused to estimate the amount of money or time it would take to construct my property, you can be sure I'd move on. I have no idea why we'd consider it appropriate for an engineer to do this.

When every builder (i.e. engineering team) anyone ever hired everywhere blew through their estimate ~70% of the time, perhaps it's time to reconsider that stance. See the Standish Group's annual CHAOS Report for an example of software project success statistics, e.g.: https://www.infoq.com/articles/standish-chaos-2015

Estimates are just mutually agreed upon lies that engineering teams tell themselves.

This is exactly why waterfall works for building a building, and why it doesn't work for building software: You can directly observe progress.

Some of the better aspects of Agile are aimed at providing an analogous level of obviousness: E.g. don't move on until a story is completely implemented. This means you see schedule risk as it happens. This also avoids the way waterfall projects used to die, like the one I saw at Lotus while consulting on Mac porting, back when using conventional project management tools for software was a progressive management practice: A GANTT chart with hundreds of lines corresponding to tasks. Each progress bar partly filled, most of them 70-80%. Yet the project was dead because it was obvious it would not be completed in a relevant time-frame.

It is far too easy to game completion tracking in big, complex projects if you don't decompose them into small sequential projects. BUT, even though each smaller project has schedule risk that is reasonable, when you add up the schedule risk across all the sub-projects, if you are honest, it will be large enough that an estimate is going to have low reliability.

If you could count the joists and studs and shingles needed for a computer project, sure you could make good estimates. But more often there's no architect drawing at all. Just some desired behaviors. "How long to build a house that will bring joy and success to the family that lives there?" You can understand when the builder hesitates to name a price, given a spec like that.