Live data from Hacker News

Software effort estimation is mostly fake research

shape-of-code.coding-guidelines.com

271–280 of 318 posts

Re: Software effort estimation is mostly fake research

#271

Earlier quoted context omitted.

You and I act like weathermen in this situation. But plenty of engineers do estimate based on what they think they can get away with or other negotiable ways.

I used to be a non-technical manager “managing” a team of developers. I later (through circumstances) became a developer. Looking back at the games my team played with me I can see why many managers are cynical about the estimates they are given and attempt to negotiate.

Not claiming it applies to you, but a lot of managers don't understand the difference between an estimate and a deadline. It comes back in all kinds of weird ways.

Re: Software effort estimation is mostly fake research

#272

Earlier quoted context omitted.

I once had a manager that thought he could negotiate estimates. That is like negotiating with the weatherman about the weather. Sure, maybe in the end you can convince them it will be finished sooner. But the fact is that it really doesn't change reality.

Sounds like the type that thinks that if they blow enough smoke up your arse then you get things done quicker, and they look better. I hope they die out.

They did die out. Their planning was crazy, promises to customers never achieved, some projects even completely cancelled because of major overruns etc.

They also started doing their own estimates since they didn't like mine. 3 months of work with 3 people -> 1 week of work 1 developer. Not kidding about this last one! We didn't finish it in 3 months because of scope creep.

Yeah they went bust.

Re: Software effort estimation is mostly fake research

#273
post #134
post #82

The issue with estimates are expectations. While nobody acknowledges it, you're not actually asked for an estimate, you're being asked for a quote. The difference is when you're asked for a quote, you're asked how much you will be charging, with the expectations that you'll be willing to eat into your own margins to give a lower quote. That's why it's a negotiation, where you negotiate how much extra effort, time and…

Software doesn‘t exist in a vacuum. The marketing team needs to know when the landing page / qr code (whatever) is implemented, because they need to plan their marketing budget. The customer care agent that gets shouted at because feature xyz is broken / not working as the customer expects, would like to give the customer an answer when it will be fixed. The customer care manager is also worried about her team member…

Kinda. Except that's "need for a definite date" is an expectation that they could be flexible about if forced. If other professions genuinely understood that software estimation is inaccurate by its nature and that accurate predictions of completion dates are, by their nature, impossible, then the uncertainty can be managed.

But because it seems so simple to estimate how long a piece of work will take for everyone else, it's really difficult to get other people to realise how hard this is.

I've sat in meetings saying "I don't know how long this is going to take" repeatedly until the rest of the organisation works out that they're not going to get a definitive date. Then suddenly the marketing team plans for "OK, well if it's done by this date then we'll have enough time to make this trade fair. If not then we can skip that and do the other one". They'd like to have a definite date because it makes their job easier. But if they can't have one, they can work around it.

> I also believe that a feature request is incomplete without an xestimatex delivery date attached

This is so true, as long as the devs have control over the scope. "We don't know and can't predict how long it's going to take to build the thing. If we can't build it all by the deadline, what's more important: delivering something on the deadline, or missing the deadline and delivering the entire feature set?"

To use your car haggling analogy: You've given me $5K to buy a 4-door car less than 5 years old. If I can't find one like that, what's more important: the budget, the doors or the age?

Re: Software effort estimation is mostly fake research

#274
post #127

Earlier quoted context omitted.

> Even houses always go over time and money and that is fairly straight forward. This is an incredibly important point. I was "raised" in commercial software at a time when there was a lot of condescension internally towards ourselves as an industry because we couldn't do estimation and planning, and building was the favorite comparison. A $100 million building couldn't run late or over budget. That would be unimagin…

I've seen a lot of industries compared to programming, like construction and manufacturing. For example, people trying to apply lessons from the Toyota Production System to programming. This doesn't make sense, because we have systematized the construction of executable programs with extremely high reliability and predictability: we call it "Copy File" It's the design that is the hard part, and the process of coding…

