Live data from Hacker News

Why Can't Developers Estimate Time?

blog.patchspace.co.uk

41–50 of 134 posts

Re: Why Can't Developers Estimate Time?

#41
post #22

Earlier quoted context omitted.

[deleted]

I do agree with him. In my opinion, software development is exactly a creative process. Many times, you have to come up with a creative solution that fits within certain constraints. Also, in the beginning usually only a vague image is known. The artist (developer) has to fill this in and make sure it is what the client wants. Also, many creative works are collaborative efforts as well these days. I'm not sure how th…

The same thing has to be done in engineering. Just because creativity is involved doesn't make programming an art.

Art can break rules and you can sell weird color splotches for millions, but the output of your /dev/random will always be worthless.

Re: Why Can't Developers Estimate Time?

#42

Time estimations is an industrial way of thinking applied to a post-industrial world. In the post industrial world time isn't the problem but rather project definition and scoping. In the industrial world the problem was already solved (machine was built, market often established and output depended on a few factors that could be adjusted. Need more output add more of X) In the post industrial world every project is…

What could replace it?

Re: Why Can't Developers Estimate Time?

#43
I'd say that people can't estimate time because it's an acquired skill and most people don't try to acquire it.

When I managed a team, I had people put their initial estimates in the tracking tool, and when closing out the item they'd also fill in how long it actually took. Then, some of the report generation tools would let them see how accurate they were. There were no review metrics associated with being accurate, but I found that within a couple of months in a new area, individuals started getting much more accurate without just lamely padding out schedules (their teammates would have called them out, and even I wasn't pointy-haired enough to be fooled that easily). An unexpected bonus is that people also got a lot better at describing their work and investigating the risky bits before throwing something onto the schedule for the sprint.

But, we didn't do this for purely investigative or experimental work (i.e. "try out a new immutable text region design in the editor"). We'd just timebox work like that and evaluate progress to decide whether to keep going or not.

Re: Why Can't Developers Estimate Time?

#44
post #41

Earlier quoted context omitted.

I do agree with him. In my opinion, software development is exactly a creative process. Many times, you have to come up with a creative solution that fits within certain constraints. Also, in the beginning usually only a vague image is known. The artist (developer) has to fill this in and make sure it is what the client wants. Also, many creative works are collaborative efforts as well these days. I'm not sure how th…

The same thing has to be done in engineering. Just because creativity is involved doesn't make programming an art. Art can break rules and you can sell weird color splotches for millions, but the output of your /dev/random will always be worthless.

You could equally say "Just because math is involved doesn't make it engineering".

But I suppose it's something in between art and engineering.

With regard to "sell weird color splotches for millions" - Isn't that the same with code? You can sell a simple game or app to millions of people and become rich. The amount of money you earn doesn't have any connection to complexity.

Re: Why Can't Developers Estimate Time?

#45
post #42

Time estimations is an industrial way of thinking applied to a post-industrial world. In the post industrial world time isn't the problem but rather project definition and scoping. In the industrial world the problem was already solved (machine was built, market often established and output depended on a few factors that could be adjusted. Need more output add more of X) In the post industrial world every project is…

What could replace it?

A serious attempt to provide a precise, correct answer to the ? "What do I really want done?"

Re: Why Can't Developers Estimate Time?

#46

There are 2 sides to this, one of which is detailed in most comments below, and I see it from a lot of devs I work with but mainly the less experienced ones, and that is the eternal optimism issue. That's been covered a lot already, so no point in belaboring that. The OTHER side is that, at least given my experience in the financial software domain, managers don't WANT accurate estimates. They absolutely abhor them.…

What you describe is, in essence, iterative development: Producing quick prototype and then fix it until it satisfies production needs.

Well, yes, but too often "soft" requirements get lost, like performance or the ability to be supported by anyone who wasn't the author. I'm not IN support, but I've been there and man I feel for those guys. Getting crap dumped on them that has no documentation, architectural designs that were pulled from someones backside in the heat of the moment of getting it done quickly, inconsistent standards being applied, wheel reinvention, etc.

Re: Why Can't Developers Estimate Time?

#48
Wait a second. In the right environment, good developers can estimate time fairly well on most things, even for tasks they haven't done before. I'm as prey to the "eternal optimism" factor as anybody else, but it's easy enough to work around: start by doubling your own estimate, and over time learn what multiple is right for you.

Re: Why Can't Developers Estimate Time?

#49
A big part of the problem is that management often isn't interested in honest estimates.

You can certainly find better practices in some organizations, but in many organizations, a certain team gets tasked with completing a certain assignment by an arbitrary deadline and no attempt is made to reconcile the triple constraints with reality.

In a context like that, developers may not be asked to make estimates, and if they do make estimates they don't believe that they'll be taken seriously. So they never develop the chance to learn how to estimate.

The accuracy of estimation also depends on the context.

If, for some reason, I had to fix a difficult-to-reproduce bug in a large system written in COBOL that runs on a mainframe, I'd have very little idea of how long it would take me to learn COBOL, understand the codebase, figure out the tools, and track the problem down. A COBOL jock would obviously do better.

On the other hand, I've worked on greenfield well-specified business CRUD apps based on a correctly aligned framework where I could estimate that something would take 21.25 hours and I'd really get it done in 19.75 or 22.50.

I've met developers who will absolutely refuse to estimate anything but I think more often developers don't believe their estimates will be listened to.

The good news for both developers and managers is that estimation is a learnable skill. If you get in the habit of making estimates and testing them, you'll get better amazingly fast. See the classic book

http://www.amazon.com/Software-Estimation-Demystifying-Pract...

Re: Why Can't Developers Estimate Time?

#50
post #17
post #5

It's because developers are eternally optimistic. How else can you explain someone hitting a "compile" button a hundred times a day, hoping each time to get no errors?

Hey, sometimes I compile with the expectation of error, just to make sure that the right error comes out.

Same here. I call it Error Driven Development.
Post reply on HN