Live data from Hacker News

Poor developer estimates, a.k.a. guesstimation

alexefish.com

21–30 of 72 posts

Re: Poor developer estimates, a.k.a. guesstimation

#21
post #4

Also be aware of the selection bias when it comes to estimations. The companies A, B and C all put in estimates for a product based on similar premises. Company C gets selected because their estimate is the lowest. This could be because company C is the best and can do the work quicker but it is also possible that company C has just made a low estimate pretty much by chance. Estimates that are wrong (lower than the a…

I think you're mixing bids with estimates.

Is there some Universe where developer time is not synonymous with cash money dollars?

Re: Poor developer estimates, a.k.a. guesstimation

#23

Earlier quoted context omitted.

I think you're mixing bids with estimates.

Is there some Universe where developer time is not synonymous with cash money dollars?

No, I mean, the process of inviting tenders or bids is distinct from estimating.

Bidders will inevitably perform some sort of estimate, even if it's only a wild guess. But even the most rigorous internal estimation process may then be passed to management or sales staff who will use it only as a starting point for the bid.

The estimate didn't change; instead it was an input into the bid.

And in as the grandparent comment demonstrates, buyers often pick the lowest bidder.

Re: Poor developer estimates, a.k.a. guesstimation

#24
Many developers don't believe that management is going to listen to their estimates so they either avoid giving an estimate or they tell management what they want to here.

A friend of mine worked at a place that was 'trying' agile (at the behest of top management) and had them entering estimates for tickets and recording time for them.

My friend heard from his boss that his "estimates were too high" and when he found at that the lead developer wasn't making estimates OR putting time in, he stopped, and started looking for his next job.

Re: Poor developer estimates, a.k.a. guesstimation

#25
post #16
post #7

I recently read Software Estimation (Steve McConnell, author of Code Complete). My main takeaway was to distrust developer intuition and instead build estimates from data. One example is to look at the duration of past projects of "similar size" (still requires some qualitative analysis). Another example is to count the number of distinct "features" or "components," and build an estimate from those. Both of these sti…

My main takeaway from the McConnel's book has been not to provide an estimate as a single point number (say something like it will be done in 5 weeks) but rather as a range (say something like 5-8 weeks), as providing a single point number would give the impression that it is the target date (while it is not). But unfortunately most of the times all I have got is blank stares when I give estimates as a range and a qu…

Sometimes I like to say '1d4 hours' or something like that.

Re: Poor developer estimates, a.k.a. guesstimation

#26

Earlier quoted context omitted.

Your issues are exactly why that story is a great parable for poor project planning.

Absolutely. But it's often trotted out as a parable for why project planning is pointless, or impossible. Which is a very different conclusion to draw.

I don't know, in software projects the country is not just unknown but potentially unknowable; no-one may have walked that kind of terrain before. THEN there are no experts, its useless to predict. And diving deeper into the problem may involve actually solving it.

That's my issue with software planning. I can often DO the damn project in the time it takes to estimate doing it. What responsible course of action can I take then? Investigate but don't save the code, give the estimate, then go back and type it in? Blow smoke, give an estimate for the deep dive but call it the project?

Re: Poor developer estimates, a.k.a. guesstimation

#27
post #2

This is actually a solved problem in some industries using a technique called "3 point analysis". I've no idea why it hasn't really caught on among developers; it's very useful. Essentially it goes like this: 1. Estimate the very best possible outcome. How long would something take if everything went to plan? 2. Estimate the very worst possible outcome. If everything that can go wrong does, how long will the task tak…

What if the API you are planing on using can't do quite what is needed. But you only find out 2 weeks into the project. That's a worst case but its hard to foresee these things.

Re: Poor developer estimates, a.k.a. guesstimation

#28

Many developers don't believe that management is going to listen to their estimates so they either avoid giving an estimate or they tell management what they want to here. A friend of mine worked at a place that was 'trying' agile (at the behest of top management) and had them entering estimates for tickets and recording time for them. My friend heard from his boss that his "estimates were too high" and when he found…

Exactly that. My manager (VP) has the sad habit of reporting what he knows they want to hear, ignoring his Engineers' estimates entirely.

Re: Poor developer estimates, a.k.a. guesstimation

#29
I've ran across this topic on 3 occasions in the last week in various forms: online, with a team, and on a LinkedIn board. Wow, must be something in the air.

So here's the short version:

1) Agile relationships with customers boil down to Time and Materials. You're there working sprint-by-sprint doing stuff. Each sprint the customer and the team agrees on what it can do. The team decides, but the customer can always fire them. This isn't estimation, this is just how an Agile engagement is supposed to work.

2) Most Agile teams split estimating into two parts: how difficult it is to deliver, and when it can be done. It's important to understand that by separating these concepts, you're not pressured to make time commitments when spitballing story difficulty. That's a good thing. Decouple those concepts and leave them decoupled.

3) As a trailing indicator, you should use past team performance as an estimate of how the big picture is going to play out. [insert long discussion here about the various ways to do that]

4) None of this is business or contract management. That's another can of worms. Yes, it all gets mixed up sometimes, but there are ways to keep visibility at the right level to let all the players work effectively.

5) None of this will make-up for working in a crappy environment. Sucky situations still suck.

Estimating can be a pain in the ass, but it doesn't have to be. I think we've reached the point where most of the pain is gone if you set the environment up the correct way. (fingers crossed)

Shameless plug: I've got a no-nonsense Agile Tune-Up email series in case anybody's interested. It covers estimation (along with many other Agile team topics) http://bit.ly/15sz0Pl

ADD: As you can tell from the many comments, this is also a topic that has been done to death. There are more methods out there than you can shake a stick at. (Hence my reluctance to dive in with "This is the perfect way to estimate!"). But the key takeaway is this: lots of simple, quick estimates that converge over time beat any kind of complex model done only once. If you only get one thing, that's the thing to understand. We keep trying to "fix" this by creating models, when the real answer is that over time the team learns to estimate each project as a separate entity. The more engaged it is with the problem and the farther along it is, the better the estimates get. It's a funnel. Don't spend a lot of effort trying to polish up the first part of the funnel: rather, make a commitment to using empirical knowledge and re-estimating to provide better and better estimates as you go along. There's a lot more value added to everybody's job that way.

Hell, I don't care if you use KLOC, some kind of FPA, phases of the moon, or your lucky astrology mood watch to estimate, as long as you continue to re-estimate as you go along and your estimates quickly converge on the actual result.

Re: Poor developer estimates, a.k.a. guesstimation

#30

Earlier quoted context omitted.

Absolutely. But it's often trotted out as a parable for why project planning is pointless, or impossible. Which is a very different conclusion to draw.

I don't know, in software projects the country is not just unknown but potentially unknowable; no-one may have walked that kind of terrain before. THEN there are no experts, its useless to predict. And diving deeper into the problem may involve actually solving it. That's my issue with software planning. I can often DO the damn project in the time it takes to estimate doing it. What responsible course of action can I…

All estimates are wrong, what matters is improving their business value by making them more accurate.

That some estimates will be less accurate due to uncertainty is not by itself a reason to totally abandon estimating.

The generalised case of your argument is that estimation is imperfect in all cases, therefore, we must abandon estimation. This is known as the Nirvana Fallacy: "we have a partial, imperfect solution. Because it is not complete and perfect, it is worthless".

Even modest improvements in estimate accuracy can have enormous value.

By the way, estimating is not planning. An estimate is an estimate. A plan is a plan. They are different things.

Post reply on HN