Yes.

Coding is not like assembling the machine. Coding is like inventing the machine.

Re: Software effort estimation is mostly fake research

#275
post #229

Earlier quoted context omitted.

I used to be a non-technical manager “managing” a team of developers. I later (through circumstances) became a developer. Looking back at the games my team played with me I can see why many managers are cynical about the estimates they are given and attempt to negotiate.

I always overestimated because it was the only way that I could ever devote anytime at all to technical debt reduction.

I'd say you're including necessary maintenance in your estimates, not overestimating!

Re: Software effort estimation is mostly fake research

#276
post #37

Earlier quoted context omitted.

Apple executes massive feature releases on a yearly waterfall-like schedule across hundreds of teams. It requires honesty, transparency, strong leadership (ruthless prioritization), strong cross-team goodwill, strong cross-team collaboration as well as a solid body of experienced top-tier engineers. Other than that there's no magic. While there are teams within apple that does scrum/agile, none of the core OS/framewo…

Adobe executes (executed) massive releases on a well-defined cadence (1.5 yr per "creative suite"). Sure, I won't say they don't have collaboration, or top-tier engineers etc. But in the end, the success of this well defined cadence boiled down to the simple strategy of "we release what is ready". Everybody knew the deadlines well in advance, and everybody strives to 'make it' - but, (not so) occasionally, some teams…

What happens when you can release whenever. This question is probably quite relevant to most developers, because CD (continuous delivery) is popular.

Re: Software effort estimation is mostly fake research

#277
post #3

Scrum dogma is that estimates are for complexity, not effort or timing. The points you track in JIRA are meant to reflect how much of the current backlog is complete and how much is remaining. That can be extrapolated into timing but can't be done up front.

Scrum has destroyed my organisation. It’s like working with zombies.

How to turn your organisation into a cargo cult 101.

Re: Software effort estimation is mostly fake research

#278

Earlier quoted context omitted.

You've perfectly nailed the fundamental issue here. For many software projects, you simply cannot make meaningful granular estimations for parts of them. It doesn't matter how many story-point poker sessions you hold. Some software work cannot be reduced to a positive integer. In our business scopes creep, bugs plague us, and myriad issues make precise estimations pointless. It's engineering Numberwang. I get that fo…

That estimation is hard does not make it impossible. That it may be inaccurate does not make it worthless. Special pleading that our industry is somehow the only one that faces uncertainty and novelty doesn't really hold water.

Software is unique because it can be copy pasted. A builder that makes a house in 4 months the first time might estimate 3.5 months for a near identical house. But to deploy the same desktop app on two computers you merely reuse the installer from the first computer, and to recreate the same page in a different app you can copy the code, so no one ever estimates doing the same work twice. Every software problem has at least a little novelty, because if it isn't at least a little different, the work is already done.

Re: Software effort estimation is mostly fake research

#279

In my previous company, we needed to put project code into timesheet for every activity. Of course, requirement gathering is also an activity. However, before you get the budget, you don't have the project code. Also, you can't get the budget before you have the estimate. It means I needed to give an estimate before I know what system I am going to build.

How about getting a budget to do an estimation/PoC/prototype for a project?

Re: Software effort estimation is mostly fake research

#280
post #76

Earlier quoted context omitted.

Have you noticed their declining OS release quality in recent years? I have, and I now wait 6 months to upgrade. The triangle is real[1]. Something's gotta give when a deadline can't move, and as we know from Brooks, software development speed doesn't increase linearly with more people. So it's primarily quality or scope that must suffer to hit a software deadline. [1] - https://en.wikipedia.org/wiki/Project_manageme…

People have been saying that since OS X first came out, and OS 9 was so buggy it had a famous cute bomb icon for when it crashed.

When OS X came out 20 years ago, it was the star of the show. Nowadays it's just an annoyance that Apple has to keep around. The quality has demonstrably fallen, and the internal struggles it's had within Apple have already been documented.
Post reply on HN