Live data from Hacker News

Software Estimation Is a Losing Game (2014)

rclayton.silvrback.com

31–40 of 50 posts

Re: Software Estimation Is a Losing Game (2014)

#31
post #20

Earlier quoted context omitted.

I worked on an estimation tool[1] inspired by PERT 3-point estimates for a while, simply because there weren't any when I went looking one time. It was a lot of fun reading up on the estimation literature in various disciplines. Personally I think that the real magic of PERT 3-point estimation is the "unpacking effect" -- making people think about the subtasks of a headline issue. When I'm in situations where I point…

The other part of 3 part estimates that I like is that it forces everyone to consider the worse case. What can go wrong? What risks are there to this task? And only then do we talk about how long we think it will probably take. The problem I have always had afterwards is communicating the results. Most people I've worked with cannot intuitively grasp confidence levels (90% vs 95% vs ...). They also invariably want a…

> One of those was the variance in each estimate, which is just the Std Dev squared. The numbers were big. No one could stop talking about how big the numbers were. No one knew what a variance was, nor appreciated that it was just the number in the previous column, multiplied by itself.

Just out of curiosity, were any of them interested in learning the answers to these mysteries?

Re: Software Estimation Is a Losing Game (2014)

#32
post #19

I have to laugh when I see these posts. So, software development is a special activity that should not be constrained by budgets or deadlines (or estimates)? Where do I sign up? There are so many strawmen here I can't possibly address them all. If you can't provide a credible estimate for a piece of work, you either a) aren't very good, b) don't properly understand the work to be done, or c) perceive some aspect of t…

"Estimating work and committing to those estimates"

I agree with you that estimation has value, especially at the large scale when you are trying to budget for a multi-year project. (and at that level- the detail you think should be there simply isn't) You are also right that at some level it is a social problem, estimates and commitments are two very different things- and you don't just commit to an estimate. Estimates are predictions, statements of probability about the unknown future, hopefully based on solid data from past performance and some understanding of the work to be done. Commitments are promises to make things happen that are only partially within one's control. In many cases, an estimate is needed prior to getting the level of information that one would need to make a truly accurate prediction, so we respond with a range of dates to reflect that uncertainty, but this can be too early to make any kind of commitment.

If you estimate at the point in time where you are 50% likely to get the job done, and commit to that, half of the time you will be late, even though it is "average time" it would take to do that work. You can't take the easy way out and commit at 100% likely time, because you could be sick in the hospital tomorrow (and with a big enough project, someone eventually is). If you commit to an 90% confidence estimate, you get stuck with Parkinson's law type problems. Not to mention that those predictions with percentages are hard to base on real data...but if you make enough of them, you can actually get feedback on your accuracy.

The problem is that most audiences for estimates aren't able to deal with the uncertainty, and many givers of estimates are easily pushed into overcommitting. This is why some of the ideas popularized by the Agile movement seem to work- if you fix the time increment, it is much easier to flex on the scope, especially when it is not possible for it to be well-defined in advance. For example, there are many cases where an high confidence estimate can't be made- as is often the case in more research oriented projects, where the path to a working solution, or whether one will even be found, is unknown, and it is part of the job of the project to discover that. You are stuck with estimating how long it will take you to try approaches x, y, and z.

McConnell's classic "Software Estimation" probably says it better. See ch 1 of McConnell's book here- page one is on the commitment/target/estimation problem: http://www.stevemcconnell.com/estimation-01.pdf

Re: Software Estimation Is a Losing Game (2014)

#33
post #29

If I'm ever asked for an estimate, it's after the project schedule has already been set in stone. On my current project, I am the sole full-time developer. The requirements were gathered from the client without my involvement. The schedule was laid out without my input. Then the whole thing was dropped on me.

I really wish more articles on software engineering practices would at least acknowledge that this is the reality for a huge number of developers in the real world. I just can't take them seriously without it.

If your new-fangled-to-you development ideology starts by assuming a fundamental level of congenial cooperation between different departments of your organization, then you've designed your system for a fairy-tale world. I don't suspect most people are able to change organizations easily. I suspect most people are stuck dealing with the hand they've been dealt. The lies they were told during their interview. The other employees that lied during their interviews. It's a really messy world out there.

Re: Software Estimation Is a Losing Game (2014)

#34
post #20

Earlier quoted context omitted.

The other part of 3 part estimates that I like is that it forces everyone to consider the worse case. What can go wrong? What risks are there to this task? And only then do we talk about how long we think it will probably take. The problem I have always had afterwards is communicating the results. Most people I've worked with cannot intuitively grasp confidence levels (90% vs 95% vs ...). They also invariably want a…

> One of those was the variance in each estimate, which is just the Std Dev squared. The numbers were big. No one could stop talking about how big the numbers were. No one knew what a variance was, nor appreciated that it was just the number in the previous column, multiplied by itself. Just out of curiosity, were any of them interested in learning the answers to these mysteries?

I spent a while trying to explain the purpose behind the numbers when it came up, but no, it really just kept coming back to the variance numbers being big. Not "why is the estimate for this so uncertain?", but more "Why is this number 100000? That's big".

This was actually not a time estimate. We were estimating the footprint for our production deployment for a very complicated distributed system. Most of the pieces were only in early development and the load model itself was uncertain by orders of magnitude.

It's a situation where statistics is easily applied, if you know statistics. If you don't, you'll never even realize it would have helped and keep saying that math is useless outside of school.

Re: Software Estimation Is a Losing Game (2014)

#35
post #7

Pardon my French, but it's a load of bollocks. Sure, I hate estimating and I'm bad at it, but I've worked with many others who were better than me at it and did consistently deliver what promised, when they promised it. And yes I'd much rather just sit and contemplate and re-re-rework 'the design' and be all-important about 'it's done when it's done' - but I fully well understand that any customer will just fire me a…

>Building construction is also fraught with unexpected events and project management issues etc., but I'd laugh any building who would propose that I just keep paying them until it's done,

In practice, though, this is exactly how building construction and civil engineering works. After all, if the bridge is half-built, what's the customer going to do? Walk away? When was the last time you heard about any large civil engineering project coming in on time or on budget? It's to the point where we're relieved when the project ends up within an order of magnitude of its projected cost.

Re: Software Estimation Is a Losing Game (2014)

#36
post #19

I have to laugh when I see these posts. So, software development is a special activity that should not be constrained by budgets or deadlines (or estimates)? Where do I sign up? There are so many strawmen here I can't possibly address them all. If you can't provide a credible estimate for a piece of work, you either a) aren't very good, b) don't properly understand the work to be done, or c) perceive some aspect of t…

