4 ms·
[Edit: Story changed based on feedback below.] Here's my analogy: "Developer, how long will it take to acquire a vehicle that can travel a mile?" "That depen
by thirdtruck 12y ago
[Edit: Story changed based on feedback below.]
Here's my analogy:
"Developer, how long will it take to acquire a vehicle that can travel a mile?"
"That depends. Will the vehicle drive over a highway, through the sky, or dig through a mountain?"
"That's only an implementation detail, right? Give me a ballpark estimate."
"I can call a taxi here in 15 minutes and $50. Chartering an airplane will require two days and $2000. A granite-boring drill will take 6 months to design, 2 years to build, and several million dollars, possibly several times that if --"
"Geeze, no wonder no one trusts developer estimates. I'll double it and tell them half an hour and $100, just to be safe."
- ThomPete 12y agoThats still a kind of industrial example IMO, the issue with post-industrial is different. Its fairly easy to estimate how long it's going to travel a mile once you undstand how you have to travel it. You can rarely go faster than you have estimated. No the actual problem is that in the post-industrial world you haven't even build the car to travel by the highway or the tools to go through the mountain.
- thirdtruck 12y agoGood point. I'll update the story to better reflect that.
- jeremiep 12y agoEven after the update I still see it as an industrial example. Switching from time to money doesn't change knowns into unknowns. If you know exactly how much money and time its going to take for every option then the choice is easy. A better analogy would be someone asking a doctor how long it will take to cure cancer or aids. "Well you've cured chickenpox before, surely you can estimate a cure for cancer based on that!"
- IanCal 12y agoHaving said that, the alternative of "estimating is a waste of time" is also ridiculous. "Developer, will I be able to catch the next train if I walk, or do I need to get a taxi?" "Estimating is a complete waste of time" "But I just want to know if I need to spend money on a taxi. It's two miles away and I don't have any bags, and the train leaves in one hour" "Start thinking post-industrially" "FFS, I just want to know how long it'll take me to get to the station!" So what's new here? That estimating an unknown task is silly? Well of course it is! But saying estimates are useless is also daft since there are plenty of times we know a fair amount about the problem, and knowing how long things are likely to take is very helpful in deciding what to do next. If someone asks me how long it'll take to add a bit more information onto a page that we already have in the database, I can give them a fairly good answer since it's a problem that we've done plenty of times and therefore have a good idea about how long it's likely to take. If they want me to find new data sources and integrate them then I can tell them we've never spent less than X weeks doing that so we have to assume it'll take at least that long. If X weeks doesn't seem like a worthwhile investment of time, then even this level of estimation has been useful.
- jackgavigan 12y ago> So what's new here? That estimating an unknown task is silly? Well of course it is! But saying estimates are useless is also daft since there are plenty of times we know a fair amount about the problem, and knowing how long things are likely to take is very helpful in deciding what to do next. What's more, if we don't know enough about the problem to come up with a reasonably-confident estimate, that indicates that we need to define or scope out the problem better.
- Tekhne 12y agoThis analogy is flawed, and I think represents the exact problem developers experience with non-developers. There's an underlying assumption that we know what walking or a taxi are. We don't. In this analogy, developers would need to invent both before giving an accurate estimate. The methods of transport are the mechanism for delivering the result of arriving at the desired destination. Software development projects are also about creating the mechanism for arriving at a result. The software is bespoke almost by definition, or you could go buy it off the shelf. Bespoke software is unknown. It's invention. We may be able to apply past experience inventing similar things to our estimations, but there is always some amount of uncertainty. Sometimes there is a lot because we've never built anything like the thing requested. We often may not even understand what is being asked for. If I don't know what a car is, asking me how long it will take to invent one so that you could use it to get to the train is inviting trouble.