Yeah, that is why I do it anyway. This is not insightful.
Software estimation is hard – do it anyway
141–150 of 231 posts
Re: Software estimation is hard – do it anyway
#142> I could go on: the point is, there are many situations where an estimate is required. Please do! I'd find it really valuable. (Not necessarily OP. I'm happy to hear from others as well.)
Re: Software estimation is hard – do it anyway
#143Earlier quoted context omitted.
> 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. This is almost surely wrong for most developers, or else rewrites wouldn't fail to deliver within the estimated time so often. Rewrites per definition already has a perfect specificatio…
> Rewrites per definition already has a perfect specification in the old code If the old code is a perfect specification, there is no need to rewrite it, because you already have a code base that performs to specifications. Less glib, random code is a terrible format for specifications, because it contains lots of things that aren't actually requirements of the specification, but implemenntation details. And a specif…
Re: Software estimation is hard – do it anyway
#144In my experience, software project estimation is the thing that everyone thinks someone else must be able to do well, and that they could do it if only they had more discipline. Then we get the tired old advice about breaking the project up into smaller chunks. But all the studies I've read of actual estimation methodologies show something like 300-600% error rate.
People think this must be doable because they want it to work, and they want an estimate. It's the same way that people thought one witch doctor was better at curing disease than another, when in reality none of it really does what's claimed.
I'm convinced that elaborating the spec in enough detail is the work of software engineering, and once you've done that fully you've done the whole project.
Re: Software estimation is hard – do it anyway
#145estimation => "commitment" => "failure" => padding => distrust
and much like Global Thermonuclear War the only winning move is not to play.
Re: Software estimation is hard – do it anyway
#146The bottom line is this: exact estimates, especially for large projects are a crapshoot. There is often more than one way to solve a business problem, and long-lived consequences for maintenance, operations and future development. The best solution to large problems can not be arrived at by simply throwing an ill-conceived one-liner prescribed solution over the wall to an engineering team and say "estimate this". What works is to bring a small group of highly skilled practitioners and business operators who have the capability and experience to zoom in and out of the problem space enough to shape a sane low-fidelity plan, and then commission the right discovery and validation to formulate a full plan. This does depend on having the right people in the room and mutual trust between them. It's very easy for one bad apple to derail this whole thing either through outright incompetence or else inability to listen and understand another point of view. Often on HN we paint the picture of the clueless pointy-haired boss making bad decisions, but equally as damaging is the arrogant engineer who is unable to see past their own biases to play out potential tradeoffs with other areas that they don't have deep expertise in.
Re: Software estimation is hard – do it anyway
#147Here'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 a…
A common misunderstanding about software creation is that code is the desired result. Hence, estimates more often than not try to predict how long it'll take to write the code that produces a desired outcome. However, in the end, code is just a very detailed specification of the design that produces a desired outcome. There's a reason why production is called production, after all: https://www.commitstrip.com/en/2016…
Re: Software estimation is hard – do it anyway
#148 1 Effort versus calendar time.
2 Estimate versus commitment.
3 Confidence level - are we talking P50? P99? P100 under some set of assumptions?
I don't think I've ever worked in a setting where everyone shared the same understanding on all of these points.Re: Software estimation is hard – do it anyway
#149Complexity exists in interaction between parts - not necessarily the parts themselves. Breaking down a project do not take those interactions into account. Even if we were to try considering interactions we would fail. Like the weather, and other topics in the complex systems domain, software is sensitive to initial conditions. A small change in input (change in data or code) creates a large change in output. We gene…
this is especially true if you consider the incremental work projects take on. THAT incremental work IS forecast-able. problem is often all the information need to be able to make that forecast is not in one place & the discovery process is often left unaccounted accidentally or on purpose to commit to tighter deadlines. add to that changing requirements and you have the state of software estimation we are in.
Re: Software estimation is hard – do it anyway
#150As I've pointed out before, film scheduling is an established discipline. Making a movie is much more complex than a software project. There are a lot of moving parts. Things get changed. There are people problems, weather problems, and transportation problems. Most importantly, if a film project goes into crunch mode, everybody starts getting paid overtime. This reduces the tendency to underestimate.
There are also third party estimates. Hollywood has something called "completion bonds". A completion bond is an insurance policy for the investors. Either they get a showable movie into theaters, or the completion bond company has to pay the investors. A completion bond costs about 5% of the cost of the film.
Completion bond companies do their own estimates. Estimation inputs are "script, budget, shooting schedule, (and) résumés of key crew." To survive, they need a net error near zero - they must overestimate and underestimate about equally. Consistent underestimation would put them out of business.
Since they do a lot of this, they have scripts and financial data from previous movies. They can look up "car chase, metropolitan area, 2 minutes screen time" for how much that cost the last 50 times someone did it. They also have director info, like "director X averages 2.5 takes per scene". All this info is collected across multiple film companies.
The completion bond company has the right to intervene if the project starts to go over budget. Worst case, they can fire the director and take over the production. This is rare, but it happens. "Malcolm X" by Spike Lee (1992) and "Bad Girls" are examples. "Malcolm X" was an epic movie, a bit too epic - it runs 3 hours and 22 minutes - and somebody had to say no to Spike Lee. "Bad Girls" (1994) was just a botched production, and the bond company put in their own director to try to salvage something. It still lost money, but did reach theaters.
That a completion bond company can fire the director puts teeth in this system.