Live data from Hacker News

Software estimation is hard – do it anyway

jacobian.org

21–30 of 231 posts

Re: Software estimation is hard – do it anyway

#21
post #19

To accurately estimate means developers and product management have collectively discussed the requirements to a level everyone understands clearly. Without this an estimate is as accurate as a weather report for 90 days out. A good estimate may also require "spiked" to test concepts to get to a reasonable estimate. I'm currently in a project that is terrible as the development team provides estimates without even re…

It’s just “a spike” or “spike”.

Re: Software estimation is hard – do it anyway

#22

Don't do it if you can avoid, especially if company culture is to treat rough estimation as a promised deadline. If you can't avoid giving estimation, try to pad it as much as possible, add every single uncertainty to the task list, and estimate very conservative. Add enough time for testing, communication, work on change requests. And even after the original estimate is approved / published be sure to communicate up…

I find estimations a useful process (on user story level). Sometimes team members will have wildly different estimations, and then there is discussion why, and often new information is learned. I know this is basic agile stuff, but I find in practice it works well.

Re: Software estimation is hard – do it anyway

#23
Here's my beef with estimates.

I can give you a really really accurate estimate, but in order to do so we're going to have to spend a lot of time going through the request, building and verifying actual requirements, designing the solution and then validating it.

The process will require dev resources, business resources and probably people from the support team and will take a lot of time.

I'm happy to do it. It's actually my favorite part of the job. But the business invariably doesn't want to spend the time and money to do that.

They'd generally much rather start with a fairly vague description of what they need and let the devs keep throwing stuff against the wall and see what sticks.

Good and accurate estimation is not just a dev function. It requires buy in and input from the entire business stack.

Re: Software estimation is hard – do it anyway

#24

Software estimation is only hard when you don't understand what you have to do or how it will be done. Just keep breaking the problem down into sub units that you or your team understand and can fairly accurately understand the effort and risk of (because they've been done before)

And when there are chunks that you haven't done before? Or when breaking it down will require going to a level of detail that means basically fully designing/writing your system in order to estimate it?

At some point you probably will want to do a rewrite. I don't think it is surprising that this sort of analytical process of bite-sized task creation also uncovers architectural deficits in your design.

Re: Software estimation is hard – do it anyway

#25

Don't do it if you can avoid, especially if company culture is to treat rough estimation as a promised deadline. If you can't avoid giving estimation, try to pad it as much as possible, add every single uncertainty to the task list, and estimate very conservative. Add enough time for testing, communication, work on change requests. And even after the original estimate is approved / published be sure to communicate up…

Good estimates are critical to plan dependent activities and setting customer expectations. If we don’t estimate then we are saying that software engineering is not an engineering discipline. You can have that view, but in my experience it does not lead to good outcomes. If I can assume you’re an SDE for a moment, I actually agree with the part of you not providing estimates. Recently I’ve done the initial estimate f…

>If we don’t estimate then we are saying that software engineering is not an engineering discipline.

Not a mature engineering discipline.

If you can budget a planning phase in development that allows you to quickly explore the unknown unknowns and known unknowns to investigate critical bottlenecks and uncertainty before estimating and you're able to lock that down with a set of features, then I think you can create decent estimates.

That's rarely how any development environment in current existence operates though, at least from my anecdata. Most are 'agile' that can drastically shift directions, feature/scope creep is a continuous problem, there's a constant time pressure exerted by managenent on developmeny teams in hope to optimize a bit more productivity out of their high price tags which gives no slack space for them to dig into these issues (except maybe some personal time).

The entire modern development culture in most business environments is designed in a way that makes any sort of good quality estimation nearly impossible. In the best of conditions it can be hard but manageable, most environments are the worst of conditions.

Re: Software estimation is hard – do it anyway

#26

Software estimation is only hard when you don't understand what you have to do or how it will be done. Just keep breaking the problem down into sub units that you or your team understand and can fairly accurately understand the effort and risk of (because they've been done before)

And when there are chunks that you haven't done before? Or when breaking it down will require going to a level of detail that means basically fully designing/writing your system in order to estimate it?

Yes! if you don't understand how something is going to be roughly designed/written then you're not estimating your guessing.

Re: Software estimation is hard – do it anyway

#27
Look, it's just a requirement to know the weather 3 months in advance. A lot of money is riding on this: agricultural impacts, shipping, the effect on consumer behavior and power generation requirements. Doing without accurate weather reports 3 months out is just not acceptable. Sure, it's hard, but you have to just do it anyway, because it's so important.

...

Except weather reports 3 months out are not reliable, unless they are so vague as to be meaningless. I have frequently encountered people who claim to be able to give accurate software estimates. Inevitably, this means that they simply know how to cut requirements as the promised ship date arrives. Which is a useful skill, but not the same as accurate estimates. I have stopped arguing the point, because it doesn't matter what the reality is, business concerns mean that an estimate is required sometimes. But it doesn't mean anything more than the weather estimate for 3 months from now. If you got it right, you were mostly lucky.

Re: Software estimation is hard – do it anyway

#28
post #5

‘You can get good at estimation’ Only if you work in an extremely repeatable well trodden domain. If you are so skilled at estimation, I’m sure Tesla would love you to tell them how long FSD will take and would pay a premium!

You don't need to work in an extremely repeatable domain to get good at estimation. There is very little in my day to day job that is repeatable, but I can roughly look at the project I'm on and compare the scope of it to the projects I've done before. If you really do think that every project you're working on is completely incomparable to anything you've worked on before you're probably concentrating on too low lev…

Or doing something novel?

Re: Software estimation is hard – do it anyway

#29

Lots of estimation experts out in force today, obviously Hacker News is full of sooth sayers and savants or maybe they just over point everything like everyone else.

You know, if you hire me as a Scrum / Agile Expert Consultant (tm), I can get your development department so efficient, you can outsource it all and save a ton of money. Payment in full required up front.

/s

Re: Software estimation is hard – do it anyway

#30
post #14

The best estimation technique I've seen is ROPE: Realistic, Optimistic, Pessimistic, Equilibristic. It's fast to ballpark, effective solo or with teams, great for PMs and managers, and able to go directly into critical chain scheduling or monte carlo simulations. https://github.com/SixArm/sixarm_project_management_rope_est...

Was the name chosen because four numbers provides exactly enough ROPE for the product owner to hang you with?
Post reply on HN