[HN Gopher] Software effort estimation is mostly fake research
       ___________________________________________________________________
        
       Software effort estimation is mostly fake research
        
       Author : walterclifford
       Score  : 369 points
       Date   : 2021-01-18 19:02 UTC (3 hours ago)
        
 (HTM) web link (shape-of-code.coding-guidelines.com)
 (TXT) w3m dump (shape-of-code.coding-guidelines.com)
        
       | mr_tristan wrote:
       | I wish as much attention was paid to perform post mortems
       | regularly then to only do estimation. You know, actually look at
       | "hey, this is what we guessed and this is what actually
       | happened".
       | 
       | I've had to fight to actually hold post mortems, and every time
       | I've done this, the manager ends up asking, "hey, can I share
       | this?"
       | 
       | So clearly, there's value, at least when we've done them.
       | 
       | I'm amazed at how few places even perform a complete feedback
       | loop. It's just, "when can you get this done?" and, "is it done
       | yet?".
        
         | mr_tristan wrote:
         | To tie this a bit more into the actual article: It might be
         | even more accurate to just ask people in a post mortem for some
         | feedback, instead of trying to build some data set based on
         | estimates and SLOC. Like an exit poll.
        
       | yibg wrote:
       | To me the difficulty of estimating software projects isn't about
       | estimating the time / effort to build the thing. The biggest
       | uncertainty is trying to estimate what it is we're trying to
       | build in the first place. i.e. the details of the spec. Often
       | times where I've seen estimates really off is when the scope
       | changes, or more details are discovered etc.
       | 
       | To borrow the usual building a house analogy, if during software
       | estimation we're actually given how many rooms, how many floors,
       | where are the doors and windows etc, then I think estimates will
       | be a hell of a lot more accurate. Instead, what we typically get
       | is, build a house that can be used by the family of 4, and we'll
       | discover exactly what the family wants as we build.
        
       | gpmcadam wrote:
       | Cache/mirror
       | 
       | http://webcache.googleusercontent.com/search?q=cache:http://...
        
       | jakubp wrote:
       | If someone can conclusively teach inexperienced programmers good
       | approach to estimates (methodology) + help embed this into sales
       | process of a software house-type company, I know some folks who'd
       | love to have this :)
       | 
       | My own experience has been this: people make estimates, client
       | has expectations based on some variant of those, and something
       | later happens but so much change is introduced during the actual
       | software development, that there seems to be no sane way to
       | compare what happened with original estimates. (new features,
       | changed features, lots of new information, market shifts/product
       | vision shifts, quality assumptions change, etc. etc.)
       | 
       | But at that point nobody cares! People go on with further
       | projects, and no data is ever collected.
       | 
       | Nobody learns.
       | 
       | When f*ckups happen, i.e. a gross over- or under-estimate, this
       | is often not shared with the broader organization (ashamed/afraid
       | sales people/PMs/devs say nothing/hide it/sugarcoat it). Client
       | walks away.
       | 
       | Sometimes project is severly underestimated but usually not just
       | because of the software part. Again, no decoupling and estimation
       | of contributing factors is done.
       | 
       | It's insane.
        
         | crispyambulance wrote:
         | > ...nobody cares! > Nobody learns. > It's insane.
         | 
         | Estimation is really hard, especially if you're dealing with
         | new challenges, new people, and new expectations. Throwing
         | moving targets (unplanned changes) into the mix, as you
         | noticed, makes estimation even more difficult.
         | 
         | The thing is, it very rarely is the case that a wrong estimate
         | will sink a project. Things get delivered late all the time. No
         | one dies. Most stakeholders aren't like two year olds throwing
         | a tantrum because an unforeseen problem delays a deliverable by
         | a few days (admittedly some are close).
         | 
         | The actual definition of failure also needs to be considered.
         | Is it considered a failure because a project manager ended a
         | colored gantt bar at a particular date and the actual time was
         | longer? Or is it a failure because the customer cancelled the
         | contract because a deliverable was not available on the agreed-
         | upon date? Or is it something far more nebulous, like a slow
         | death march towards a misguided goal that burns everyone out
         | and compels them to sip artisanal coffee and daydream about
         | leaving instead of grinding onwards and hitting targets?
         | 
         | Ultimately, people "don't care" because accurate estimates are
         | not the most critical problem on their mind. Most of the time
         | an accurate answer to "When will it [the deliverable] be done?"
         | has about as much gravitas as guessing the number of jellybeans
         | in a jar at a kid's birthday party.
         | 
         | Doing a retrospective and analyzing what went wrong when a
         | project delivery slipped expectations is certainly reasonable
         | but it so easily slips into a blame storm and/or people making
         | commitments that aren't realistic. Getting straight answers
         | from folks for this kind of analysis requires a level of
         | psychological safety that just isn't present in most
         | workplaces.
        
           | kylecordes wrote:
           | Failure is a tricky thing.
           | 
           | There is a story that Microsoft Word was a staggering failure
           | in terms of actual time and cost to implement versus its
           | estimates.
           | 
           | It then went on to be among the most lucrative ($ billions)
           | pieces of software ever created.
           | 
           | Was Microsoft Word a failure?
        
             | corty wrote:
             | Internal estimates are a political tool, not a technical,
             | financial or scientific one: First, decide if you want to
             | do it or not. Then do the estimate, high if you don't want
             | to do it, low if you do want to do it.
             | 
             | Any kind of reality doesn't factor into it.
             | 
             | In the Word example, somebody really thought this project
             | was worthwhile for some reason, so they gave a very low
             | estimate to get things started. As soon as money has been
             | spent on a project, it isn't likely to be cancelled as
             | easily, so you are safe to continue even if you exceed your
             | original estimate. In the worst case, you need a few
             | excuses.
             | 
             | External estimates, i.e. estimates you use for writing up a
             | contract with an external customer, are different. Those
             | actually do matter, depending on the wording of the
             | contract. But a smart contractor will try to get the
             | contract into a shape such that the above for the internal
             | estimate does apply.
        
         | bcrosby95 wrote:
         | I think it's because inexperienced programmers don't think
         | about the "soft" costs of programming.
         | 
         | Requirements gathering, general communication, testing,
         | production rollout, coordination, research, final approval - it
         | all adds up. For a 2 week project you might only actually spend
         | a day of ass-in-seat coding. And that ass-in-seat coding is
         | what they tend to estimate.
        
           | ghaff wrote:
           | I do a fair bit of writing at work of various different types
           | of things.
           | 
           | For stuff that I'm doing on my own? I can estimate pretty
           | well. I know more or less how long the writing will take
           | based on length. I'll allocate more time for research if I
           | need to do more than a base amount. And then I add some slack
           | in case I'm struggling with something, priority interrupts
           | happen, or I'm just not into it on some given day.
           | (Underpromise. Overdeliver.) It only gets harder with bigger
           | projects. It helps that I'm quite fast compared to most
           | people so even with significantly underpromising people are
           | usually very happy with the estimate.
           | 
           | But where it's really hard is work that involves getting buy-
           | in and input from a lot of different people. Those always
           | take forever. (And at this point I pretty much know they'll
           | take forever, a lot of which is just latency rather than
           | actual active work.)
        
           | munk-a wrote:
           | I think this is a big factor in estimation inaccuracy for
           | really new programmers - but it is pretty well fixed by
           | project managers following estimation rules of thumb - like
           | double it and add five days... The bigger issue that I am
           | less certain about being teachable is the experience side of
           | things. I've worked in industry for a while and I know how
           | long different sorts of patterns will take to write and what
           | sorts of complications different sorts of add-ons will add to
           | those numbers. Some projects are about where my naive brain
           | fifteen years ago would put them and other ones are wildly
           | different due to complexities that aren't visible in a
           | surface level examination. Learning to sniff out those
           | complexities seems to just take experience (not with every
           | individual scenario - but it's a pattern analysis thing).
        
           | jacques_chester wrote:
           | > _I think it 's because inexperienced programmers don't
           | think about the "soft" costs of programming._
           | 
           | That's what the research has previously found[0] decades ago
           | -- engineers will generally correctly estimate the part they
           | are best at, but will either neglect or under-estimate other
           | work. The old-school ways of dealing with this are canned
           | Work Breakdown Structures and checklists.
           | 
           | This is not unique to software.
           | 
           | [0] van Genuchten, "Why is Software Late? An Empirical Study
           | of Reasons For Delay in Software Development" https://web.arc
           | hive.org/web/20160914040151/https://lab.cs.ru...
        
           | llampx wrote:
           | Programmers can also try to come up with reasonable
           | estimates, only for management (product, middle or upper - or
           | often all of them) to come back and assert that the estimates
           | are off base and to "reconsider." Not much to do at that
           | point but to give a lower estimate and hope it works out. If
           | you make that your hill to die on as a programmer you will
           | find yourself out of a job with only your integrity to keep
           | you warm at night.
        
         | durandal1 wrote:
         | 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/frameworks teams
         | does it AFAIK, and I do think it's incompatible with shipping
         | on a hardware-aligned schedule.
        
           | aqme28 wrote:
           | That doesn't imply anything about estimates.
           | 
           | Do they tell you at the beginning of that cycle what features
           | to expect? Or do they constantly work on features, and then
           | at presentation time do a freeze?
        
           | robertlagrant wrote:
           | How do you know it's waterfall-like? If you ship working
           | software every 2 weeks and every 26th one you release,
           | hooray, you have yearly software that's super likely to work
           | well.
        
           | nightski wrote:
           | When you have hundreds of teams you can cut a bunch of
           | features and it still looks like you are massively productive
           | each release :) Not everyone has that luxury unfortunately.
           | Some of us are a single team of a handful of developers.
        
           | monadic3 wrote:
           | I'm sure Apple devotes time to research as well, even if it
           | is under a different budget and/or department.
        
           | trimbo wrote:
           | 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_management_triangle
        
             | alisonkisk wrote:
             | 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.
        
           | virgilp wrote:
           | 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
           | didn't and you could see entire features get ruthlessly cut
           | out. Simply no other way of synchronizing across the entire
           | company... you cut scope to make it in time, and if you can't
           | make it, that's it, your feature gets cut. With enough teams
           | working, you still get features to showcase at each release.
        
             | vinay_ys wrote:
             | That's pretty much how Linux kernel releases work. Just
             | having a regularly scheduled release train that always runs
             | on time - that you can catch (or not) is great.
        
           | AuthorizedCust wrote:
           | How do you know they are thoroughly waterfall? How do you
           | know they don't use agile, time-boxing, etc.? Apple is so
           | secretive, it feels like we know of little other than what
           | they are confident about releasing. The things that weren't
           | done on a schedule compatible with a hardware release, how
           | often are they simply postponed? And for those postponements
           | that they do admit, how many are waved away with a creative
           | explanation? I think you need a good deal more information to
           | back up your point about Apple's work management.
        
           | calpaterson wrote:
           | > Apple executes massive feature releases on a yearly
           | waterfall-like schedule across hundreds of teams. It requires
           | [...]
           | 
           | And no doubt a great deal of crunch time, their fair share of
           | delays, some major messes and the occasional outright
           | cancellation. And if I'm not wrong their roadmap is not
           | public information.
           | 
           | I personally find it hard to believe that a large company can
           | exhibit all those adjectives you list. Everyone finds this
           | hard.
        
         | scotty79 wrote:
         | Estimates don't give you the time when something will be done.
         | You can just be almost sure that the thing will not be ready
         | before this time. And that's still something.
        
         | wefarrell wrote:
         | More important than estimating is knowing how to sequence the
         | work. I often see teams try to build the entire DB schema
         | first, or built the interface out one wire at a time. The agile
         | approach of building small, vertical parts of each feature
         | tends to work much better in my experience.
         | 
         | For example say you have a CRUD application with a page for
         | editing and searching complex objects. Rather than building the
         | entire search page with all of its filters, and then building
         | the edit page with all of its fields, you build a simplified
         | version of the search page with only a few filters and a
         | simplified version of the edit page with fields that correspond
         | to those filters. You also make sure the functionality
         | integrates with the backend to form a cohesive, vertical
         | feature that can go through QA, and possibly the client. Once
         | that is working you expand the list of fields and filters.
         | 
         | This approach tends to surface design issues much faster, and
         | is more adaptable to change requests from the client.
        
           | catwind7 wrote:
           | agree with the adaptability of change requests from clients,
           | but i would say only insofar as the design issues you're
           | mentioning are actually addressed as quickly as they are
           | surfaced. Otherwise this type of building eventually grinds
           | to a halt.
           | 
           | another commenter sort of hinted at this, but this type of
           | process has a downside of prioritizing short term design
           | decisions that lead to working code. It takes time and
           | sometimes a lot of thought to think about the system and the
           | problems deeply and ask yourself if you've created the right
           | primitives.
        
           | ConnorLeet wrote:
           | Although when working like this there can be a "Good enough"
           | inertia
        
         | 1337shadow wrote:
         | Make a complete list of things to develop in a spreadsheet,
         | "complete" means _every_ _single_ _item_ the customer wants to
         | see in the product, not only every single button but also every
         | single label, that should be definable by reading the project
         | specs or mockups. I think  "forgetting things" is the first big
         | mistake leading to under estimations.
         | 
         | Add an estimate that you multiply by three in front of each,
         | ie. if the dev thinks 1 hour then they should put 3. From my
         | experiments: no multiplying factor turned to nightly and
         | weekend work, multiplying by 2 turned to long (10 hours) work
         | days, multiplying by 3 turned into comfortable work hours and
         | quality work.
         | 
         | I've had success delivering quality code and respecting
         | deadlines since 2012 or so with this system, but YMMV
         | 
         | Only problem: the customer might not like what he gets, even if
         | it works exactly as planned.
        
           | cmroanirgo wrote:
           | I forgot to add this to my other comment. Yes, a multiplier
           | works wonders. (I typically added 30% to my own estimates,
           | which covers all the little incidentals that trip you up, and
           | coffee breaks). I've not been forced to work longer than an
           | 8hr day since the 90's.
        
             | 1337shadow wrote:
             | I thought your comment stating that time should be added
             | for both research & design was actually a reasonable
             | explanation for why I need the *3 multiplier!
        
           | ghaff wrote:
           | Back when I was a product manager, there was an engineering
           | manager who would drive me crazy. He had this idea of a 90%
           | schedule, by which he meant a 90% chance of hitting if
           | everything went as planned. Everything never went as planned.
        
             | Jtsummers wrote:
             | He probably read Goldratt's follow-on to _The Goal_ ,
             | _Critical Chain_. Critical Chain Project Management is the
             | specific term. Goldratt tried to sell software to companies
             | that would help them make schedules like that, but a large
             | component (often ignored) was collecting historic data, and
             | running models. Most companies might do one of those, but
             | rarely both, and of course models with only speculative
             | numbers are absolute garbage. In my experience, places that
             | tried to apply CCPM never actually grokked it, and it was
             | some manager 's obsession because they were buzzword crazed
             | (like many big-A Agile offices).
        
               | ghaff wrote:
               | I think this was a little before that (mid-90s) but maybe
               | something related.
        
           | jakubp wrote:
           | I've done backlogs before; both very high-level and very
           | detailed; with and without mockups (even final graphic
           | designs) and detailed description in the form of multi-page
           | spec or user stories (depending on the fashion of the decade
           | I was doing it in :).
           | 
           | I don't think having the detailed requirements made estimates
           | much more accurate. However it made creating those estimates
           | take an order of magnitude longer - developers needed much
           | much more time to absorb all the details.
           | 
           | At that point I decided I only ever want to work with senior
           | developers who have good imagination and can give reasonable
           | triplets (solution, # of devs to do it, approximate time) for
           | requested pair (idea, quality level).
        
           | composer wrote:
           | ReRe's Law of _Re_ petition and _Re_ dundancy [4] somehow
           | does not apply to you:                 A programmer can
           | accurately estimate the schedule for only the repeated and
           | the redundant. Yet,       A programmer's job is to automate
           | the repeated and the redundant. Thus,       A programmer
           | delivering to an estimated or predictable schedule is...
           | Not doing their job (or is redundant).
           | 
           | [4] https://news.ycombinator.com/item?id=25797519
        
             | 1337shadow wrote:
             | I think the explanation was made in another comment where
             | they say "don't forget to estimate time for research &
             | design", which explains why the *3 multiplier works for me.
             | And yes, I feel that most of the work is redundant, there's
             | always like network services of some sort or web pages,
             | databases, linux servers, a humain interface, other
             | services depending on the project like a message queue or a
             | caching server or both, background workers and scheduled
             | code execution... things I had been doing for ~10 years
             | back in 2012. Data structures, workflows, they change
             | between gigs, and each gig has its own particularity, but
             | 90% is the redundant from a gig to another:
             | HTML/CSS/JS/Python/SQL/Networking/Storage/Linux stuff
        
           | devdas wrote:
           | Software development is the process of writing a complete
           | specification, including every single button and label. If
           | you have a formalised complete design, you could write a
           | compiler to do the work for you.
        
           | csours wrote:
           | > "complete" means every single item the customer wants to
           | see in the product,
           | 
           | Ah, but the customer does not know everything they want, due
           | to the fractal nature of reality. The closer you get to the
           | end product, the more detail is resolved, and more work is
           | added.
        
             | jakubp wrote:
             | Oh man, thank you for the fractal nature of reality. That
             | is the perfect term to describe what I saw about ever-
             | changing requirements. No matter how closely you define
             | something, things will always keep changing on all levels
             | when closer to actually "delivering" / launching. Adding
             | time, costs, confusion, frustration. Fractal, yes, that's
             | it :)
        
               | KineticLensman wrote:
               | > No matter how closely you define something, things will
               | always keep changing on all levels when closer to
               | actually "delivering" / launching
               | 
               | Xeno's paradox [0] doesn't apply here. Some projects do
               | actually finish.
               | 
               | [0] https://en.wikipedia.org/wiki/Zeno%27s_paradoxes#Achi
               | lles_an...
        
             | cmroanirgo wrote:
             | Although this sounds flippant, the design process is where
             | unknowns should be uncovered. It is easier to change design
             | before a line of code is written. Design is precisely what
             | is needed in order for the dev team to break down the
             | projects into tiny chunks where nothing is unknown.
             | 
             | Your time estimates should always include time for research
             | and design. The customer can sign off on what you're about
             | to write at the end of that (whereas beforehand you give
             | them a wild ballpark figure made by senior devs - not
             | management!)
        
               | ubercore wrote:
               | Yeah but too many customers change their mind even after
               | they've signed off. Then you're left with strictly
               | enforcing a contract or making adaptations.
               | 
               | You're right, design is very very necessary and should be
               | given plenty of time. But it's not a magic bullet.
        
               | 1337shadow wrote:
               | In terms of contract, I have found this works best
               | (recommended by my lawyer (a former ASF lawyer)): 30%
               | upfront, 50% at first delivery, then they have 2 months
               | to find bugs, final delivery is when the bugs are fixed
               | that's when you take the last 20%. This way, you're
               | certain to always get 80%.
               | 
               | If they want the liberty to "change their mind on the
               | fly" then they should buy man-days which is a completely
               | other thing. Or, they can buy supplementary mandays for
               | whatever they want at the daily rate without changing the
               | contract, or, they can just wait to finish this contract
               | and start another one.
        
             | chasd00 wrote:
             | it's pretty a well known saying that the last 10% of any
             | project takes 90% of the time.
        
             | KineticLensman wrote:
             | Another way of looking at this is that (unless there is a
             | complete disaster) as you get closer to the end the
             | uncertainty in the estimate decreases. When you get to the
             | end, you know precisely how long it took.
        
         | sound1 wrote:
         | As long as humans are involved in defining requirements,
         | inaccuracy of estimate will be proportional to the cusomters'
         | incompetence and level of bad politics of the organisation as a
         | whole ;-)
        
         | cmroanirgo wrote:
         | The problem is knowing how fast they learn. For a n00b this is
         | basically impossible, and takes cost monitoring to notice their
         | rate of learning. For a person with the basics of the language
         | that they'll be using, and a tiny bit of experience in the
         | libraries they'll be using, things get easier.
         | 
         | For everyone (n00b to senior) I would always recommend
         | designing & breaking things down into no smaller 1/2 day
         | blocks, where nothing went longer than 3 days (for
         | inexperienced), but longer for more experienced. Senior devs
         | should be able to be able to be trusted (to be accurate) for
         | week-long blocks.
         | 
         | Use a Gannt chart (ms project or similar) and monitor the
         | inexperienced, gauging their real-life times with their
         | estimates, adjusting accordingly. Give semi regular feedback at
         | the accuracy so that they (& you, the manager) are working
         | with.
         | 
         | In one of my companies, the most inaccurate we were for _any_
         | project was that we were late 2 days over 2 years. Build on
         | trust, build on meetings and other time sinks. Include testing,
         | sign offs, etc.
         | 
         | So, absolute n00bs need close mentoring so that the (senior)
         | mentor can begin to gauge the growth rate... Which will be
         | steep... But different for everyone.
        
         | Zigurd wrote:
         | The principles behind the Manifesto for Agile Software
         | Development mention only retrospectives, not estimates. You
         | could say they value learning over guessing.
         | 
         | When people ask me how can they learn, I tell them to find old
         | project schedules and other project documents. Looking at past
         | projects makes the learning more objective, and it is not
         | happening under time pressure.
        
       | taeric wrote:
       | My problem with this is all estimation is hard. Period.
       | Quantitative discussions of something that has been done? Fairly
       | easy, if still not accurate.
       | 
       | Discussing something that hasn't been rehearsed before? You can
       | really only discuss how long you are willing to work on it. Not
       | how long it will take to get done.
       | 
       | Fun examples. How long would it take you to clean out your
       | fridge? How long would it take you to learn to play a song on
       | piano?
        
         | edelans wrote:
         | I like this analogy. But I was picturing myself asking my sales
         | manager "How long would it take you to learn to play a song on
         | piano?", and I'm pretty sure he would reply "but you touched a
         | piano before, you are supposed to be a professional piano
         | player ! A professional piano player surely knows how long it
         | would take him to learn how to play a song". So I guess he
         | would miss the point totally :/
        
           | taeric wrote:
           | Ironically missing that some folks will never be able to
           | learn some songs.
           | 
           | And, learning to play an existing song doesn't necessarily
           | translate to being able to write one.
        
       | deandree_ wrote:
       | Exactly, you can't really predict what can't be predicted
        
       | Londane wrote:
       | The site is down for me, so :
       | https://web.archive.org/web/20210118200327/http://shape-of-c...
        
       | distalx wrote:
       | Broken Link....
        
       | vincentmarle wrote:
       | I've been using the Rumsfeld Matrix to classify software
       | estimations into 4 categories:
       | 
       | Known knowns: familiar tasks that can be reliably estimated from
       | past experience. You can improve these estimates by better
       | knowledge sharing (internal wiki, adding comments).
       | 
       | Unknown knowns: tasks that can be increasingly better estimated
       | the more time you spend on estimating (for example creating Draft
       | PRs with pseudo code).
       | 
       | Known unknowns: tasks that haven't been done before, so
       | estimations need a decent buffer (30-50%) to account for research
       | and potential blockers. You can improve these estimates by
       | benchmarking your previous efforts combined with the team's skill
       | levels (aka sprint story point velocity).
       | 
       | Unknown unknowns: the unforeseen blockers that come out of
       | nowhere, can't really be estimated, and can really disrupt a
       | project's schedule. Improving these estimates is really hard. The
       | key to improving these is by improving team/company communication
       | and building agile feedback loops so you can identify these
       | issues early and reprioritize as needed.
        
       | djoldman wrote:
       | >Those estimation datasets that were flogged to death in the
       | 1990s using non-machine learning techniques, e.g., regression.
       | 
       | >...non-machine learning techniques, e.g., regression.
       | 
       | Is this where we are now? The connotation of "machine learning"
       | doesn't include regression? Wow.
        
         | disgruntledphd2 wrote:
         | They (almost certainly) mean linear regression, which many
         | people appear to regard as statistics and boring, as opposed to
         | single layer neural networks, which are cool.
         | 
         | To be fair, this is a pretty common perspective in computer
         | science academia and adjacent fields (and probably occurs in a
         | lot of fields where people don't focus on statistical
         | learning..ahem I meant ML).
        
       | BlargMcLarg wrote:
       | I seriously don't understand the obsession with estimates in the
       | paradigm it is pushed in. Want to be steady at a reliable pace,
       | work for a few months and figure out the average and deviations.
       | Need a priority on tasks, use a priority queue using whatever
       | method you assign it by, often a combination of deadline, value
       | added, complexity and more.
       | 
       | Yes, I get on a high level, one needs to be able to say "yes we
       | can make this before [date]", when using big deadlines. How often
       | do people _really_ have to finish something before a critical
       | deadline or decide to drop it right then and there? I 'd wager
       | most software devs do not, let alone biweekly deadlines. Isn't
       | agile methodology supposed to help us fight against artificially
       | tight deadlines (customer collaboration)? Isn't the SaaS model
       | combined with "deploy any time" designed to be profitable in
       | accordance to features implemented? Then, why push estimates so
       | strongly in whatever flavor of the month Scrum version BigCorp
       | wishes to use today? What do they even add at that point? If they
       | are really so important, why do we always feel the need to
       | introduce human error when we can extrapolate former experiences
       | with computer models?
       | 
       | Maybe it is just me being cynical. The entire need to hold so
       | fiercely onto an estimate reeks of micromanagement and desire to
       | push responsibility entire onto the lower ranks.
        
       | captain_price7 wrote:
       | I have been involved in Software engineering research a bit, even
       | have a first-author short paper. I was struck by just how much
       | pointless, low-effort papers there are in this domain. People
       | have been researching about bug prediction for over two decades
       | now, and judging by the paper quantity, this isn't a niche area.
       | Yet how many organizations do actually employ those systems in
       | real-world? Can't comment on industry, but I haven't found a
       | single open-source program that does that [1].
       | 
       | Now I know "most papers are pointless" is a common complaint in
       | science, specially in my area of focus- machine learning. But I
       | can't shake the feeling that the situation is particularly worse
       | in software engineering related academic research.
       | 
       | [1] I saw Mozilla attempt it, but not sure if it's currently in
       | use.
        
         | randomsearch wrote:
         | Couldn't agree more. Software engineering is a very practical,
         | fast-moving subject, and that makes most academic work even
         | more irrelevant - software engineering academics often don't
         | have the first clue about what real software engineering is
         | about, because they don't have recent industrial experience.
        
       | mcguire wrote:
       | Would software effort estimation work better if software
       | developers were held to fixed-price bids?
        
       | ThomPete wrote:
       | In his book "Code Complete", Steven McConnel speaks about
       | metaphors. He reasons that metaphors are necessary to be a good
       | developer as it helps visualize the act of coding. The metaphor
       | he prefers is the "construction" metaphor. This metaphor he
       | argues best explain the act (some would say art) of programming
       | and gives developers a language to speak in that brings clarity
       | to the development process.
       | 
       | When in construction you prepare the building site, lay a
       | foundation, frame the house, put siding and a roof on it, and
       | plumb and wire it. This is equivalent to programming. In other
       | words through the lens of the construction metaphor, the
       | developer is someone who ultimately build someones house by
       | working together with different disciplines (Architects,
       | designers, contractors etc)
       | 
       | The problem with that metaphor IMO is that it's not actually what
       | software development is.
       | 
       | The proper metaphor for software development is more _"
       | engineering and development of construction site equipment and
       | material"_ i.e. a developer is not building buildings they are
       | building the things necessary for building the building.
       | 
       | And so the developer will often find themselves in a situation
       | where the material doesn't exist and they have to invent it it or
       | the material exist but we dont know how it's going to work with
       | some other material needed or the equipment used for that
       | material isn't made yet or doesn't work with that material even
       | though it normally does.
       | 
       | I.e. a developer is inventing, engineering and building all at
       | the same time and that is what makes it impossible to estimate
       | development regardless of process or metaphor.
        
         | randomsearch wrote:
         | The reality is that software development is nothing like
         | engineering or construction, it's totally different. You don't
         | build a quick house, let people live in it and start building
         | the walls whilst they live there.
         | 
         | Humans like to think via metaphor because it's a least-effort
         | mode of thought but sometimes there just isn't one and it's
         | just tough luck and start thinking from first principles
         | instead.
        
           | ThomPete wrote:
           | My point was more that the software developer have to not
           | just build with existing material and equipment but have to
           | invent and build those on the fly.
        
       | tootie wrote:
       | 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.
        
         | wccrawford wrote:
         | My understanding is that for a team and project that's been
         | going for a while, scrum points can be roughly turned into time
         | estimates by looking at the history of stories that were rated
         | for that many points and averaging.
         | 
         | But that obviously won't work from the start, and it won't be
         | accurate... Just better than nothing and (hopefully) better
         | than what a programmer will estimate in their head.
         | 
         | And IME, it's a lot less stressful on the programmer to
         | estimate points rather than time.
        
         | dragonwriter wrote:
         | > Scrum dogma is that estimates are for complexity, not effort
         | or timing
         | 
         | The theory of story points (which originate outside of Scrum
         | and are not part of Scrum proper) is that task-specific time
         | estimates in creative intellectual work are extraordinarily
         | unreliable and expending more effort on them doesn't improve
         | them, but broad-banded complexity class evaluation mixed with
         | empirical observation of the teams velocity produces time
         | estimates that are (while still _extremely fuzzy_ ) both better
         | and much lower effort, once you have the basic tracking in
         | place, than task-specific direct estimates.
         | 
         | The "dogma" you report seems like something that might be a
         | derivative of that that has lost track of rationale and
         | purpose, reducing it to a cargo cult practice.
        
           | cuillevel3 wrote:
           | Right, the estimates are not even in the guide:
           | https://www.scrumguides.org/scrum-guide.html#sprint-planning
           | 
           | Planning poker and such are useful as they encourage the team
           | to discuss differences and help identifying stories which are
           | too large.
        
         | jakubp wrote:
         | If it can't be done upfront it's largely useless for business
         | folks ("so you have an estimate but can't translate it into
         | time? so why do it? go away" :).
         | 
         | If it assumes remaining work is equivalent in time to done work
         | (notion of velocity), it's (in my view) very optimistic. People
         | learn the nature of the beast as time progresses. Collective
         | learning happens slowly. A lot of important work is usually
         | only discovered and planned in the second half of the actual
         | (not original) timeline. A lot of important stakeholders are
         | naturally only introduced into projects close to its
         | finalization, which creates a flurry of new activity and
         | discoveries. This makes projects late.
         | 
         | But where that real halftime is - most people I worked with
         | rarely know. I was no better, I also rarely knew.
         | 
         | The only way to manage this I found was the basic rule: build,
         | demo, decide what to do next. Don't get attached to original
         | backlog and grand plans for the future. It won't work that way.
         | Just build and make it work, launch ASAP, get decisions on a
         | ~weekly basis done. Ignore long term planning. It's not
         | helpful.
         | 
         | Sadly, few business folks want that of course :)
        
           | tootie wrote:
           | For one, it doesn't assume pace is consistent. Tracking
           | velocity is part of the game too and it can vary with
           | capacity, talent and maturity.
           | 
           | Secondly, telling business that we can't estimate accurately
           | is more useful than saying we can estimate accurately and
           | being wrong (which is guaranteed). It's a tough sell but it's
           | necessary.
        
             | jakubp wrote:
             | Agree on the second point. I tried to convince some
             | managers and sales guys to stop giving estimates at all and
             | build trust otherwise, didn't work :)
             | 
             | As for consistent, my point was if you have 100 SP in
             | backlog, delivered 50, then I contend you are not in the
             | mid-point of the project. This is a dangerous assumption.
             | You don't know where you are in my experience.
        
               | tootie wrote:
               | It is if you're following agile principles. By the time
               | you've completed a few stories you should be delivering
               | every feature at production quality with all the
               | automation pipeline and deployments ready. The question
               | from that point is always did we build enough features
               | for a launch.
        
           | jonpurdy wrote:
           | I agree that building and demoing something small is key. The
           | larger and more complex a project will be, the harder it is
           | to estimate.
           | 
           | I've been trying to distill this into a framework that is
           | accessible to both development and business folks [0]. I've
           | used it a few times and it has resulted in a few projects
           | getting cancelled due to a massive difference in initially
           | expected cost and post-analysis expected cost.
           | 
           | 0 - It's basically just Scrum oriented towards providing
           | upfront estimates. https://jonpurdy.com/pm-framework/how-to-
           | quickly-plan-and-es...
        
           | mbesto wrote:
           | I'm gonna play the devil's advocate here.
           | 
           | > Sadly, few business folks want that of course :)
           | 
           | Business folks want this usually because it's _their_ money
           | you 're playing with.
           | 
           | > Ignore long term planning. It's not helpful.
           | 
           | So, no don't tell people to ignore long term planning
           | otherwise people who give you money are going to stop giving
           | you money to "build, demo and decide". Unless you're on your
           | own dime (e.g. you pay yourself or are self funded), then I
           | wouldn't take this advice.
        
       | SKILNER wrote:
       | Not only do we not know how to predict how long a software
       | project will take, we don't even know how to predict what the end
       | product will look like.
       | 
       | So who are we kidding?
       | 
       | Another way to look at it: take a small one-person project and
       | assign it to three different developers. You may get wildly
       | different results. How could you have predicted those differences
       | in advance? Let alone apply that type of prediction across a
       | large team.
       | 
       | About a dozen years ago I gave a presentation to the Silicon
       | Valley Software Process Improvement Network (does it still
       | exist?) My presentation: "Unsolved Problems of Software
       | Maintenance." You think predicting greenfield development is
       | difficult? Try predicting maintenance work, where figuring out
       | what to do can be more than half the work.
        
       | MattGaiser wrote:
       | Estimation seems like a paperwork generation exercise anyway, so
       | why not take it all the way to research?
        
       | jacques_chester wrote:
       | I think a better title would have been "most effort estimation
       | literature relies on small datasets". The use of "fake" can be
       | read as insinuating deliberate malpractice.
        
       | meesles wrote:
       | It's unfortunate that this HN thread has been reduced to the
       | generic discussion about software estimates when the article is
       | specifically talking about research done on the topic of software
       | estimates.
       | 
       | According to the article, proper research remains a struggle due
       | to outdated datasets from before modern agile methodologies, and
       | that the modern datasets from industry are hard if not impossible
       | to gather.
       | 
       | If industry is truly interested in improving software development
       | and estimation, their data should be anonymized and made
       | available to researchers for analysis.
        
         | robertlagrant wrote:
         | What data would be useful here? There are so many confounding
         | factors.
        
         | froh wrote:
         | > How large are these datasets that have attracted so many
         | research papers?
         | 
         | > The NASA dataset contains 93 rows (that is not a typo, there
         | is no power-of-ten missing), COCOMO 63 rows, Desharnais 81
         | rows, and ISBSG is licensed by the International Software
         | Benchmarking Standards Group (academics can apply for a limited
         | time use for research purposes, i.e., not pay the $3,000 annual
         | subscription). The China dataset contains 499 rows, and is
         | sometimes used (there is no mention of a supercomputer being
         | required for this amount of data ;-).
         | 
         | > Why are researchers involved in software effort estimation
         | feeding tiny datasets from the 1980s-1990s into machine
         | learning algorithms?
         | 
         | > Grant money. Research projects are more likely to be funded
         | if they use a trendy technique, and for the last decade machine
         | learning has been the trendiest technique in software
         | engineering research. What data is available to learn from?
         | Those estimation datasets that were flogged to death in the
         | 1990s using non-machine learning techniques, e.g., regression.
         | 
         | Is this telling me that most theories about "sw estimation best
         | practices" are cargo cults o-O ?
        
         | randomsearch wrote:
         | I'd say the problem is more from the academic side. If good
         | data isn't available, then academics should not be publishing
         | papers on toy data. It's meaningless. The goal is not to
         | publish papers but to advance science.
        
           | [deleted]
        
       | dboreham wrote:
       | Redirect loop on TFA?
       | 
       | Update: working now.
        
       | snidane wrote:
       | Software development which is a repeatable and already defined
       | process is totally possible to predict and estimate. Most tasks
       | of repeatable processes follow normal distribution and is
       | predictable. Deviations from expected mean will be due to
       | predictable factors of the environment such as failed disk or
       | sleepy programmer. You can apply arbitrary six sigma methodology
       | to measure such process with accuracy.
       | 
       | The problem in software though is that such a repeatable process
       | would be immediately automated away by writing a function,
       | library, framework or any such tools that programmers use on a
       | daily basis without much thinking. Unlike in building
       | construction, to which programming discipline is often wrongly
       | likened to, where construction companies simply cannot "write a
       | function" to deploy cookie cutter houses or bridges one after
       | another.
       | 
       | Therefore software engineering is never a repeatable process,
       | unless crappy tools are used, which don't allow for sufficient
       | abstraction of repeatable parts.
       | 
       | Tasks in software disciplines therefore don't follow a normal
       | distribution. They follow exponential distribution most often.
       | Most issues go unnoticed. Majority are just so tiny and ofthen
       | considered business as usual. Every time you get stuck and have
       | to look up a solution in docs or stackoverflow technically is an
       | issue, but never gets reported in an issue tracker for its
       | triviality. There are however issues which are orders of
       | magnitude larger than what management expects when they
       | occassionally sampling issue trackers. Some issues lead to
       | critical design flaws which could need a full blown rewrite for
       | example, or ever lasting and expensive hackery in case the
       | executive decision is to work around the critical design flaw.
       | These issues can take years to accomplish or take massive amount
       | of pain endurance.
       | 
       | Trying to estimate a process with such exponential distribution
       | and making sense of averages or other statistics of such
       | distribution is borderline insanity.
       | 
       | Why not just go to physics department and ask when the next
       | Theory of Relativity will be invented and how much budget and
       | story points those guys need.
        
         | k__ wrote:
         | _" a repeatable process would be immediately automated away by
         | writing a function, library, framework or any such tools"_
         | 
         | This is the crucial point here.
         | 
         | Source code is a (almost) self-assembling blueprint.
         | 
         | The actual product that will be build is the software and
         | software is a configuration of matter, in this case of a
         | computer.
         | 
         | The source code/blueprint for a house is not self-assembling.
         | Compiling such a blueprint requires you to configure the
         | building materials in a way that they become a house.
         | 
         | With better robotics, we will probably get there at some point
         | in the future.
         | 
         | And with software we will always be in a place where you either
         | do new stuff the first time manually or with crappy tools the
         | 100th time.
        
       | lugu wrote:
       | I bet it is possible to give precise estimates, the problem is
       | the amount of time and effort to produce such estimation compares
       | with the actual execution.
        
       | Aldipower wrote:
       | I am 20 years in development business now. This simple rule of
       | thumb works for me and the team: (Your honest and concise
       | estimation) * 3
       | 
       | There are just to many unknowns you cannot foresee. Software
       | development is complex.
        
         | nikolaj wrote:
         | same experience level, similar formula. Take your gut estimate,
         | double it, double that new value, then add another "increment".
         | 
         | e.g. say you think it will take a day, so 2 days, 4 days, add
         | another day, likely estimate is 5 days.
         | 
         | My pet theory is that when we estimate, we typically think of
         | how long it will take to figure out a working solution to the
         | problem, but forget about how long it takes to debug it, add
         | tests, rework for changed requirements and unexpected nuances,
         | and then roll it out and do any training, etc.
        
         | elwell wrote:
         | That's a recursive definition (estimate * 3) = ((estimate * 3)
         | * 3) = (((estimate * 3) * 3) * 3)... But if you do that for a
         | few years, "your honest and concise estimation" starts to grow
         | because you've seen how it usually takes longer than expected,
         | and your coefficient can approach 1.
        
         | matwood wrote:
         | I use a similar methodology.
         | 
         | The part you didn't mention is that for most businesses it's
         | better to be over than under in the estimation. I also explain
         | this thought process to the various stake holders. We can
         | certainly try to tighten up an estimate, but that runs a higher
         | risk of being under which is usually a worse outcome (promised
         | launch dates are missed, marketing is missed/happening,
         | customers are told, etc...).
        
         | kilroy123 wrote:
         | I couldn't agree more. This is what I do.
        
         | OneGuy123 wrote:
         | This, the famous "prediction* Pi" rule seems to be correct also
         | in my experience.
         | 
         | I make the most optimistic prediction and then * PI.
        
         | TehShrike wrote:
         | I multiply by 4. Specifically, giving estimates on when
         | features will be deployed/usable by end users.
        
           | chasd00 wrote:
           | yes, going from identification of the bug/idea to the
           | solution in end users hands is a lot different than just the
           | coding estimate. On teams with multiple levels of management
           | both engineering side and customer side the actual code
           | required to fix/implement the solution is such a small part
           | of the overall effort you could, ironically, consider it
           | immaterial.
        
         | curiousllama wrote:
         | I've been hearing this rule for years now, and I think the
         | coefficient is increasing. It started at 1.5x, now it's at
         | 3x... Is this just me?
        
           | impy wrote:
           | I'd say this is Parkinson's Law at play
        
           | Aldipower wrote:
           | Maybe the coefficient is related to your age. You got older,
           | so there is more wisdom around. ;)
        
         | kthejoker2 wrote:
         | I'm such an optimist! I multiply by 2.2.
        
       | encoderer wrote:
       | Don't do an estimate, build a prototype.
       | 
       | Don't do an estimate, build a prototype.
       | 
       | Don't do an estimate... seriously... build a prototype.
       | 
       | And then throw it out.
       | 
       | And THEN do an estimate. It will probably be pretty accurate.
       | 
       | Not always easy to do this in a tech company but as an eng
       | director I was able to get it done and it changed a seriously
       | broken process based on multi-week scoping and estimation
       | futility.
        
       | tobyhinloopen wrote:
       | I feel like I can get pretty good estimates on the following
       | conditions:
       | 
       | - the application is thoroughly specced. You might need WEEKS for
       | this. - all variables are taken care of. Stack is known, and
       | you've experience with all parts involved. If you don't, get
       | familiar with the parts first. Again, might take weeks. - there
       | is no implicit functionality. It is either explicit or not
       | included. - there are clear boundaries and rules to prevent
       | feature creep. - you cannot estimate an estimate
       | 
       | Now the problem is, this estimate is really expensive, because
       | it's actual work. It takes about 10-25% of the total project time
       | to estimate the project.
        
       | gregors wrote:
       | It's worth watching Software Schedules by Joel Spolsky has some
       | of the best insight regarding evidence based scheduling. It's
       | extremely interesting -
       | https://www.youtube.com/watch?v=EUS4ktQJOSY
        
       | Kaze404 wrote:
       | I had a conversation about estimates during a recent interview. I
       | asked about how the company deals with those, and the interviewer
       | said they don't do estimates because there's never been a time
       | where something productive came out of one, and I think it makes
       | sense.
       | 
       | In my experience, when an estimate is spot on the world goes on
       | as if nothing happened. When it's incorrect, all hell breaks
       | loose and it's every man for himself. And at the end of the day,
       | all of the blame ends up on the person who guessed wrong. I'm
       | glad I don't have to deal with that anymore.
        
         | snidane wrote:
         | When a company uses software estimation, it suggests strong
         | distrust towards the software people and is looking for
         | justification of those huge costs. Most often it means some
         | shitshow happened or is still going on in there.
        
       | ChrisMarshallNY wrote:
       | I find this amusing.
       | 
       | Know how much a Honda Accord costs?
       | 
       | About 25 Grand.
       | 
       | Know how much a Mercedes S450 costs?
       | 
       | About three times as much.
       | 
       | They are both great cars, that will be rewarding to own.
       | 
       | The Mercedes doesn't have 3 times more parts, but it probably
       | took four times longer to make, and they paid the folks that make
       | it, a lot more than the Honda. It's actually, probably better
       | "bang for the buck," although it won't seem like it, on the
       | surface.
       | 
       | The reason is that all those _little_ things that go into high
       | quality take _lots_ of time.
       | 
       | I can write a pretty complete app that does some cool stuff in a
       | day or two. I do it often, when I write test harnesses for my
       | libraries and whatnot.
       | 
       | However, if you want that app to be ship quality, and highly
       | usable, you're looking at over a month.
       | 
       | The thing is, many folks would consider my test harness lash-ups
       | to be their "shipping" product, and will use that as a basis for
       | estimation.
        
         | darkerside wrote:
         | Your base assumption seems to include that quality is valuable
         | for its own sake. I don't totally disagree, but I'm wary of
         | assigning value based on effort rather than output.
         | 
         | Depending on why you are buying a car, the Accord is very
         | likely much better bang for the buck than the S-class Mercedes.
         | And depending on the situation, the prototype is often better
         | value than the shippable product.
        
           | ChrisMarshallNY wrote:
           | You are exactly correct.
           | 
           | That is why Honda is a bigger company than Mercedes. They do
           | decent quality (Hondas cost more than Kias), but at scale.
           | 
           | I worked for a "Mercedes-level" photographic equipment
           | company for years. People were often quite surprised, when I
           | told them the size of the company. It was like _Roadhouse_ "I
           | thought you'd be bigger."
           | 
           | Our prototypes were _incredibly_ expensive. A $2,000 (retail)
           | body prototype would be insured at half a million bucks.
           | 
           | I just find, in my experience, managers expect Mercedes-level
           | quality, for Kia (not even Honda) prices, and (if you are
           | lucky) mature Honda assembly line development speed.
           | 
           | That can lead to real Jurassic-scale disasters. If you want
           | that level of quality, you need to plan for it.
           | 
           | I'm working on the app that I'm doing, because I was helping
           | a friend of mine evaluate contractors for his dream.
           | 
           | The promises they made were _absurd_. After a couple of
           | these, I just said  "Screw it. I'll do it for you."
           | 
           | He'll be getting Mercedes quality, but he'll need to wait a
           | bit longer for it. I am pretty good at doing damn good; damn
           | fast.
           | 
           | But he also won't be paying a dime for it, so I think he's
           | good with that.
        
         | mekoka wrote:
         | > It's actually, probably better "bang for the buck," although
         | it won't seem like it, on the surface.
         | 
         | A car's primary function is to move its passengers from point A
         | to point B, safely and timely. Both cars do this very well, but
         | the Mercedes will probably be costlier over their respective
         | lifetime (fuel, parts, service).
         | 
         | The only way for it to be a better bang for buck would be to
         | turn its secondary functions (comfort, prestige, signalling)
         | into a primary tool. For instance, if a broker or salesperson
         | finds that owning the car gives them the added confidence to
         | project the image they want during negotiations and thus
         | contributes to their overall success, then it becomes a worthy
         | investment.
        
         | RicoElectrico wrote:
         | We should not conflate quality with value. [1]
         | 
         | [1]
         | https://moznainaczej.com.pl/Download/Teal%20Doctrine/A.Blikl...
         | (13.10 Quality and value)
        
         | winrid wrote:
         | High quality != high feature count. You are conflating the two
         | with your anology.
         | 
         | You don't want to daily drive a 30 year old performance
         | oriented Mercedes.
         | 
         | An Accord however, most generations can hit 300k miles easily.
         | 
         | The Mercedes is more expensive because they put more
         | investement into _refinement_ and _luxury_. Make the doors feel
         | right. Ensure the torque curve is flat and starts at a low RPM,
         | usually using turbo chargers that will fail by 200k miles. Lots
         | of carefully placed sound deadening.
         | 
         | This isn't higher quality, it's extra features.
        
         | maerF0x0 wrote:
         | > but it probably took four times longer to make,
         | 
         | I doubt it. Luxury goods don't proportionately more cost much
         | more to produce than commodity goods.
         | 
         | Instead they often derive their value from perceptions and
         | exclusivity. That is people perceive the object to be more
         | value for their own reasons, or they are made more expensive as
         | a proof point of exclusivity / conspicuous consumption
         | 
         | https://en.wikipedia.org/wiki/Conspicuous_consumption
        
           | someguydave wrote:
           | Mercades cars do often have more features, but I also am
           | skeptical of claims that they are of higher quality.
        
         | someguydave wrote:
         | My experience is that most customers are unwilling to wait for
         | and pay for quality, especially if someone in the market sells
         | a competing product (which itself is of low quality)
        
       | kfk wrote:
       | At least in a business setting I think the whole concept of a
       | project needs serious reconsideration. We end up more often than
       | not trying to fit developing a digital product into an enormously
       | stupid gantt chart to execute some poorly thought "business
       | requirements". I prefer to talk products and not projects, I
       | deliver the full thing including "growth" as adoption doesn't
       | come "if you build it" even within a Company setting. If you are
       | building a product you can also get closer to those with the real
       | problem willing to fund you with real budgets. On top of
       | everything else if you are making users happy they will not chase
       | you on fake estimates but rather work with you to get stuff done.
        
         | snidane wrote:
         | Funny when you look at the actual definition of a project
         | straight from PMP.
         | 
         | "a temporary endeavor undertaken to create a unique project
         | service or result."
         | 
         | No "projects" in software fhat I know of are actually
         | temporary. They only end when management fires the people
         | behind them, it gets cut off or there is no adoption.
         | 
         | We in software think of projects really as things which we
         | create and which need maintenance in order to live. There is
         | never some "end" to it.
         | 
         | Because it doesn't even conform to its own definitions, we
         | could therefore conclude that the whole PMP project management
         | discipline, as applied to software, is a scam.
        
       | wyldfire wrote:
       | How do other disciplines estimate NRE? Do they have the same
       | problems with missed predictions?
        
         | ghaff wrote:
         | Sure. A lawyer may have a pretty good idea of how a particular
         | task or case is likely to play out but there's a lot that isn't
         | under their control. I imagine something like drafting a will
         | is relatively straightforward but I also imagine a criminal
         | case has a huge number of variables.
        
         | alkonaut wrote:
         | You only quote the fixed bits and charge by the hour for the
         | rest. If you need to give a quote for an unknown you multiply
         | the quote by N to cover a worst case.
        
         | solumos wrote:
         | Well, lawyers take a retainer. Doctors are paid per-diagnostic-
         | visit and per-procedure. Accountants bill hourly. Most
         | professions have this - electricians, plumbers, locksmiths,
         | etc.
         | 
         | This business model is normalized for other professions, and it
         | should be for software engineering too. As a profession, we
         | should move more towards partnering with organizations to
         | realize business value through software rather than being
         | simple "feature factories" (see also: Developer Hegemony[0]).
         | 
         | [0] https://daedtech.com/developer-hegemony-the-crazy-idea-
         | that-...
        
       | Netcob wrote:
       | Integrations for time-tracking software with issue tracking
       | software exists, but I've never actually seen them used in
       | combination before. You'd think that issue trackers would always
       | include a very user-friendly time tracker by default, and
       | advertise integrations with popular time trackers just to get
       | that "actual time spent" data. I've also never looked at a
       | burndown chart with any particular interest after knowing you can
       | close an 8h issue after .5h and a .5h issue after 8h of work and
       | the issue tracker will just keep pretending its charts mean
       | anything.
       | 
       | Yet any company that does a lot of the same work could probably
       | use that. You'd still need to do some extra work and tag your
       | issues by things that you want to observe (and maybe predict),
       | but then you could say things like "after we switched to that
       | fancy new API client generator, our client development times went
       | way down but debugging times went up a bit". And the system could
       | display some time range while you're writing the issue. You could
       | also look at the issues at the end of a sprint and then merge
       | them with other items from the time tracker to see how meetings
       | and other distractions played into the outcome.
        
       | Groxx wrote:
       | One important thing I've managed to get a couple managers to
       | track for quarter/half planning purposes: _uncertainty_. Prior to
       | that, we 'd of course hemmed and hawed and _verbalized_ the
       | fuzziness of our estimates... but only the final decided-on not-
       | super-pessimistic number was written down, and decisions were
       | made based on those. _That_ was a major source of our estimating
       | problems.
       | 
       | Everyone wants estimates. For decent reasons. But until we've
       | done a similar thing before, they're utter fabrication. We can
       | take a semi-educated guess, but we _know_ they 're still
       | guesses... so for things we don't have concrete answers for, we
       | give small/medium/large/extreme markers for how uncertain we are.
       | 
       | It's fine to take on a big unknown or two. You might even get
       | them both done in a half. But they better be worth it (or you
       | have to decide when to cut your losses), because completing those
       | two _could_ consume _all_ of your resources... and if that
       | happens and you didn 't commit everyone to it up-front, you won't
       | get it done this half. Making that tradeoff more explicit managed
       | to get us signed up for fewer low-impact-but-highly-uncertain
       | projects that would inevitably balloon out of control but never
       | be cut.
        
       | 458aperta wrote:
       | I disagree with the premise of this article. Software development
       | is largely a waterfall process even if you use TDD (which was
       | using a machine gun to chop down a tree) and the effort
       | estimation is both predictable and consistent. At least with the
       | model that we use in-house developed over the past 10 years that
       | has resulted in several exits.
       | 
       | Don't rely on HN submissions to shape your view of the world.
       | Pedantry, pendants waste your time. Only real world results and
       | data matter. The people who can't do simply teach or publish
       | papers so all you are left are people who grab a leg or an arm
       | and think its an elephant in complete darkness. You simply will
       | never ever find us publishing these information nor do others
       | that have figured it out.
       | 
       | Transparency when it comes to winning trust is a must.
       | Disclosures in the name of generosity or some collective good is
       | lust; You might feel good but it ultimately results in increased
       | competition and higher operating cost until your edge disappears.
       | We are not in the business of helping our competitors, we use our
       | unique edge to push them out of the market when we can, we use
       | capital to buy them out when we can't.
        
       | csours wrote:
       | "Estimates" are for things you've done before - like you can
       | estimate building a house, because people have built houses
       | before. The more like an existing house, the better you can
       | estimate it.
       | 
       | Software is invention and construction. The construction part is
       | pretty easy to estimate. The invention part is ... very very
       | hard. I'd like to say it's impossible. I'd like to see the
       | software industry use a different word than estimate.
        
         | chaz72 wrote:
         | Yes! I try to always phrase it as "the part I can see from here
         | will take at least X time".
        
         | Netcob wrote:
         | Very true, I think those estimates are actually two ideas/types
         | crammed into one value.
         | 
         | 1. The construction part, as you said, can be estimated.
         | 
         | 2. I'd just call the other thing "allocated time" instead of
         | "estimated time".
         | 
         | Any time someone asks me how long it will take me to fix a bug
         | that I haven't really looked at yet, or to plan some new
         | feature or something like that, and they badly need a number, I
         | ask them how much time I should allocate to that. I can't
         | promise to have something like that done by that time, but it
         | gives us both an idea about how to treat that problem.
         | 
         | For example, we could allocate two hours to fix a bug, with the
         | understanding that if that turns out to not be enough then
         | we'll need to talk about workarounds. Or we can allocate two
         | days to plan a new feature, and the best solution we can think
         | of in that time shall be the one we use.
        
           | vinay_ys wrote:
           | This is brilliantly put. That's pretty much what engineering
           | is - constraints and tradeoffs - giving software project
           | planning/execution a healthy vocabulary to talk about makes
           | it so much better. Much of the crappy feeling that developers
           | go through by putting themselves into a corner can be avoided
           | if everyone had better mental/language models to think/talk
           | about it.
        
         | Ericson2314 wrote:
         | Yes, and if you find yourself getting better at estimation,
         | that's probably because you have failed to build proper
         | abstractions. With proper abstractions, the cost of the same
         | stuff should be minimal, so the part with no good priors
         | predominates.
        
         | [deleted]
        
         | a_wild_dandan wrote:
         | 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 folks want to tame a chaotic world. But sometimes
         | you can't. And the software engineering field in particular
         | feels wildly neurotic about pretending otherwise. Sometimes I
         | imagine applying our project management tools to other
         | technical fields and laugh at how insane we must look.
        
           | cgrealy wrote:
           | > It's engineering Numberwang.
           | 
           | Can I just say that is the greatest description of software
           | estimation I have ever read? I am 100% stealing that.
        
             | aidos wrote:
             | We use it internally ourselves. It's from That Mitchell and
             | Webb Look.
        
           | jacques_chester wrote:
           | 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.
        
             | csours wrote:
             | > "Special pleading that our industry is somehow the only
             | one that faces uncertainty and novelty doesn't really hold
             | water."
             | 
             | I'm sure you're right. I don't think we should abandon all
             | hope. I just think we should be more honest. I also think
             | that software has fewer constraints than other industries,
             | which is a blessing and a curse for estimation
        
         | btbuildem wrote:
         | I'd beg to differ. There is very little invention going on.
         | Most software solutions tackle well-known problems, customized
         | to a particular business need. Akin to building a house, but
         | with specific owner requirements (three-car garage, etc).
         | 
         | It gets a little complicated partly because of the industry's
         | penchant for reinventing its tools on a rolling basis. In the
         | trades, technology remains largely unchanged over decades, and
         | only truly useful new advances are integrated into workflows
         | (for example, laser level vs plumb bob or spirit level).
         | 
         | In software, new technological approaches are adopted on a
         | continuous basis, and so a lot of effort is spent on learning
         | how to solve old problems with new tools.
        
           | csours wrote:
           | > "There is very little invention going on."
           | 
           | If you said there is very little fundamental research going
           | on, I would agree with you; but even putting together
           | building blocks in a new way is invention. If you look at
           | patents (arguably a unit of invention), most of them don't
           | have fundamentally new building blocks, just existing blocks
           | put together in new ways.
        
         | riazrizvi wrote:
         | Yes. So you can more accurately estimate replicating components
         | you've written before, eg another database client, but
         | estimating new software is a successive sequence of uncertainty
         | reduction. The first pass being highly intuitive, the second
         | pass, with more of the details worked out, less so... until
         | you've completed the first working version, and you can finally
         | say in hindsight, it actually took this long.
        
       | domano wrote:
       | I noticed that my estimates usually end up 3x as high as the next
       | one and i feel pretty confident about them
        
       | alisaus6 wrote:
       | Hottie hangout pics with nude babes - https://adultlove.life
        
       | samsk wrote:
       | My bulletproof formula for doing estimations in corporate
       | environments:
       | 
       | InternalEstimation = estimate the work as truly as possible (ie.
       | in MD) ExternalEstimation = double the value of
       | InternalEstimation, and increase units by one order
       | 
       | Example: 1 day (MD) = 2 weeks 2 weeks = 4 months
        
       | kylecordes wrote:
       | Sometimes a request for an "estimate" is really a request for a
       | promise, quotation, a guarantee that something will be delivered
       | by X time or cost.
       | 
       | It's easy to detect this:
       | 
       | Gently begin a discussion of how much uncertainty is tolerable,
       | do they want to know the number we are 50% likely to hit? 80%?
       | 
       | If you get emotional pushback to discussing uncertainty, they are
       | looking for a promise.
        
       | yters wrote:
       | It is provably impossible to predict development effort.
        
       | neartheplain wrote:
       | Reminds me of the excellent 2010 talk, "What We Actually Know
       | About Software Development, and Why We Believe It's True":
       | 
       | https://vimeo.com/9270320
       | 
       | Bit long, but well-presented and worth a listen for any
       | practicing software developer (or person who manages developers).
        
       | k__ wrote:
       | I think, software development works best without deadlines, but
       | then you have to find ways to finance yourself while people wait.
        
       | jadams3 wrote:
       | The most useful piece of advice I have gotten for estimates is
       | that they are all junk until someone sits down and tries to do
       | the work. For big jobs, 20% of it, small jobs pushing 50% of the
       | work.
       | 
       | In every single case when you've done that much work, I seem to
       | wind up with a reasonable estimate.
       | 
       | If we've done the job before and have data on it, also
       | reasonable.
       | 
       | Double or triple anything else.
        
       | didibus wrote:
       | 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 headcount you're willing to give, how much tech
       | dept you're willing to take, etc., for the privilege of getting
       | their business.
       | 
       | If you see it for what it really is, you'll see that it works
       | pretty well actually. The business gets more out of you for less
       | to them. It was never about having an accurate timeline or
       | helping with planning or prioritizing, and always about
       | negotiating a better contract with the dev team.
       | 
       | Now keep in mind that the "business" in this case is a person who
       | need to report that through their amazing prowess of
       | administration and management, they personally managed to get X
       | feature out during their last review cycle at Y cost with impact
       | Z. This person will not need to deal with developer satisfaction,
       | retention and performance. They will not need to deal with the
       | impact the lower margins they pushed for had on the next feature
       | delivery, or the continued maintainance of the systems. And if
       | the dev team had to lower the quality too much in order to meet
       | the quote they put out, that will be 100% their fault, the
       | "business" will know not to use them for their next contract, or
       | they'll expect the dev team to take on fixing all the issues at
       | their own expense once more.
        
         | quickthrower2 wrote:
         | That is the degenerate scenario, but it's not always true.
         | 
         | Often I see this haggling down of estimates and then
         | microagression if estimates are not met but no need to work for
         | free to make up for it.
         | 
         | And I've also seen wise use of estimation but that is rarer!
        
           | didibus wrote:
           | > And I've also seen wise use of estimation but that is rarer
           | 
           | I've got a question for you here, what is a wise use of
           | estimation?
           | 
           | What problems are estimates the ideal solution for? In the
           | context of software development?
           | 
           | I can think of only two: planning headcount and priorities
           | (aka planning the order in which you do things).
           | 
           | When you focus on those problems, you realize there's no need
           | for an accurate estimate. All you need is relative sizing
           | between requests. This seems twice as much work as that but
           | gives us half the benefit. Ok probably we shouldn't do this
           | one first. And even then, often time impact is all you need
           | for priorities. Like who cares what takes you longer, if you
           | just focus on building the next most impactful thing you'll
           | very often succeed.
           | 
           | The question of: "When are we going to be done this?" Is
           | almost always irrelevant except for what I mentioned "asking
           | for a quote". Like, who cares when it's done? What else you'd
           | rather we do? I can tell you if your alternative will be any
           | faster or not. And is this not the most impactful thing? If
           | so, let's finish it and stop slowing us down with these
           | irrelevant questions.
           | 
           | Now for headcount, it's the same thing. Look how much you did
           | last year with what headcount. Ask yourself if what you're
           | hoping to do this year is of the same relative size, twice as
           | big, half as big, or smaller? And then plan headcount
           | accordingly. If twice as big, double head count. Overtime
           | you'll learn if twice as big requires doubling headcount or
           | 1.5x or 1.2x or 2.3x etc.
        
             | jeffreygoesto wrote:
             | Get something ready for Christmas business? Get a car on
             | the road? Finish the cruise ship in time? ...
        
               | didibus wrote:
               | > In the context of software development?
               | 
               | While your examples I'm not sure are super relevant from
               | a software development context. I think you're pointing
               | out that the estimate would help you decide when you need
               | to start so you are done before the "real life events
               | that needs the thing".
               | 
               | Is that correct?
               | 
               | Like for example I'm not sure it's useful to learn that
               | no, you will not be ready for the Christmas event. Or no
               | the cruise ship will not be ready in time. But it might
               | be useful to know: "If I want to be ready for the
               | Christmas event when should I get started and how many
               | developers do I need?"
               | 
               | That's a good example I guess, though I haven't seen this
               | issue arise very often in software. I could imagine
               | someone needing to know when to start feature freeze and
               | prep work for scaling up leading up to a big sale event
               | if you run an online store for example.
               | 
               | My take on this is that asking devs to guess that time
               | would obviously not work. And if you did this type of
               | forecasting for any other discipline, you'd instead
               | gather historical data about how much time things took in
               | the past and plot that to forecast how much you'd think
               | it takes in the future. Which is a process that can be
               | done without needing to ask a dev for their personal not
               | data based guesstimate.
        
             | jeena wrote:
             | Who cares when it's done? Often there are external
             | deadlines like a start of production of a car for example
             | which can not realistically be moved because too much
             | planning would need to be redone and too much disruption
             | would cause so much overhead that it could break a company.
             | 
             | Also when price and time are fixed, there is only one thing
             | left for negotiation and it is the amount of features being
             | delivered. Sometimes people have a hard time to cope with
             | it but if you do it correctly it's a great thing for
             | everyone. The most important features could be delivered
             | early and the closer to the deadline the non critical
             | features can be implemented which are nice to have but
             | won't break the product if they're not in place. That's a
             | great way to bring as much value as possible without
             | breaking anyone.
        
             | loopz wrote:
             | Wise use of estimation is projection. You don't need to do
             | much more than count stories. It would be honest and
             | without agenda.
             | 
             | I've never seen it either.
        
               | didibus wrote:
               | Yes exactly! When you ask someone for their estimate,
               | you're getting a quote from them.
               | 
               | When you actually want to predict the length of time
               | something will take, you rely on historical data and
               | create a projected forecast. It never involves asking
               | somebody for their best guess. That's how every single
               | "other thing" we predict is handled, so why is software
               | done differently.
               | 
               | Actually, I've seen some of these ideas being talked
               | about in KanBan circles, like tracking lead time and
               | cycle time, and then using monte carlo simulations to
               | forecast, but I've never actually seen them in practice.
        
         | daanlo wrote:
         | 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 members' retention.
         | 
         | So having a rough or concrete time line / roadmap is helpful
         | for these parts of the business.
         | 
         | I also believe that a feature request is incomplete without an
         | estimate. It is like a friend asking you to go buy him a car.
         | What does he need a 3000$ subaru from 2003 or a 2021 Ferrari?
         | Of course the friend can give you an insanely accurate list of
         | specifications, but giving you a budget + some guidelines will
         | probably be more effective for your friend and more fun for
         | you. Especially considering that you know much more about cars
         | (read software) than your friend. Knowing the budget you will
         | be able to make much better choices.
         | 
         | If you take the allegory of a quote (which I think is correct)
         | then you need to consider that the haggling process always also
         | includes scope of the product. ,,I'll give you 5000$ for the
         | car, but only if you include a free car wash". And you can
         | always use an estimate as defense against feature creep. ,,We
         | are running low on budget, I suggest descoping xyz into the
         | next iteration. Otherwise we won't be able to ship on time". If
         | on time is not defined then you can never have this
         | conversation.
        
           | cheschire wrote:
           | And to continue your metaphor, most software estimation comes
           | from someone describing a car they like, and based on your
           | mock ups you and others decide on a price, how long is
           | acceptable to build, etc.
           | 
           | So then you goto build the car and everything's going great
           | till you find out that the latest research shows the specific
           | design of engine you're using doesn't work with the eco
           | friendly fuel that is now being mandated by the government.
           | And suddenly killing cows is uncool so you have to change all
           | your chairs to fabric or source fake leather, but half of
           | your company thinks that endorsing fake leather is hide-
           | appropriation and you're now spending a third of your time in
           | HR going through training.
           | 
           | And eventually you get about a week out from delivering the
           | car and the customer calls your PM and says they want the car
           | to have a top speed 30mph over the original specs while
           | maintaining the fuel efficiency rating. And the doors should
           | swing up, instead of out. Like billionaires'.
        
         | snarf21 wrote:
         | The issue is that you are being asked to estimate something
         | that has never been done before. Even houses always go over
         | time and money and that is fairly straight forward.
         | 
         | These days, I only give estimates in terms of _units_ but
         | without numbers. Hours, days, weeks, months, quarters or years.
         | Some relatively small number of those units. If you want a
         | quote it will take an extra 1 /4 of the estimate worth of time
         | for an exact timeline. I really wish we would treat sales
         | people the same way. "How much money is this contract for? What
         | date will it be signed?"
        
           | corry wrote:
           | 'I really wish we would treat sales people the same way. "How
           | much money is this contract for? What date will it be
           | signed?"'.
           | 
           | In well-run sales teams, that is exactly what happens. There
           | is a constant move towards more accuracy and tightness in
           | forecasting.
           | 
           | In poorly run sales teams, the reps basically set their owns
           | quotas (padded, of course, to mitigate against massive
           | uncertainty) and then are very imprecise at managing the WIP.
           | Which sounds like a poorly run engineering team too. In
           | sales, though, at least there is a very objective measure
           | ($$$ closed) at the end of the period. Also, the period is
           | fixed typically (months, quarters, etc).
           | 
           | Engineering is obviously different... what's the measure?
           | LOCs? Obviously not...
           | 
           | Edit: just to be clear, I'm saying that well-run sales teams
           | and well-run engineering teams probably have a lot in common,
           | not that they are exactly the same.
        
             | chasd00 wrote:
             | i think well run teams in general have a lot in common. Not
             | just sales or engineering but all well run teams.
        
             | didibus wrote:
             | I think you're talking about goals, which isn't the same as
             | estimates.
             | 
             | A well run sales team, like a well run dev team do benefit
             | from goals. Like increase X by Y. That's because it can
             | guide your decision process of what you'll spend your time
             | on and what you won't. It can also push for focused
             | innovation around a particular area.
             | 
             | But I think OP meant what if you asked the sales team: How
             | much time will it take you to close the deal with X? Would
             | they be able to estimate that? Which is different from
             | asking them: "Try and close X Y% faster than it took us to
             | close Z last time." The former would be asking for an
             | estimate, the latter would be setting a goal.
        
               | xyzelement wrote:
               | Sales team certainly understand the sales cycle and
               | different velocities involved.
               | 
               | Eg - two jobs we ago sold to finance playera from small
               | hedge funds to huge asset managers to central banks and
               | finance ministries. You could sell more small hedge funds
               | by knocking on more doors but you understood that the big
               | players took months and years to decide. And of course we
               | always tried to hone the sales org and process to arm the
               | sales people with tools and data to move faster. We
               | certainly held them much more accountable than devs.
               | 
               | It's actually not a fair comparison - software
               | development is often like golf - the only limit to your
               | velocity is you while sales can't really move faster than
               | customer's process in many cases.
               | 
               | (Yes I obviously know dev processes can have external
               | dependencies too)
        
               | didibus wrote:
               | Moving faster and increasing impact of deliveries, those
               | are goals you can work towards, that do not involve
               | needing to estimate anything.
               | 
               | The question is: do you for every sale provide an ETA of
               | when you think the sale will close, with projected key
               | milestones along the way and their dates, all before even
               | beginning engaging the would be customer?
        
           | dkarl wrote:
           | > 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 unimaginable, and it
           | doesn't happen because those people are too serious and
           | professional to let it happen, not like us unserious,
           | immature software doofuses. Turns out that was a complete
           | lie, but at one time it warped the profession, because it
           | made people believe the answers already existed, right around
           | the corner, something you would figure out pretty soon just
           | like last year you didn't know regular expressions and now
           | you did.
           | 
           | The problem with that was that when somebody walked in with a
           | button-down shirt, oozing confidence and saying they knew
           | exactly how to consistently deliver software on time and bug-
           | free, those people weren't laughed out of the room. Elaborate
           | heavyweight processes, and their "lightweight" (hah!)
           | cousins, could sell themselves as proven, established
           | solutions. We could believe that bullshit because we had been
           | fed the lie that other industries had conquered these
           | problems.
        
             | meheleventyone wrote:
             | It doesn't even have to be a big construction project to
             | hit budget and schedule issues. Rebuilding our house had us
             | going right back to the drawing board having to get new
             | plans drafted and approved. It worked out much better in
             | the end but the unforeseen cost and time overrun was quite
             | anxiety inducing at the time.
             | 
             | But yeah the idea anyone has magically solved accurately
             | predicting the future is completely bonkers.
        
           | einpoklum wrote:
           | > These days, I only give estimates in terms of units but
           | without numbers. Hours, days, weeks, months, quarters or
           | years.
           | 
           | Then you must be either an independent contractor or have
           | some magical source of job security. I couldn't get away with
           | this kind of estimate.
        
         | koonsolo wrote:
         | 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.
        
           | lixtra wrote:
           | Typically there are many dimensions to a solution, the
           | negotiation can be about trading one dimension for another.
           | 
           | - does it have to be instant or can we run it as a batch
           | 
           | - maybe it's enough to have this tool in English only
           | 
           | Etc.
        
           | benhurmarcel wrote:
           | I find it much less stressful to deal with since I've made
           | peace with the fact that some managers want to be lied to.
        
         | xyzelement wrote:
         | I never experienced the dynamic you are talking about. Sounds
         | like your workplace is terrible.
         | 
         | I've almost always had business partners that were just that -
         | partners - invested in the product and the team long term. I am
         | the same way now that I am "the business."
         | 
         | Estimation is a useful forcing exercise for thinking through
         | what something takes, identifying risks and hard parts and
         | deciding upfront what to do about them.
         | 
         | It also becomes a good measure of people's integrity - what
         | they do once it's apparent the estimate is off. 100% of the
         | time, when engineering came back saying "we underestimated X,
         | it's much harder" - it was totally fine.
        
       ___________________________________________________________________
       (page generated 2021-01-18 23:00 UTC)