The problem is that we still don't have the tools or language to specify software projects with the same degree of precision that other engineering disciplines do. Give me a spec as complete as precise and as a blueprint for a building or a bridge and I can give you a pretty good estimate.

What I get instead is a stack of vaguely worded "user stories" and, if I'm lucky, some wireframes that will invariable wind up looking nothing like the final design.

Re: Software Estimation Is a Losing Game (2014)

#37
post #29

If I'm ever asked for an estimate, it's after the project schedule has already been set in stone. On my current project, I am the sole full-time developer. The requirements were gathered from the client without my involvement. The schedule was laid out without my input. Then the whole thing was dropped on me.

I guess there's really no estimation to be done at all then, right? Are they expecting any?

Re: Software Estimation Is a Losing Game (2014)

#38
I've found that using past data is very helpful. Look at your past projects, compare your initial estimates to the actual outcome when the project was finished. After a dozen or so projects, you should be able to formulate a percentage buffer to help you get closer on future estimates. Continually make this assessment and eventually you will find that you are getting much closer to accurate budgets/timelines.

Re: Software Estimation Is a Losing Game (2014)

#39
post #29

If I'm ever asked for an estimate, it's after the project schedule has already been set in stone. On my current project, I am the sole full-time developer. The requirements were gathered from the client without my involvement. The schedule was laid out without my input. Then the whole thing was dropped on me.

I guess there's really no estimation to be done at all then, right? Are they expecting any?

They always ask. They're basically just asking you to draw the Gantt chart for them, so they can then ride your shoulder and bug you for each piece as it gets done.

Re: Software Estimation Is a Losing Game (2014)

#40
post #38

I've found that using past data is very helpful. Look at your past projects, compare your initial estimates to the actual outcome when the project was finished. After a dozen or so projects, you should be able to formulate a percentage buffer to help you get closer on future estimates. Continually make this assessment and eventually you will find that you are getting much closer to accurate budgets/timelines.

If I have any past projects that are good indications of my current work, it means I'm stuck doing the same things over and over again.
Post reply on HN