Slashdot Mirror


Overconfidence: Why You Suck At Making Development Time Estimates

Dan Milstein from Hut 8 Labs has written a lengthy post about why software developers often struggle to estimate the time required to implement their projects. Drawing on lessons from a book called Thinking Fast and Slow by Dan Kahneman, he explains how overconfidence frequently leads to underestimations of a project's complexity. Unfortunately, the nature of overconfidence makes it tough to compensate. Quoting: "Specifically, in many, many situations, the following three things hold true: 1- 'Expert' predictions about some future event are so completely unreliable as to be basically meaningless 2- Nonetheless, the experts in question are extremely confident about the accuracy of their predictions. 3- And, best of all: absolutely nothing seems to be able to diminish the confidence that experts feel. The last one is truly remarkable: even if experts try to honestly face evidence of their own past failures, even if they deeply understand this flaw in human cognition they will still feel a deep sense of confidence in the accuracy of their predictions. As Kahneman explains it, after telling an amazing story about his own failing on this front: 'The confidence you will experience in your future judgments will not be diminished by what you just read, even if you believe every word.'"

297 comments

  1. I sucked because I was pressureed to being sucky by Anonymous Coward · · Score: 4, Insightful

    'nuff said.

    We've all been under pressure to give our "best" estimates and then some.

    Give a realistic estimate? Off to India!

  2. Sounds like ... by jamesl · · Score: 0, Troll

    ... predictions of catastrophic anthropogenic global warming.

    1- 'Expert' predictions about some future event are so completely unreliable as to be basically meaningless.
    2- Nonetheless, the experts in question are extremely confident about the accuracy of their predictions.
    3- And, best of all: absolutely nothing seems to be able to diminish the confidence that experts feel.

    1. Re:Sounds like ... by RobbieCrash · · Score: 1

      Yeah, odd that being right keeps people feeling confident in their predictions...

      --
      Keep on knockin'
      https://robbiecrash.me
    2. Re:Sounds like ... by Anonymous Coward · · Score: 0

      If by " completely unreliable" you mean "accurately predicting experimental and observational data" then yes.

    3. Re:Sounds like ... by jc42 · · Score: 1

      If by " completely unreliable" you mean "accurately predicting experimental and observational data" then yes.

      Actually, in my experience "completely reliable" withing the software industry means "delivering within the deadline imposed by technically-ignorant managers or customers". The developers rarely have any say on the schedule; they are just judged on whether they meet whatever random schedule someone else decided based on little or no knowledge of the roadblocks standing in the way of delivering what was wanted.

      As someone else put it a while back: Most software schedules are decided by trimming the estimates until the developers respond by giggling. At that point, the managers making the schedule know that it's totally unachievable, so they stop decreasing their time estimates.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
  3. Too many factors. by Threni · · Score: 0

    There's problems with the dev machines and environments, changing specs (including specs which are just stupid and need changing by someone with some sort of clue, rather than an overpaid 'analyst' who's just cutting and pasting stuff they don't understand from other people's documents), unforeseen problems during development, resourcing difficulties - all for a fuckwit of a manager with no technical experience who just wants a number they can enter into an email.

    1. Re:Too many factors. by TapeCutter · · Score: 1

      You sound like your fresh out of collage. Seriously, the people around you are morons and deadlines are just something for the chief moron to put in an email?

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    2. Re:Too many factors. by plover · · Score: 4, Insightful

      Actually, most of those things can be predicted. What is harder to predict is the creative aspect of development. Predicting a civil engineering project, like a bridge, is easy because engineers can compute the number of beams, the volume of concrete, the depths of the footings, etc, and they already have a good idea how construction people will behave, so they can add 5% for vacations, 20% for staffing difficulties, 10% for late trucks, etc. Predicting the creation of a new piece of software is less certain, because so many of those pieces are unknown. You make an initial survey of the requirements, and take an educated guess at what the solution might be, but you know that's never the final picture of the real solution.

      If you're on a mature Agile team, you trot out your velocity, map your epics to some t-shirt sizes, and do some simplistic multiplication. But you also know to announce the estimates in terms of your team's delivery dates, and you don't overpromise. At this point, either management trusts your team's reputation and you boldly go forward, or you give them estimates with confidence levels around 20%, because you simply can't be more accurate than that.

      If you're on a waterfall team, any software development estimate with an accuracy figure of higher than about 50% should be viewed with suspicion, and anyone claiming 90% or higher should be flagged as a true bullshit artist.

      --
      John
    3. Re:Too many factors. by jd2112 · · Score: 1

      I love deadlines. I like the whooshing sound they make as they fly by. - Douglas Adams

      --
      Any insufficiently advanced magic is indistinguishable from technology.
    4. Re:Too many factors. by hackula · · Score: 1

      Not all management is like this. I used to be in this environment, and I am happy to say that I no longer am. Business analysts, on the other hand... pretty much universal. 99% of real development is spent with a stakeholder in a torture chamber as the developer extracts excruciating details of what they really meant to say in the spec. Also, you have to CYA with analysts. I tend to have phone call with them where I ask 5+ times "So you want me to do X, correct?", then I send them an email that says "You want me to proceed with X, correct?". I am sure it comes off as insulting, but I have a habit of not getting thrown under busses, since I picked up that technique. There is nothing wrong with a client changing their mind, but it will be documented and my side of the argument will simply be a CC to the appropriate stakeholders.

    5. Re:Too many factors. by khakipuce · · Score: 2

      Construction has very real material costs -the beams and concrete you talk about - so every component is drawn and specified. In software development the material costs are virtually zero so you might as well build it twice, once to understand it and once to productionize it, it's the same as writing a detailed spec and then coding it.

      --
      Art is the mathematics of emotion
    6. Re:Too many factors. by trevelyon · · Score: 1

      I think this is simply an effect of the complexity of issues. I know when I do estimating I try to break it down into pieces of .5 - 3 hours. Any larger blocks need further subdivision. Even with that things can go very wrong due to unforseen factors. An simple example is:
      Project: Migrate 3 physical hosts to VMs on new hardware
      2h (hours) - base OS install
      1h - hypervisor install
      2h - host 1 migration
      2h - host 2 migration
      2h - host 3 migration

      Most of these estimates are very conservative for time and 90% of the time that 2 hours for the base OS install will be the case. The other 10% where I have hardware with misbehaving drivers or bad firmware that 2 hours can be off by 10+ and sometimes hardware may need to be changed to make it work. That is just one step in the process. I could also have software that is license locked to some part of the hardware and will need to be reactivated due to the change in hardware. Many steps can have these kinds of uncertainty in the estimation process and many times the people want you to provide estimates without giving all necessary information (complete list of applications or new hardware specs). People with lots of expertise usually assume the 90% will be the result for that step but then add in a bit of padding at the end to compensate for some of the 10%s. The more complex the problem and the more steps with higher uncertainty the worse the estimate overall is (many chances for greater variation in the statistics). These are not always 10% too, some might be 20% or 25% and usually relies on memory (gut feeling) to assign these percentages.

      My experience has been that most of the estimates I am asked to give have very small time allocated to making the estimates when compared to the system complexity (often unpaid even for fairly large projects). There is also a common belief that if you are an expert you can just throw out a good estimates off the top of your head. For most non-trivial operations this is simply not reasonable and you are left with an educated guess instead of any sort of proper estimate. With little resources allocated to making accurate estimates and the complexities of the systems and tasks being estimated it does not surprise me in the least that many estimates are off by significant amounts. I think a large part of the problem with estimating is setting realistic expectations for the deliverables.

    7. Re:Too many factors. by Anonymous Coward · · Score: 0

      You sound like your fresh out of collage. Seriously, the people around you are morons and deadlines are just something for the chief moron to put in an email?

      And you sound like you failed more than a couple grammar/spelling tests in your life.

  4. Pi by Anonymous Coward · · Score: 0

    I found that if I multiply by Pi my estimated time I'm usually right on target !

    1. Re:Pi by DaveAtFraud · · Score: 4, Informative

      I usually take whatever estimate I'm given and change it to the next largest unit and double it. Thus, an estimate of two hours become four days. This is still usually less than the actual time required. And don't even get me started on projecting when some task will be completed as opposed to how much effort will be required. The above alogorithm does a reasonable job at estimating effort actually requied but determining the calendar completion date is a whole different animal.

      Cheers,
      Dave

      --
      They that can give up essential liberty to obtain a little temporary safety deserve neither safety nor liberty.
      Ben
    2. Re:Pi by Anonymous Coward · · Score: 0

      I do roughly the same thing, works out well for me as well, it took me awhile to actually trust that it would work.

    3. Re:Pi by Anonymous Coward · · Score: 0

      Also very similar. I have had very little trouble in estimating development time.
      Upper management on the other hand, has a very poor record of underestimating time, and making delivery promises based on that value.
      And guess who catches hell when that doesnt happen......

    4. Re:Pi by RabidReindeer · · Score: 1

      Pi is funny, but I do triple it and it's about right. Unfortunately, it makes Management very unhappy.

      The problem with estimation is something I've meditated on for a long time, and I blame it on several factors.

      1. The users/managers saying "It's Simple! All You Have To Do Is...". Frequently accompanied by the pointed observation that "My 8-year old niece could do it."

      2. The developers/designers saying "It's Simple! All I Have To Do Is...".

      3. A refusal on the the part of management to accept an honest estimate. I used to tell students in the college lab that their printouts would come out faster if they grabbed the paper and pulled, and that's about what management tries to do. This works especially poorly when the honest estimates were already unrealistically optimistic. Give them a realistic number and they'll pressure you until you give them a number they like. And I guarantee it will be a lot smaller that the realistic one.

      Where does the AYHTDI effect come from? In the case of the developers, some of it is ego, but some of it is ignoring reality. My suspicion is that development estimates are scaled on the unconscious premise of how long it would take to instruct a human to do something and computers are a lot stupider than humans when it comes to seeing what needs to be done and doing it on their own. Most humans, anyway. Well, some humans.

      The other thing that contributes to false expectations is the Modelling Effect. In most fields, a model is visibly a flimsy representation of the final product that cannot possibly be mistaken for the final product itself. These days, most computer systems are all about the UI. A final-looking UI can be knocked together in a matter of hours often as not, but it's no more the final product than a mask is a human being. The difference being that it makes the application look like its finished long before it really is. Add the "instant gratification" frameworks that use can put together basic functions in an hour, even though the industrial-grade equivalent may take weeks, and there's all sort of room for disappointment.

    5. Re:Pi by gmhowell · · Score: 1

      Ahh, the Scotty method.

      --
      Jesus was all right but his disciples were thick and ordinary. -John Lennon
    6. Re:Pi by Anonymous Coward · · Score: 0

      1. The users/managers saying "It's Simple! All You Have To Do Is...". Frequently accompanied by the pointed observation that "My 8-year old niece could do it."

      2. The developers/designers saying "It's Simple! All I Have To Do Is...".

      This does of course get even worse when your manager used to be a developer. "All I Would Have To Do Is" gives you the worst of both worlds.

    7. Re:Pi by prionic6 · · Score: 1

      It's the 80/20 rule:

      - Never estimate less than 80 hours
      - Multiply estimate by 20 ;)

    8. Re:Pi by benhattman · · Score: 1

      I was going to make almost this exact statement. For me the number is 2.5. I can also explain why.

      Any programming task consists of basically 3 aspects: make the prototype, make the prototype usable, make the usable thing a product (documentation, etc). In my software dev class, they had a little chart that looked like a square. The prototype took time x, and it took 3x to move in either of the other two directions, 9x to do it all.

      As coders, we tend to base our estimate on the prototype part. How long will it take to do this thing once. We tend to ignore the other two aspects of producing a product from our prototype. If your organization demands the fully documented stable product, use 9x, if it demands less than that, use a smaller multiplier.

      Why do I use 2.5x instead of 3? Because I'm a little bit cautious in my initial estimate, and I find 2.5x is actually closer for me.

  5. Re:I am confident thqt this is the by Anonymous Coward · · Score: 0

    I'm not an expert in these manners, but I think you're supposed to post an APK troll as the first post.

  6. I guess I'm not an expert then.... by mark-t · · Score: 4, Insightful

    Points 2 and 3 don't seem to apply to me. I know I suck at doing development estimates. When asked for one, I've never been particularly confident about any estimate I give having a good chance of being accurate. I want to estimate conservatively, but project schedules don't allow for that.

    1. Re:I guess I'm not an expert then.... by Dixie_Flatline · · Score: 4, Interesting

      I guess part of being an 'expert' is being dumb enough to buy your own crap. That's why they always seem so sure of everything. Meanwhile, folks like you and me hedge our bets, and people attribute that to not knowing enough, rather than knowing all too well what the real deal is.

      I suspect that prior to being an 'expert', that person makes one wild guess that they nail bang on. After that, they just point back to the ONE TIME they were right, and that carries them for the next few years.

    2. Re:I guess I'm not an expert then.... by nine-times · · Score: 4, Insightful

      I wish people would understand that project schedules should *only* be considered guesses and estimates. Take the time you think it will take, and then take a step back and ask yourself, "No really, how long will it take?" When you get a number, take another step back and ask yourself, "No, *really*, when a bunch of things go wrong and it takes longer than I expect, how long will it take?" And then treat that time frame as a best-case scenario.

      Part of the problem is that many projects can not be set to a specific schedule. The real answer is usually "it depends". How long will it take to build a new website? Well it depends on what unexpected hurdles we run into. It depends on how many features you want to add after we begin. It depends on how many revisions we go through.

      When people ask me to set a firm deadline, I'm always tempted to ask them, vaguely, "When we don't meet that deadline, what do you want me to sacrifice?" Any deadline can be met if you sacrifice enough of the project requirements. So if we're coming up on a deadline, would you rather I miss the deadline or that I sacrifice some of the requirements? That is, let's say you want a website running with features X, Y, and Z, and we have a deadline of June 1st. The question isn't whether I can meet the deadline of June 1st. The question is, on May 31st, when feature Z isn't ready (there will be some feature set "Z" that isn't ready), do you want to go ahead and launch the site anyway? Or is Z worth holding up the launch?

      In other words: project managers should should focus on priorities rather than schedule. "Being on schedule" and "being within budget" are just two more features that need to be prioritized within the set of features that a project is trying to meet.

    3. Re:I guess I'm not an expert then.... by Sponge+Bath · · Score: 5, Insightful

      I know I suck at doing development estimates.

      A struggle is getting people to even agree on what a development estimate is:

      Me: "That will take 2 months of development work."
      [two months of interruptions, putting out fires and "prioritization" later]
      Other: "Why is this not done? You suck at development estimates."

    4. Re:I guess I'm not an expert then.... by mark-t · · Score: 2

      It doesn't matter whether or not a project "can" be set to a specific schedule... a client will still expect a deliverable on date X.... and if there isn't, well... the client will simply stop paying you (sometimes there are even penalties imposed for lateness), and you have to finish it for free. Given the choice between doing jobs for those kinds of clients or not having a job at all... I'll take the option that keeps my mortgage payments up.

    5. Re:I guess I'm not an expert then.... by el+cisne · · Score: 2

      This. Had a boss one time ask me for an estimate. I was intimately familiar with the C++ code and said 3 months. He didn't believe it, so he asked someone else who told him 6 months. Yet another told him a year. Who did he go with? His buddy that told him two weeks. FML

    6. Re:I guess I'm not an expert then.... by el+cisne · · Score: 1

      By the way, he gave it to the guy who said it would take a year. A year later and he wasn't even close to being done.

    7. Re:I guess I'm not an expert then.... by Anonymous Coward · · Score: 1

      An estimate is an artifact of a process, NOT a negotiation.

      A target date is a negotiation, and the level of risk it entails is a product of how much margin for error it allows based on the estimates. The negotiation points should be on delivery date and acceptable risk level, but NOT what the estimates themselves are.

      One can change an estimate by allocating more resources, removing requirements, etc. But not by saying "I disagree with the technician, and think it will only take this long."

      If you are letting your manager talk you into lower estimates, you are approaching the problem incorrectly.

    8. Re:I guess I'm not an expert then.... by Kjella · · Score: 2

      Take the time you think it will take, and then take a step back and ask yourself, "No really, how long will it take?" When you get a number, take another step back and ask yourself, "No, *really*, when a bunch of things go wrong and it takes longer than I expect, how long will it take?" And then treat that time frame as a best-case scenario.

      The thing is it's not *that*. First I take how long it should have taken and multiply it up to how long it's going to take. Then I factor in all the other things related to the project that I'm likely to get sucked into while working on it. Then I factor in all the other factors like staff meetings, client down, server down, network down, fire drill and whatnot. Try getting some experience data on how much time you get to spend doing what you're supposed to be doing, you might be surprised. Also if somebody asks you how long it'll take to put a roof on the house, always assume the walls and foundation will need work to not collapse unless you did it yourself. Mysteriously enough I never get to push my deadline despite it turning out to being a stick hut built on quick sand. Never assume that what you're told to do will be what you're doing, then most estimates will fail.

      --
      Live today, because you never know what tomorrow brings
    9. Re:I guess I'm not an expert then.... by frosty_tsm · · Score: 2

      I guess part of being an 'expert' is being dumb enough to buy your own crap. That's why they always seem so sure of everything. Meanwhile, folks like you and me hedge our bets, and people attribute that to not knowing enough, rather than knowing all too well what the real deal is.

      I suspect that prior to being an 'expert', that person makes one wild guess that they nail bang on. After that, they just point back to the ONE TIME they were right, and that carries them for the next few years.

      The other problem is that when you're regarded as being an expert and and 2 & 3 don't apply, giving an estimate that hedges for realities to happen doesn't satisfy management. You get accused of padding hours, being difficult, or playing favorites (if there are multiple approaches being evaluated). What's weird is that after this song and dance, they still expect you might run a week late...

    10. Re:I guess I'm not an expert then.... by mark-t · · Score: 3, Insightful

      The first thing you did wrong is that you estimated 2 months, without taking any time to break down how you were going to spend each and every day of that two months. If you had done that, you would have realized you were falling behind schedule within the first week.

      In my experience, any estimate that's longer than 1 day, and often even as little as half a day, generally should require breaking down, so that it is clear exactly what needs to be complete. You break the programming tasks down almost to an atomic level, so that every discrete function of the software is described, along with how long it will take to implement each one. Sometimes you don't know how long something will really take, but that's okay... the time it takes to estimate a project should be factored into the time it will take to complete it. Breaking things down at this level also gives you a clearer idea of the technical requirements to complete the job in the first place, which helps you design technical solutions as you make headway in the project. Further, it gives you a metric once you are partway through a project to determine based on how much of the project you've actually completed within a given time, whether you are even going to complete the project within budget, and if not, institute measures to minimize losses. In practice, you're not going to be right every time, or even necessarily close to being right, but when broken down to this level, the overestimates and underestimates should balance out reasonably well, with perhaps a tolerance of up to about 10 or 20%. If they don't, then there's something else fundamentally wrong with the project, and as a first guess, I'd suggest that it may be on account of unclear program requirements,

    11. Re:I guess I'm not an expert then.... by Anonymous Coward · · Score: 0

      Also, if you make an estimate and it is evenly divisible by 24 someone will assume that it is in calender time, not working time.

    12. Re:I guess I'm not an expert then.... by Sponge+Bath · · Score: 2

      Sometimes you don't know how long something will really take, but that's okay...

      I agree with everything you said, but the point I was trying to make (poorly worded), is that time spent doing something other than development does not advance development. I always pad for the unexpected, but if you pull me off a project to do something else, then that project is not progressing. It sounds like a basic concept, but it escapes those who are not responsible for the actual development.

    13. Re:I guess I'm not an expert then.... by bill_mcgonigle · · Score: 2

      I've never been particularly confident about any estimate I give having a good chance of being accurate

      I tell IT folk and non-IT folk the same thing: an IT estimate is the first point in time having a non-zero probability of being true.

      They both appreciate the truth of the adage. Like somebody else said, multiply by pi. That takes into account the 'problem surface' around the vector.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    14. Re:I guess I'm not an expert then.... by nine-times · · Score: 1

      It doesn't matter whether or not a project "can" be set to a specific schedule... a client will still expect a deliverable on date X.... and if there isn't, well... the client will simply stop paying you...

      Yeah, but you should still know what the real priorities are. Like I said, if the project requirements are "have A, B, and C deliverables complete by date X below a budget of $Y," then you should be sure to try to understand which of those things are more important than others. Is A more important than C? Is it more important to be done before date X, or that B is delivered as promised? If it turns out you have to spend $Z over $Y to complete C on time, is that going to be acceptable? Maybe if you can't deliver B on time, you should just cut your losses and abort the whole project, but A is completely expendable.

      In my opinion, understanding each of these things is usually more important than simply setting a schedule. Some projects have inviolable requirements, schedules, and budgets, but those are really pretty rare. Mostly, you have bad program managers acting as though schedules are inviolable because they don't understand the projects they're running.

    15. Re:I guess I'm not an expert then.... by bondsbw · · Score: 2

      This is a bit presumptive. Sometimes the deadline matters most to the client, and sometimes completeness/correctness matters most. When you perform an estimate (which should always be a range), and the client has specified a deadline (a specific date), ask them this question:

      "When the deadline comes, would you rather the project be incomplete but ready for delivery, or would you rather push back delivery in favor of complete and correct software?"

      Communication with the customer is essential, and continual communication is necessary. The customer will not be happy if the due date comes and suddenly finds out the software is not ready. They may have planned testing, rollout, server or client updates, and many other dependencies based on the agreed-upon deadline. And they may have legal ground to sue you for failure to disclose the status of the project on a regular basis.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    16. Re:I guess I'm not an expert then.... by WaywardGeek · · Score: 1

      First of all, there's some fundamental math that gets in the way of accurate scheduling. If you estimate your project at 1 month, within a factor of 2, than that's from 2 weeks to 2 months. There's no limit to how long a project schedule can slip, but you can only speed up a "two week" schedule by at most two weeks. If you have several projects scheduled at their best guess that must be done in sequence, and half of them come in at half the estimated time, and half come in at double, then you've just missed your deadline big time.

      Given all that, my boss knows me too well... Normally my boss doubles my estimates, but this time my boss in January challenged me to rebuild all the tools I'd developed in the last year "in the cloud", but in only 2 and 1/2 months. The bastard (we're all bastards) knew he was challenging my manhood, and that I couldn't help myself, and that my coworker was the same. We busted our asses and delivered the code. I had to learn C#, JavaScript, jquery, Bootstrap, "model first", "code first" (oh my God! Microsoft SQL SUCKS!!!), Knockout, and oh my brain hurts! But we got it done... f-ing bastard boss... knows us too well...

      --
      Celebrate failure, and then learn from it - Nolan Bushnell
    17. Re:I guess I'm not an expert then.... by dkleinsc · · Score: 4, Informative

      That's why I always say "That will take approximately 270 hours of development work" rather than "That will take 2 months". Then you write down how your time is actually spent, and can document that after 2 months you've actually only had 20 hours to devote to whatever it was, so it's no surprise that you're a long way from finished.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    18. Re:I guess I'm not an expert then.... by Darinbob · · Score: 1

      True. I overestimate and people don't like it. They have a time that they want the project to be done, and they want my estimate to be less than or equal to that.

    19. Re:I guess I'm not an expert then.... by Darinbob · · Score: 1

      I had a similar problem once, when asked how long to add internationalization to a release. I said "It will take 2 weeks starting from when the main project is done". So the management saw that the main project was scheduled to be done on June 30, so the wrote down that my project was due July 14. Main project slipped by two weeks and you can figure out what happened next...

    20. Re:I guess I'm not an expert then.... by Anonymous Coward · · Score: 0

      The first thing you did wrong was to assume a two sentence statement represented literal reality rather than, a summary of reality

    21. Re:I guess I'm not an expert then.... by ArsonSmith · · Score: 1

      that's why during a scrum meeting when the scrum master asks how much time you will be able to commit to this week you say 10 hours, 20 hours, what ever you are confident that you'll be able to commit. If you have a 40 hour task it should be expected that it will probably take two iterations to get through it unless it can be split between 3-4 people than it might get done in 60-70 hours but in the current iteration.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    22. Re:I guess I'm not an expert then.... by mark-t · · Score: 1

      "When the deadline comes, would you rather the project be incomplete but ready for delivery, or would you rather push back delivery in favor of complete and correct software?"

      Ideally, the software is complete and correct by the deadline... failing that, I settle for just getting the software to the state that the client is satisfied, even if I myself am not. I cannot and will not ever in good conscience let software go that has any known major issues, but in practice I've always been able to mitigate any major issues before the final deadline or else somebody else managing the project, and with considerably more people skills than I could ever hope to have, manages to convince the client that the features that are causing the major issue are somehow not viable for the client to expect, and the scope of the project gets simplified so that the project still ends up shipping with no known major bugs.

    23. Re:I guess I'm not an expert then.... by Blue23 · · Score: 1

      I want to estimate conservatively, but project schedules don't allow for that.

      Then your boss/team lead/project manager is doing it wrong. They need accurate information first. They may come back at a later point because they need to change the timing, but not letting you give them accurate information from the beginning doesn't bode well.

      There's lots of methods out there to lead projects and software development. Let me focus on classic project management. To (over-) simplify, the idea is to get an accurate idea of how long each piece of the puzzle takes, what resources (time and materials), and what dependencies there are. One the project manager has that, they can chart out the critical path (the tasks that any delays will add time to the project). If that doesn't match what the stakeholders want, then something has to give. Commonly it could be more resources devoted to particular tasks, it could be lowering acceptable quality, it could be pushing out the timeline.

      Really, if they've told you how long you have before you estimate it, they aren't doing their job of managing the project and instead are pushing it off onto you, without giving you the authority to fix more than your part of it. It's a recipe for missed deadlines. And it's all-too-common.

      So you should be able to estimate conservatively, and then it's there call if they need that part faster. If they do, they need to be willing to put more resources towards it or accept a reduction in quality to get it done on time. Or to revamp the requirements. Or jigger other parts of the schedule so you can start sooner.

      Other methods have entirely different ways to estimate. Planning Poker http://en.wikipedia.org/wiki/Planning_poker has adherents, and a big point behind that is that after listening to the story of a part, without discussions (and therefore influence), everyone puts out an estimation card and turns over at the same time. This allows everyone's estimate to be heard. From there you've got high and low estimates talking about why they think it will be long or short, and then go again until there is consensus. It's not trying to match a project plan, but come up with an accurate estimate in the first place.

      --
      LITTLE GIRL: But which cookie will you eat FIRST? C. MONSTER: Me think you have misconception of cookie-eating process.
    24. Re:I guess I'm not an expert then.... by Blue23 · · Score: 4, Insightful

      I know I suck at doing development estimates.

      A struggle is getting people to even agree on what a development estimate is:

      Me: "That will take 2 months of development work."

      [two months of interruptions, putting out fires and "prioritization" later]

      Other: "Why is this not done? You suck at development estimates."

      Then make sure you're not surprising them at the end of 2 months. If at the end of week 1 you go to them with "I go two days against the project this calendar week, we still have 38 more to go", they are in the groove for project time and calendar time isn't the same. And if they want them to be, they need to stop you from getting interrupted.

      Communication. Verrrrrrry important.

      --
      LITTLE GIRL: But which cookie will you eat FIRST? C. MONSTER: Me think you have misconception of cookie-eating process.
    25. Re:I guess I'm not an expert then.... by jrumney · · Score: 1

      In my experience, any estimate that's longer than 1 day, and often even as little as half a day, generally should require breaking down, so that it is clear exactly what needs to be complete. You break the programming tasks down almost to an atomic level, so that every discrete function of the software is described, along with how long it will take to implement each one.

      If you aren't forced into giving an estimate verbally within 5 minutes of walking into your manager's office, then you must work at some alien company that most Slashdoters can only dream about.

    26. Re:I guess I'm not an expert then.... by Anonymous Coward · · Score: 0

      They don't want estimates. They want you to do it /faster/. You are describing something slow. Nobody ever agrees to that. The estimate is a stick used by sociopathic managers on engineers, who are often driven by a sense of ethics.

    27. Re:I guess I'm not an expert then.... by Ash+Vince · · Score: 1

      The first thing you did wrong is that you estimated 2 months, without taking any time to break down how you were going to spend each and every day of that two months. If you had done that, you would have realized you were falling behind schedule within the first week.

      This is exactly the sort of thing that needs to be taught at university as an integral module to most degrees preparing you for a career as a software developer. Even people doing system type stuff should know this too.

      I know a myriad of students will bitch and complain that they are not learning real development and are just learning business stuff, but screw them. In my experience students bitch and moan about everything anyway, they need to learn faster that in the real world (ie: paid work) people do not care, they just want you to shut up and get on with what you are told to do or I will fire you and pay someone who does. Once you have worked somewhere a few years you generally get some input into things but initially (ie, for most of the period you work there equivalent to your time at uni if on a 3 year degree as is the norm here in the UK) you just need to knuckle down and prove you can do the job.

      I had to learn how to give realistic timescale estimates on the job and it is one of the hardest things I found initially. The fact is that most geeks (I know I did) find learning to actually create code or tinker with servers fun so will do it in their own time anyway. They crap they won't do for fun is the really dull stuff like learning how to scope projects, produce decent project plans but this is exactly what you need to be able to do in order to work as a techie.

      --
      I dont read /. to RTFA, I read /. to offend people in ignorance.
    28. Re:I guess I'm not an expert then.... by Anonymous Coward · · Score: 0

      Parent is damn right.
      In fact what I do is, I write down all lines of code I need to write to finish the project.
      Then I know pretty well how fast I type and divide the number of lines by my typing speed, add 5% for correcting typos and give that as an estimate.
      To implement the project, i simply type the code that i scheduled for that day.

      My estimates are usually very precise but my superiors complain about the long and unforseeable time I need to estimate my projects. :-(

    29. Re:I guess I'm not an expert then.... by Anonymous Coward · · Score: 0

      Multiplying by pi sounds good. Another method I've used is double the time and change the unit of time to the next bigger one(you have to be somewhat loose on what you consider a "unit of time"). i.e: 2 h ->4 h -> 4 "half-day" , so 2 days.

    30. Re:I guess I'm not an expert then.... by nine-times · · Score: 1

      "When the deadline comes, would you rather the project be incomplete but ready for delivery, or would you rather push back delivery in favor of complete and correct software?"

      Yes, this is what I was trying to get at in my post. And I'm not sure I've ever worked on any project where there wasn't some level of "incompleteness" when we reached the deadline. In a well planned project where things go right, the "incompleteness" might be things like, "we didn't test it as well as we would have liked" or "we didn't implement a feature that seemed like it'd be nice to have". And then beyond the original scope, there's always more that could have been done to perfect things.

      In the end, meeting deadlines always comes down to priorities. The priority might mean, "I told the client I would complete set requirements by the deadline, so I will technically meet those requirements by doing a crappy half-assed job." But then that will often make your client less happy than being able to say, "The project is a little over-budget and past the deadline, but we got things done correctly." It depends on the project and on the client.

      And as you point out, it also depends on how good you are at communicating these things in an appropriate way at an appropriate time. If you tell a client 2 weeks into a 6 month project, "It looks like we're going to end up missing the 6 month deadline, so let's set it for 8 months instead," you might get a much happier client than if you deliver the same message the night before the deadline.

    31. Re:I guess I'm not an expert then.... by rastos1 · · Score: 1

      You break the programming tasks down almost to an atomic level, so that every discrete function of the software is described,

      It seems that it takes a lot of work to estimate correctly. Can you estimate how long would it take to come up with the estimate?

  7. External Dependencies by Bigby · · Score: 2

    Predictions on the time it takes for me to do something can be off, but not by much. Most good predictions have contingency plans, etc...

    In my experience, the biggest variability in estimates is the reliance on external dependencies. If I were the only person needed to work on something and I estimated 40 hrs of work, I would probably get it done in 30-45 hrs. But when that works requires someone else to do something at a critical point, even if it only takes 1 hr, the ability to acquire that resource in a timely manner ALWAYS messes with the time. Instead, the 30-45 hrs turns into 40-60 hrs. Amazingly, the "wait time" makes my time spent worse as well. I have to go through "ramp up" time again.

    You can even schedule out that you will have the person for 1 hr a whole week ahead of time. But I have found it rare that you are able to acquire that resource remotely close to the time you scheduled.

    1. Re:External Dependencies by xclr8r · · Score: 1

      Always use Scotty time when making estimates.
      Please have your ad blocker up before visiting the website.
      http://tvtropes.org/pmwiki/pmwiki.php/Main/ScottyTime

      --
      Beware of those who profit off the docile and persecute the unbelievers.
  8. Not completely useless by rwa2 · · Score: 1

    Well, I at least have my wife trained to treat my time estimates as "no sooner than", and I don't have any trouble sticking to those commitments. Can't be that much harder to train your boss to have the same expectations.

    Anyway, isn't most of Agile centered around coming up with time estimates formed from a consensus of team members who know you well?

    1. Re:Not completely useless by Bigby · · Score: 1

      On a related manner, if you are consistently off with those estimates, others can adjust accordingly. Two examples:

      - My wife used to be typically 15 minutes off on everything. She said we'll meet at 7pm; I assumed 7:15pm. It worked like clockwork. After she realized this, she started to get better with her time and I adjusted. She actually sets her car clock 9 minutes ahead right now...

      - Phone meetings at work never started when scheduled. They typically start 5 minutes late. So I started calling in 4 minutes late. I am always in before the other critical attendees and it works ALL THE TIME.

  9. I always follow Scotty's law by Capt.DrumkenBum · · Score: 5, Funny

    Always tripple all estimates. That way you always look like a miracle worker.

    --
    If I were God, wouldn't I protect my churches from acts of me?
    1. Re:I always follow Scotty's law by Anonymous Coward · · Score: 2, Interesting

      I have a PM who actually does this. He takes everyones estimate by 'pi'. He says it works and has theories why it works. But just knows it does. In my exp he is right. Someone says 'it will take me 2 hours', it will take them about 6-8 hours.

      Only with the dead easy tasks are people spot on. Anything else they are usually wildly guessing. Unless they have done it before (and even then...).

    2. Re:I always follow Scotty's law by mark-t · · Score: 2

      No, actually, you look like a crappy estimator. In game development especially, projects don't typically have enough of a development budget to afford to overestimate by a factor of 3, so when you tell somebody it's going to take 3 days to do a task you think you can actually finish in one, the producer's only going to ask for a detailed breakdown and justification about why it's going to take so long... and when you end up describing how it will take several hours to implement something you should be able to do in a couple of hours, you're going to come across as incompetent, and possibly even out of a job altogether.

    3. Re:I always follow Scotty's law by Capt.DrumkenBum · · Score: 1

      And you look like a moron, with no concept of humour.

      --
      If I were God, wouldn't I protect my churches from acts of me?
    4. Re:I always follow Scotty's law by slew · · Score: 4, Funny

      He takes everyones estimate by 'pi'....In my exp he is right.

      If your PM takes somebody's imaginary estimate and multiplies it by pi and you exp it, your result will necessarily be complex, yet the error will be easy to bound with a circular range (even if with an initial wild guess)... Just say'n...

    5. Re:I always follow Scotty's law by steelfood · · Score: 1

      So you're saying that the real date of the events in Star Trek was actually the year 6795?

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    6. Re:I always follow Scotty's law by Anonymous Coward · · Score: 1

      He's probably a Star Wars fan, still recovering from Jar-Jar Binks.

    7. Re:I always follow Scotty's law by Dixie_Flatline · · Score: 2

      Actually, doubling or tripling the estimate is USUALLY correct, the problem is that it's not correct if you apply it all at once. I've known managers that take any estimate and double it, but crucially, you don't allocate the effort all in one block.

      If you need to code a widget, and it'll take you 3 days, realistically, that's just for the initial implementation. You can debug it, but that's no guarantee that it'll work as intended all the way until the end of the project. You probably have another 3 days of work to KEEP it working.

      Overestimating is almost always the right thing to do, if you can get the people writing the schedule to understand that when you say six days, you mean three now and three later.

    8. Re:I always follow Scotty's law by DavidClarkeHR · · Score: 1

      He takes everyones estimate by 'pi'....In my exp he is right.

      If your PM takes somebody's imaginary estimate and multiplies it by pi and you exp it, your result will necessarily be complex, yet the error will be easy to bound with a circular range (even if with an initial wild guess)... Just say'n...

      How dare you frame a humorous anecdote in statistics, and render it completely logical and un-funny.

      --
      - Nec Impar Pluribus, or so I'm told.
    9. Re:I always follow Scotty's law by FuzzNugget · · Score: 2

      In not sure why anyone thinks this funny, because it's absolutely true.

      No matter how much experience you have, there will *always* be that huge feature you initially thought would be a minor thing, there will *always* be those impossible-to-predict functionality hangups that take forever to solve and the client will *always* have "oh, yeah, and..." types of changes to the project requirements that completely alter the scope.

    10. Re:I always follow Scotty's law by RabidReindeer · · Score: 1

      In not sure why anyone thinks this funny, because it's absolutely true.

      No matter how much experience you have, there will *always* be that huge feature you initially thought would be a minor thing, there will *always* be those impossible-to-predict functionality hangups that take forever to solve and the client will *always* have "oh, yeah, and..." types of changes to the project requirements that completely alter the scope.

      Well, MY experience it that usually the complicated tricky stuff that made you sweat bullets will take a lot less time than expected.

      But that doesn't matter, because somewhere there's a misplaced comma or mis-capitalized letter that you can never see because you see what you expect to see and it will totally stall you for days, eating up every bit of the time the complex thing was expected to take and more.

    11. Re:I always follow Scotty's law by Rich0 · · Score: 1

      Always tripple all estimates. That way you always look like a miracle worker.

      Then any manager who is worth their pay will calculate the ROI, discover that there isn't any, and then cancel the project before spending a dollar. If you do that with every project you're competent to work on, they'll figure out you don't have any ROI either, and cancel you too.

    12. Re:I always follow Scotty's law by swillden · · Score: 1

      Always triple all estimates. That way you always look like a miracle worker.

      No, no, no... always multiply your estimates by pi. You get a slightly larger margin for error and look like you're so good you can estimate the effort to any required degree of precision.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    13. Re:I always follow Scotty's law by Capt.DrumkenBum · · Score: 1

      I will keep that in mind going forward.
      Thanks for the advise.

      Like one of my other rules. When making up a statistic always add a few random decimals to the end.
      97.432% of people will find them more believable that way.

      --
      If I were God, wouldn't I protect my churches from acts of me?
    14. Re:I always follow Scotty's law by Anonymous Coward · · Score: 0

      Seriously.

      After many round-a-bouts with our CIO, I figured out that he basically cuts our DEV estimates by half.

      Soooooo...when asked for estimates on our next project, I just double. I'm pretty sure he's keen to my scheme...but what does he expect me to do?

    15. Re:I always follow Scotty's law by Anonymous Coward · · Score: 0

      unless you get a boss who gets angry when you come in ahead of estimate. why was your estimate wrong? seriously I had a boss who would get angry if we finished ahead of estimate. so 3x, finish it, browse reddit till you hit 3x and then stupid boss isn't angry (stupid boss is never happy, just not angry)

    16. Re:I always follow Scotty's law by mark-t · · Score: 1

      I *am* a star wars fan. And I didn't really mind jar-jar that much. It's just a movie character, not the personification of racial insensitivity that so many people think he is.

    17. Re:I always follow Scotty's law by leaen · · Score: 1

      This is how this works at microsoft:
      Janitor to junior programmer: On windows these two buttons are close together and I frequently misclick. It should take day to fix.
      junior programmer to senior programmer: I got idea how improve windows, it should only take three days.
      senior programmer to manager: Could our team work on this? It will take only nine days.
      ...
      VP to Ballmer: I received project proposal to improve core windows functionality. It will take 165 years to complete.
      Ballmer: 165 years? (Throws a chair.)

    18. Re:I always follow Scotty's law by Anonymous Coward · · Score: 0

      A colleague used to say "double the estimate and move to the next unit of measure" - 3 hours -> 6 days; 2 weeks -> 4 months; etc...

    19. Re:I always follow Scotty's law by Anonymous Coward · · Score: 0

      You know, because Asperger's.

    20. Re:I always follow Scotty's law by Anonymous Coward · · Score: 0

      You totally missed the joke. Circular range...get it? pi? HA

  10. Scotty Principal... by Kenja · · Score: 1

    If you think it will take an hour, say it will that three, then when it takes two you're a genius for getting it done so fast.

    --

    "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    1. Re:Scotty Principal... by Takatata · · Score: 4, Insightful

      Than a competitor will say it will take two hours and get the job. Ok, finally it will take four hours, but still, he got the job.

    2. Re:Scotty Principal... by ZombieBraintrust · · Score: 1

      But what if you think it will take an hour, say three, and then take four hours? Most people are already padding their estimates and the estimates are still low.

    3. Re:Scotty Principal... by ADRA · · Score: 1

      And when it invariably takes them 4 hours to implement the feature and their sales 'win' ends up costing them more than the value of the contract, natural selection works its way though and they can instead estimate how long it'll take to find a new job.

      --
      Bye!
    4. Re:Scotty Principal... by Anonymous Coward · · Score: 1

      And when it invariably takes them 4 hours to implement the feature and their sales 'win' ends up costing them more than the value of the contract, natural selection works its way though and they can instead estimate how long it'll take to find a new job.

      They already have the money from the initial win and there's always another sucker to fleece, so the competitor wins no matter what. When the projects we're talking about are months instead of hours, they can lead their sucker along with the sunk-costs fallacy for even more money. Businesses move slowly and don't talk about these kinds of failures much.

    5. Re:Scotty Principal... by bpkiwi · · Score: 1

      Unfortunately not, because you never got any work, so you went out of business. The company that lied about it has managed to suck another 50% out of the client - who has never heard of the sunk cost fallacy, and then used a bit of money from another contract to deliver something that has 75% for the functionality. The client is mostly happy because they asked for the world and got something that was almost good enough.

    6. Re:Scotty Principal... by Anonymous Coward · · Score: 0

      That's known as "bid and be damned" followed by a system called "dutch windmills". A professor told us how he worked for a company bidding against several others for a contract. Each competitor was really interested in only one part of the contract that they had expertise in (hardware, display systems/GUI, storage, networking). If they won, they would take that bit and subcontract the other parts to the other competitors. In the end, they had this chain of sub-contracts like dutch windmills, where each would only take enough money to do some work, and let the money blow along to the next one behind them so they could do some work.

  11. Alternate approach... by Anonymous Coward · · Score: 0

    From the story, "[they] were instructed to lift a long log from the ground and haul it to a wall about six feet high. There, they were told that the entire group had to get to the other side of the wall without the log touching either the ground or the wall, and without anyone touching the wall. If any of these things happened, they were to acknowledge it and start again."

    Sure seems like it would have been easier to just carry the log around the wall rather than over the top.

  12. Testing by invid · · Score: 2

    It took me a few years for me to discipline myself to including testing and bug fixes in any estimate I made to managers. When ever I would say, "I'll finish coding by X," they would always assume that it would be in release condition by then.

    --
    The Moore-Murphy Law: The number of things that will go wrong will double every 2 years.
    1. Re:Testing by Anonymous Coward · · Score: 0

      Yep, testing is one big time sink that devs nearly always undershoot wildly.

      In my experience, when a dev says "I've tested it, it's fine", what they mean is "I found a way to make this function work." But that's a very, very long way from "This function will work correctly in all known use cases", to say nothing of "and will return appropriate error messages in other scenarios".

      One of these types of testing takes a couple of hours, the other takes days or weeks.

    2. Re:Testing by Blue23 · · Score: 1

      It took me a few years for me to discipline myself to including testing and bug fixes in any estimate I made to managers. When ever I would say, "I'll finish coding by X," they would always assume that it would be in release condition by then.

      Just give them a breakout like that in the first place.

      Coding: X
      QA/testing/fixes: Y
      Techincal Documentation: Z1
      User Documentation (or working with a tech writer): Z2
      Training (train-the-trainer hopefully): +W

      All of them broken down. You look professional, and they have no reason not to include those steps.

      --
      LITTLE GIRL: But which cookie will you eat FIRST? C. MONSTER: Me think you have misconception of cookie-eating process.
    3. Re:Testing by Anonymous Coward · · Score: 0

      Coding: X
      QA/testing/fixes: Y
      Techincal Documentation: Z1
      User Documentation (or working with a tech writer): Z2
      Training (train-the-trainer hopefully): +W

      This.

      Agile doesn't mean shipping when the coding's done. And any PM who expects the documentation to be done (in either Z1 or Z2 form) by the time the code ships, or to be completed between "X" and "Y", is on crack.

  13. Is that really the problem? by Anonymous Coward · · Score: 5, Insightful

    I often find another problem is management's refusal to accept the estimate of the developer. I am usually pretty good at estimation. Here is what usually transpires for me:

    Manager: "How long will it take you?"
    Developer: "2 months."
    Manager: "You don't have 2 months. You only have 1 month. Redo your estimate. How long now?"
    Developer: "2 months."
    Manager: "You don't have 2 months. You only have 1 month. Redo your estimate. How long now?"

    At this point I feel like saying:
    Developer: "Why are you asking for my input? Just write down 1 month. And do you want me to tell you I will be 1 month late right now or in 1 month from now?"

    1. Re:Is that really the problem? by invid · · Score: 5, Interesting

      I was once invited to a meeting with the customer because my manager was sick. When people started talking schedule I casually mentioned the 18 months it would take to complete the software. The customer went ballistic. Apparently the schedule I gave my manager never made it to the customer.

      I was never invited to a meeting with the customer again.

      --
      The Moore-Murphy Law: The number of things that will go wrong will double every 2 years.
    2. Re:Is that really the problem? by Platinumrat · · Score: 5, Informative
      I'm constantly getting this effect at work now. My current manager (who has no technology background or experience) is always challenging my 25+ years experience. I've already felt the pain of optimistic estimates and now include everything, requirements, documentation, design, code, integration, test, more documentation, installation, commissioning and support in an estimate.

      He comes out with the following gems:

      - "I believe your estimates are too high"

      - "I've already committed to a delivery schedule with the CEO and Engineering Manager"

      - "Well, we'll just have to challenge your assumption"

      - "We'll just have to find ways to work smarter"

      - "We'll just need to work extra hours then"

      - "You're not showing enough committment", when asked to work on the weekend and holidays. This despite being with the same company for my entire working life

      It's like I'm in a Dilbert nightmare now.

    3. Re:Is that really the problem? by Culture20 · · Score: 1

      "Chocolate cake for breakfast!" -Bill Cosby

    4. Re:Is that really the problem? by AK+Marc · · Score: 4, Insightful

      I've run into that. "If you want the lies told to the customers to be consistent, you must identify which lies you've already told them." Management didn't like my snark, but I received a briefing before future customer meetings.

    5. Re:Is that really the problem? by Anonymous Coward · · Score: 1

      My current manager (who has no technology background or experience) is always challenging my 25+ years experience.

      This despite being with the same company for my entire working life

      Already two reasons to look for a new job, then. Nothing worse than a clueless asshole overpaid manager, giving you the commitment bullshit.

    6. Re:Is that really the problem? by Anonymous Coward · · Score: 0

      Sorry, forgot the last part:
      Manager: "You're fired".

    7. Re:Is that really the problem? by idontgno · · Score: 4, Funny

      Indeed, it is a Dilbert nightmare.

      This particular one, in fact.

      Relevant quote: "Anything I don't understand is easy to do."

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    8. Re:Is that really the problem? by Anonymous Coward · · Score: 0

      Ugh. Is this what passes for human interaction in the business world? Why did I ever think I wanted to be a programmer when I was young.

      Those phrases are frankly insulting to you as a professional and a human being. That man is verbally shitting on you.

    9. Re:Is that really the problem? by Anonymous Coward · · Score: 0

      Did they go ballistic b/c they thought they were paying for 54 months, or because you confirmed that their goal of 6 months wasn't possible?

    10. Re:Is that really the problem? by Anonymous Coward · · Score: 1

      >25+ years experience

      So you're saying you're old and a young whipper-snapper would promise to get it done in half the time by writing crap code and working 80 hour weeks?

    11. Re:Is that really the problem? by Chris+Mattern · · Score: 1

      Hey, it's eggs and milk! That's healthy!

    12. Re:Is that really the problem? by ZombieBraintrust · · Score: 2
    13. Re:Is that really the problem? by swillden · · Score: 4, Interesting

      I've run into that. "If you want the lies told to the customers to be consistent, you must identify which lies you've already told them." Management didn't like my snark, but I received a briefing before future customer meetings.

      Heh. I actually worked out a system with one of the sales guys I worked with. When he rubbed his eyebrow in a certain way it meant "I know I'm lying; please don't say anything that might undermine my lie."

      In his case I was okay going along with it because he always had some (generally quite reasonable) backup plan that meant my team would never have to actually deliver on his lie. I was still uncomfortable, but he never burned us, and the customer always ended up happy.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    14. Re:Is that really the problem? by Anonymous Coward · · Score: 0

      Developer: "Why are you asking for my input? Just write down 1 month. And do you want me to tell you I will be 1 month late right now or in 1 month from now?"

      I actually said something like that, once, to a PM who insisted on the team giving him an end date, when the estimated effort of the "critical" features were already well beyond the targeted date with the given resources. I asked him "Are all the critical features mandatory?"

      PM: "Yes"

      Me: "Then you can go tell business this project has already failed. Now."

      PM: "But how much can the team do by the deadline?"

      Me: "Not all the _mandatory_ critical features, so it doesn't matter anymore. "

      PM: "But...."

      Eventually, of course, he admitted that not really all critical features were mandatory, after all, and I forced him to get an ordered priority list from business, instead of just "critical" or "nice to have".

    15. Re:Is that really the problem? by meta-monkey · · Score: 1

      "We'll just have to find ways to work smarter"

      Since you're not in jail for murder, I can only assume you have an inhuman level of self-control.

      --
      We don't have a state-run media we have a media-run state.
    16. Re:Is that really the problem? by matthewv789 · · Score: 1

      I can't even count the number of times I've had this exact conversation with a project manager... I think it is equal to the number of projects I have worked on.

      And I have been right every time, even when they outsourced all the work.

    17. Re:Is that really the problem? by bpkiwi · · Score: 2

      I generally believe this is a major factor in underestimation, Even a "good" manager will unconsciously apply pressure to produce optimistic estimates. I was once asked how "accurate" my estimates were, and I said +/- 15%. I was told to go away and work out a "3%" estimate. I added 12% and gave the numbers back - they went nuts. They expected the same numbers but with a promise that they were more accurate.

    18. Re:Is that really the problem? by MadKeithV · · Score: 1

      Did they go ballistic b/c they thought they were paying for 54 months, or because you confirmed that their goal of 6 months wasn't possible?

      Knowing the industry, the answer is probably both, at the same time.

    19. Re:Is that really the problem? by Anonymous Coward · · Score: 0

      Tell him no. If you have worked for 25+ years, you should have big savings by now and you don't really need to work in a nightmare. Tell him no, don't be afraid of getting fired. Have some dignity. Remember: you are selling your life away one day at a time for the pay you get. Is the work worth it?

    20. Re:Is that really the problem? by Anonymous Coward · · Score: 0

      Why are you asking for my input?

      Because, then it is your problem for refusing to work twice as hard. Some managers even have the attitude of, 'If I throw enough underpaid grunts into this, one of them will live long enough to succeed'. Just hope you don't have a job that is actually dangerous. It took the British army 3 years to realize that machine guns will always kill faster than men run.

    21. Re:Is that really the problem? by jimshatt · · Score: 1

      That's the guy with the almost rubbed-of eyebrow, right? Yeah, we know he's lying...

    22. Re:Is that really the problem? by Anonymous Coward · · Score: 0

      Translation

      I believe your estimates are too high

      The customer won't pay that.

      I've already committed to a delivery schedule with the CEO and Engineering Manager.

      This profit margin will give me a pay raise.

      Well, we'll just have to challenge your assumption.

      You will have to do unpaid overtime.

      We'll just have to find ways to work smarter.

      See above

      We'll just need to work extra hours then.

      See above

      You're not showing enough commitment.

      Why didn't you work all week-end?

    23. Re:Is that really the problem? by mattpalmer1086 · · Score: 1

      That's a good one. Ironically though, I find that estimates are optimistic precisely *because* the estimator understands it. It's a form of cognitive bias.

      The estimator confuses the hardness of understanding the problem with the effort of implementing a solution to it.

      Since they understand the problem and can immediately think of ways to achieve it, it doesn't seem that bad. They forget all the things which will occur during the period they have to implement a solution - holidays, sickness, unexpected urgent events and emergencies, old code that needs updating to fit with the new architectural framework they have to use now, testing, bug fixes, creating test data, documentation, release notes, endless meetings caused by another part of the business, etc. etc.

      I once had a young developer confidently tell me he could implement a robust and scalable multi user database in a few hours from scratch. Now granted, he was also very inexperienced, but he didn't seem to think his estimate was way, way, way out. I told him to get on with it and I'd look forward to his demo after lunch.

    24. Re:Is that really the problem? by GauteL · · Score: 1

      If you have worked for the company for 25+ years, you must have someone in upper management who you know and who would trust your work, right? Or have the entire management system changed?

      If it is the former, I would just book a meeting with your friend in upper management and your clueless new manager where you ask both of them the following questions:
      1. Have I demonstrated my commitment to the company over the last 25+ years?
      2. Have I given you a reason not to trust me on this?
      3. Do you believe I am slacking off?

      The expected answers are "Yes. No. No.". If this is the case, you can rightly ask for your new manager to start taking your estimates seriously and stop trying to question your commitment. If those are not the answers you're given, you should look for a new job immediately.

    25. Re:Is that really the problem? by tompaulco · · Score: 1

      I've run into that. "If you want the lies told to the customers to be consistent, you must identify which lies you've already told them." Management didn't like my snark, but I received a briefing before future customer meetings.

      I go one step further. If you want lies to be told to the customer, then tell them yourself. I am not going to lie to a customer.

      --
      If you are not allowed to question your government then the government has answered your question.
    26. Re:Is that really the problem? by Anonymous Coward · · Score: 0

      Sounds like a truly skilled salesman.

      Too bad most of them just lie, lie, lie, and blame everyone else when things blow up.

    27. Re:Is that really the problem? by Tablizer · · Score: 1

      This is the slimy shit that the US economy is becoming based upon. It's turning us into a nation of bullshitters instead of a nation of doers, and it's rotting the political system.

  14. I'm deeply confident by PhrostyMcByte · · Score: 1

    That it'll take 2x-3x longer than it takes in my head. If there are no spec changes (i can dream, right?) or other surprises, maybe put that down to 1.5x.

    When given a project, I'm sure most people will have a macro-level architecture thought up within minutes. It all seems so easy at that point! If you're lucky you get to spend a little more time in thought before being asked for a time estimate. If you're unlucky, well... in those cases I just multiply by 3. Underpromise, overdeliver and all that.

  15. Looking waaay too deep in to the issue. by Anonymous Coward · · Score: 0

    There are much more simple ways to explain this..

    1. There is often no incentive to deliver an accurate projection. If the job will take 12 months, you say it will take 12 months, and your competitor says six months, guess who is going to get the bid. When the six month date rolls around, the project will be extend to 12 months anyway because there is already a lot of time and money invested. Lying works. Welcome to the bid process, and sales in general.

    2. Humans are bad understanding complex, non-linear relationships. Software development is just about the definition of complex and nonlinear.

    3. There is already and expectation of cost and time overruns in development projects. Most people are shocked and surprised when a project is delivered on time.

    1. Re:Looking waaay too deep in to the issue. by AK+Marc · · Score: 1

      Also, I've found a large disconnect between effort and elapsed time. It takes me 4 hours to do the work, but I need 16 hours of project meetings, so 3 days is the soonest I can get my 4 hours of work done.

  16. management by RichMan · · Score: 1

    My team seems to do ok on the estimates. Then we get beaten into 1/2 that by management. Then in the end it takes twice as long as management expected. So the original estimate was good.

    So we would be fine if only management did not try and squeeze it.

    Management never accepts the "debug", "refactor" and "new feature" timelines, those are generally considered as "not needed". It just supposed to work perfectly and on the timeline they negotiated before consulting the people who would actually deliver it.
    *sigh*

    1. Re:management by meta-monkey · · Score: 1

      "Debug?! Just get it right the first time!"

      Raaaaaaage...

      --
      We don't have a state-run media we have a media-run state.
  17. Actual article summary by Anonymous Coward · · Score: 2, Insightful

    Blah, blah, blah. Bad estimates.

    Blah, blah, blah. Oh noes! Waterfall!

    Blah, blah, blah. Fixed by Agile!

    1. Re:Actual article summary by uncqual · · Score: 2

      Pretty good summary.

      The solution seems to be "don't commit to a schedule longer than a sprint (even if that's only a week) and you won't be far off on the average".

      Of course, this doesn't work so well with customers. A giant customer who is considering kicking your product out the door and replacing it with a competitor "if you don't get feature X in" wants to know when he can expect feature X. This is often easy for seemingly small projects (add a new style sheet), but not so much for "hard" (many tens of person years of development or more) which are relatively indivisible (a distributed system that only corrupts data in 20% of the cases for which code hasn't yet been written is about as useless as one that does so 100% of the time). In the hard projects, if you tell them:

      Oh, we really have no idea, but I can confidently state that we will have these three small work items done a week from now and eventually expect we will have something done -- we will let you know the delivery date a week before we're ready to send you the software.

      their answer will be simple - "Thanks for the information, we are cancelling our maintenance contract and won't be using your system anymore. Please give me your vendor badge which we have just deactivated anyway."

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
  18. Re:I am confident thqt this is the by Anonymous Coward · · Score: 4, Funny

    I think they finally blocked the APK posts with a HOSTS file.

  19. Not that hard by Maxo-Texas · · Score: 1

    But it's not really that hard to predict estimates where predictable and predict a reasonable time to determine if an area is predictable.

    The RUP methodology is excellent for this.

    1) You gather the feature set and identify the risk vs non risk portions of a project.
    a) New technology.
    b) Relying on develop of technology which doesn't even exist yet.
    c) Performance.
    2) You work on the risky items first. You do not start on the non-risk portions until the risks are mitigated.
    3) Work in a time-boxed fashion. The time box can be 3 weeks or 5 weeks but deliver a working build each release. Note which features are not on track and drop them, adjust estimates, or even cancel the project.

    And there is also baselining your coders. Over time, some will consistently be over cautious, under cautious, or on target. And by a consistent amount.

    Let me put it this way...

    How long would it take you to develop a sorting algorithm for a screen element?
    How long would it take you to develop an import mechanism?

    OTH, how long would it take to integrate your web site with an app using a new poorly documented library delivered last year?

    I agree with the author that some things can't be estimated. But many things can.

    The biggest problems I've seen are

    1) Business decides the delivery date, features, and sometimes even the budget without consulting IT.
    2) If a couple 70 hour weeks work to deliver in a crunch then always working 70 hours must be even better, right?
    3) Business firing anyone that says a project is risky ("not drinking the koolaid").
    4) This is a funny one.. They come and say, "How long will this take" and one person says 4 weeks and the other person says 2 weeks. So they consistently give it to the person who said 2 weeks. And then it takes them 4 weeks (sometimes longer).

    --
    She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
  20. It's not that hard by Hentes · · Score: 1

    It's easy to manage time if you keep this simple law in mind:
    The first 90% of the work will take up the first 90% of time, and the remaining 10% will take up the other 90% of time.

    1. Re:It's not that hard by Anonymous Coward · · Score: 0

      You forgot to account for the last 120%. - Scotty

  21. When The CEO Can Estimate Time To Profitability, by Anonymous Coward · · Score: 0

    Then I'll estimate time to design, implementation, testing, debugging, and release of a product.

    How about people just stop with this ridiculous nonsense notion that it's even possible to estimate this kind of thing to +/- 1000%?

  22. Scotty knows by u64 · · Score: 5, Informative

    La Forge: The Captain wants this spectrographic analysis done by 1300 hours.
    Scotty: Starfleet captains are like children. They want everything right now and they want it their way.
    But the secret is to give them only what they need, not what they want.
    La Forge: Yeah, well, I told the Captain I'd have this analysis done in an hour.
    Scotty: How long will it really take?
    La Forge: An hour!
    Scotty: Oh, you didn't tell him how long it would *really* take, did ya?
    La Forge: Well, of course I did.
    Scotty: Oh, laddie. You've got a lot to learn if you want people to think of you as a miracle worker.

    - TNG 6x04

  23. Either .. by houbou · · Score: 1

    Use a OUIJA board, or, do some decent project management planning and know thy tasks, thy players and thy resources at your disposal.
    For the most part, double your estimates and then adjust where it gets too costly and you know your players can perform fast than expected.

  24. Scotty knew. by Culture20 · · Score: 1

    Lt. Commander Geordi La Forge: Look, Mr. Scott, I'd love to explain everything to you, but the Captain wants this spectrographic analysis done by 1300 hours.
    [La Forge goes back to work; Scotty follows slowly]
    Scotty: Do you mind a little advice? Starfleet captains are like children. They want everything right now and they want it their way. But the secret is to give them only what they need, not what they want.
    Lt. Commander Geordi La Forge: Yeah, well, I told the Captain I'd have this analysis done in an hour.
    Scotty: How long will it really take?
    Lt. Commander Geordi La Forge: An hour!
    Scotty: Oh, you didn't tell him how long it would *really* take, did ya?
    Lt. Commander Geordi La Forge: Well, of course I did.
    Scotty: Oh, laddie. You've got a lot to learn if you want people to think of you as a miracle worker.

    It also helps you plan time for unforeseen setbacks.

  25. Re:When The CEO Can Estimate Time To Profitability by RichMan · · Score: 1

    Profitabily is 12 to 18 months out. Thats when the hockey stick curves up.

    It was that way 3 months ago. It will be that way in 3 months.

  26. So true by Dixie_Flatline · · Score: 5, Insightful

    I hate making estimates. I'm always, ALWAYS wrong. I always know I'm GOING to be wrong.

    I've been trying to fix this for 12 years. I thought it was just inexperience talking, but I'm a grown-up programmer now. 'Senior', by some estimates. And yet I still have a hard time estimating the time of getting things up and running. I write one thing, and four things that I couldn't have anticipated crop up. This is particularly true in my industry (video games) where you're often working with an engine that's a few years old, and other people are in the middle of working on it, and specs are changing under everyone all the time. Things that look straightforward end up taking bad detours through networking components that nobody else understands because that part was written years ago and those programmers aren't around anymore.

    Man, this story makes me feel a lot better about myself.

    1. Re:So true by fl!ptop · · Score: 1

      I thought it was just inexperience talking, but I'm a grown-up programmer now. 'Senior', by some estimates. And yet I still have a hard time estimating the time of getting things up and running

      You need a "rule of thumb." I had the same problem until I decided that the minimum a project would take for basic functionality is 4 hours for each table in the database. If they need fancy ajax stuff or any eye-candy, then it goes up from there.

      It's worked pretty well for the past few projects. I've even come in under on a couple.

      --
      When you recognize love in another and realize how precious it is, everything else seems so insignificant.
    2. Re:So true by Anonymous Coward · · Score: 0

      I hate having to make estimates as well. The real problem is people that can't accept that not everything can be quantified with arbitrary numbers. It's like asking an artist how long it will take them to create a particular piece of art that they must first design and play with to get the details right.

    3. Re:So true by Osgeld · · Score: 1

      its in any industry, our senior developer looks at a vuege outline and boast's I can knock that out in a week!

      of course we work in hardware, so you have all this screwball stuff that your actually programming for, not just software, stuff gets mixed up, the API to the test gear is retarded, no one can nail down a spec, is it a software bug or a hardware bug blah blah blah, and it ends up taking a month.

      I always wonder why he says that, he KNOWS we will take a week just tracing down a bug

    4. Re:So true by Anonymous Coward · · Score: 0

      Agreed on the rule of thumb. I use a fairly crude approach but it serves me well.

      I do my WBS and estimate every task as conservatively as is reasonable. I include unit / integration testing items, documentation, and deployment / environment setup tasks. Then, the magic: I multiply the estimated duration of every task by some factor, usually 2. For small pieces of work (<2 weeks total estimated duration), this may be 1.5; for larger pieces, I may increase the factor depending on how many systems are involved, what the risk level feels like, and so on.

      I am amazed at how much more accurate my estimates are under this process. My tasks are practically never late now; but it's not as though I've got bunches of free time being wasted at the end. I end up using almost all of the time I gave myself. It works wonders.

      Of course, this requires a management team that doesn't constantly challenge and nit-pick your estimates. I am at the stage now where if the length of my estimates comes up, I simply ask them which features they want cut, or if they want someone else to do the work instead. I realise this is a luxury and I do not... *sunglasses on*... underestimate it.

    5. Re:So true by xelah · · Score: 1

      That reminds me of a claim in a book I have (Software Estimation by Steve McConnell)....'Magne Jorgensen reports that increased experience in the activity being estimated does not lead to increased accuracy in the estimates for the activity'. Having found the study (http://www.idi.ntnu.no/grupper/su/publ/ebse/RK15-reviewexpertestim-jorgensen-jss04.pdf) I can't actually find anywhere obvious it says this. Still, it's going on my 'to read properly' list.

    6. Re:So true by Anonymous Coward · · Score: 0

      Well, in Corporate China you don't have to do any time estimation at all.

      It's done by management for you.

      And measured in hours.

      Not kidding.

    7. Re:So true by gl4ss · · Score: 1

      well.. you shouldn't make estimates when you don't even know what you're estimating to be ready.

      that's a problem with lots of it estimates, that half the project is deciding what to deliver. it wouldn't be called r&d otherwise though.

      --
      world was created 5 seconds before this post as it is.
    8. Re:So true by Anonymous Coward · · Score: 0

      Haha, I know by reading this that you work with the Unreal engine; so right you are about time estimates, though I've got a good gig with Unreal now, based on the very components you're having trouble with.

      Knowledge of obscure bits of a game-engine, with code largely unchanged going back 15 years (and just as obfuscated), comes in handy sometimes I guess.

      My time estimates though, are also quite bad :(

  27. Times three by Anonymous Coward · · Score: 1

    Real time expectation = ideal expectation times three

    x1 = time you need to do the job if nothing goes wrong
    x2 = when you find something unexpected and search for a solution
    x3 = implementing the fix/workaround/rollback or whatever you decided to do in the end

    I call this experience.

  28. This doesn't apply to me by Anonymous Coward · · Score: 0

    First post!

    I don't know what the article is talking about, my time estimates are perfect.

  29. Meaningless Summary/quote by MasseKid · · Score: 1

    I started to get offended at this broad generalization that experts can't make accurate estimates. And then I realized that no where in the summary does it say anything as to the absolute value of anything. It uses phrases like "extremely accurate" or "extremely confident". If someone takes a 1,000 hour project, and predicts it will take 1002 hours +/- 1 hour, is that a failure? Or does the OP mean the expert says 1,000 hour project is predicted to take 10 hours +/-1 hour is a failure. What is this confidence? Is this 99.99%? Is this 51%? An adverb and a verb without a point of reference is useless. But man, does it sure sound good!

    1. Re:Meaningless Summary/quote by ZombieBraintrust · · Score: 1

      I think the article is saying most people are not experts but rather confident proffesionals. They know how to do their job. They can program the thing your asking them to do. But this doesn't make them expert estimators. To estimate properly you need to be collecting data on yourself. You need to be basing your predictions on that recorded record. You need to be looking at the acuracy of your previous predictions and providing a margin of error based on data. To be a true expert that margin of error needs to be consistantly low.

  30. Hofstadter's Law by cant_get_a_good_nick · · Score: 5, Insightful

    Hofstadter's Law:

    It always takes longer than you expect, even when you take into account Hofstadter's Law.

    1. Re:Hofstadter's law by russotto · · Score: 1

      Right. Hofstatder's law, and the earlier-noted problem of "You demanded I give bogus numbers, so I did", are the main reasons software estimates given by competent and experienced developers are still BS.

      The cause of this is mainly that the estimate becomes an input to the system. Tell someone a small project will take 2 weeks, they'll add crap to it until it takes longer. Tell them it will take 4 weeks, they'll add even more crap. Tell them it will take 6 months and they won't accept the estimate.

    2. Re:Hofstadter's Law by Anonymous Coward · · Score: 0

      I'm reading the summary and article and frankly am quite confused as to why people on a "News for Nerds" site are unaware of optimism bias.

  31. Not overconfidence... Unrealistic expectations by gameboyhippo · · Score: 1

    In my previous life as a software architect for a small rural software development shop, I would try to give estimates and my bosses (all salesmen) would come back with, "I can't sell the client that!" Then when I missed the deadline or had to work weekends they were quick to blame me for giving an unrealistic deadline. My favorite line was always, "Give me an estimate, I won't hold you to it." Yeah. freakin. right.

    Even better is when I would attempt to show them what other SUCCESSFUL development shops were doing. They would then give the excuse, "That's because their developers just sit and do nothing all day. Big shops have money to blow." Wrong. Big shops grow big because they know what they are doing. Eventually when they figured out my patience had run out, they dismissed this constructed advice as me just dissing the company.

    I'm not sure why I stuck around with them for so long. I guess it was a sense of loyalty. Yet they tried destroying my marriage with their unrealistic estimates (and contracts that allowed clients to call me at home when-freakin-ever they freakin wanted. Guess as long as it didn't bother them or their time with their family, who cares, right?) Perhaps I just had a form of "stockholm syndrome".

  32. My reasons why development estimates are hard by ADRA · · Score: 4, Insightful

    People estimate based on how much time they think it -should- take, but you almost never estimate:
    1. External factors which grow time
    2. Feature/function clarification takes time
    3. Outside resource turnaround takes time
    4. QA may never be satisfied
    5. We're moral and WE make a lot of mistakes along the way
    6. Most likely, you don't know all the caveats of developing the piece of work until AFTER the development is over
    7. General personal time spent elsewhere (meetings, consulting with co-workers)

    Sadly, the best estimate for completion ends up being 1.5-2x longer than my original gut check, so as long as you pad out your estimates, you should be fine.

    --
    Bye!
    1. Re:My reasons why development estimates are hard by roman_mir · · Score: 1

      5. We're moral and WE make a lot of mistakes along the way

      - can I make a suggestion then, try to be less moral?

      If you meant 'mortal', then try to be less of that as well.

    2. Re:My reasons why development estimates are hard by Anonymous Coward · · Score: 0

      Estimates aren't hard. All ya gotta do is...

    3. Re:My reasons why development estimates are hard by gwgwgw · · Score: 1

      It took me about 10 years to arrive at a multiplication factor of 2.4 for how much time it would take me to accomplish a task I was even willing to estimate. The hard thing was to truly, honestly, trying hard to give *my* estimate, one I really thought I could accomplish.

      I am upfront with the person wanting the estimate. I tell them my estimate and remind them of the 2.4 factor they need to apply. (That irks them.)

      They really wince when I say 400 hours and they have to write down 960. I also have to remind them EVERYTIME that the absolute maximum calendar time that will be devoted is 80%; MAXIMUM... you never get maximum unless the time*2.4 is less than 16 hours. Jeez. And people keep thinking that computer programmers are too optimistic.

      --
      That was Zen, this is Tao
    4. Re:My reasons why development estimates are hard by tompaulco · · Score: 1

      Well, I have started giving my estimates in man hours instead of elapsed time. Because I find that the estimate of man hours to complete a project is usually about right. Elapsed time is impossible to figure out. One of my developers was in a car accident yesterday and can't work for several days. I can't fit that into an estimate. But the number of man hours stays the same. The only way that man hours can change is if your personnel changes. Like they hire on additional help that is not familiar with the system. If they were brought on to help with this project, the man hours would INCREASE, although it is possible, but unlikely that the elapsed time might decrease. You can never estimate all the interruptions, on-fire issues, meetings, fire drills, what have you that can and will interrupt your timeline, so man hours is the only realistic measurement.
      Of course, sales can't sell man hours, and they treat that like it is our problem. But in fact, they are the salespeople, so if they can't sell it, they need to replace the salespeople, not the developers. Unfortunately, salespeople ARE good at one thing, and that is selling the need for Salespeople. Developers aren't as good at selling the need for Developers.

      --
      If you are not allowed to question your government then the government has answered your question.
    5. Re:My reasons why development estimates are hard by nine-times · · Score: 1

      I would also add, "projects are often not very well defined, which leads to feature creep," and, "there's always more to do." There's always more to do. More features to add. More QA to perform. More bugs to fix. Nothing is ever done.

  33. so called 'experts' by roman_mir · · Score: 2

    The so called 'experts' are just as much experts at estimating requirements and timing as they are 'expert architects'.

    Here is a thread where I argue that J2EE is a crutch given to people labelled as 'architects', turning them into typists while removing any real architectural thought from their activities. If you read through the thread you'll see some AC objecting to that notion and he does not realise that he is arguing my points there when he talks about architects.

    He is mistaking what 'enterprise' means, he believes it has to do with some technology, with some instrument, a tool or a set of tools. He does not realise that 'enterprise' really means an approach, a process, set of processes and standards that a company forces itself to adhere to, be it in implementation details or documentation process (all of which are important of-course), but enterprise does not mean just some solution provided by some vendor even if it has the word "enterprise" in its name!

    So with that in mind, realise that what we actually have for architects are most of the time not architects at all, they are copy pastors, they are typists, they are managers probably, but they are not actually designers.

    Those are the same people that would be considered 'experts', who managers turn to for time estimates. I don't remember myself underestimating projects at all or overestimating by more than a factor of 2, because I have the entire process of what it takes to build a project in mind and I break it down into all the little pieces, put a number that comes from past experience in front of that little piece, then the numbers are added up and there is some adjustment based on the team, the people that are going to be working on this.

    AFAIC overestimating is not as a big problem as underestimating but if you are bidding on a job, then it does present a challenge. In case of bidding you are actually not truly estimating a project, you are just trying to get it before the other guys get it, and I think that's where the real problem comes in. Managing client expectations is a serious matter, you better be able to do that and I think the more you way overestimate or way underestimate the less likely the clients are to trust you in the future, so be true to yourself.

    But again, how can somebody be true to themselves, when they don't even understand themselves what it is they are doing in the first place?

    1. Re:so called 'experts' by Anonymous Coward · · Score: 0

      copy pastors

      Maybe they see the enterprise as their congregation.

  34. Level of Detail by cant_get_a_good_nick · · Score: 3, Interesting

    Back when Joel spent time on writing, Joel Spolsky of Joel on software had an interesting method for doing time estimates. His point was to go into a deep level of detail. Instead of handwavy "code the GUI" the only way to really get anything remotely close to a real time is to estimate everything down to at least half day, if not lower granularity. It's not the "oh you feel the time better" as much as to think of EVERYthing you need. If you go to a lower level, you may remember that dialog box that you didn't think of at the 25,000 foot level.

    It would be interesting to see if anyone ever used it to improve their estimates. Even he "disavows" it now, preferring the method in his software tool. But I like the "the world is a big place, are you sure you're thinking of everything" that the older method pushed you to.

    1. Re:Level of Detail by Anonymous Coward · · Score: 0

      He disavowed it because it simply doesn't work and never has. It's impossible to "think of everything" or rather the only possible projects where it's possible to think of everything are embarrassingly trivial. It also allows for zero changes in the design or structure along the way.

    2. Re:Level of Detail by ZombieBraintrust · · Score: 1

      I estimate that my estimate will take 40 hours for small projects and 3 months for long projects. It will only take me 40 hours after my estimate is done on the three month estimate to finish the program. It will take me 8 hours to finish the project after my 40 hour estimate. Multiply what I give you by 3.

    3. Re:Level of Detail by uncqual · · Score: 1

      The difficulty in this approach is that by the time you've gotten everything down to that level of detail, most of the risky and intellectual part of the work is done. Most of the rest can be done by cheap scalable coding monkeys. So you're now able to tell Marketing:

      Recall that project you asked for a time and effort estimate on six months ago, well the answer is that it will be done nine months from when you asked (i.e., three months from now) and will require twelve person-years (of which we have already spent nine).

      Marketing, of course, responds:

      Huh, oh, we forgot about that - don't waste any more time on that because that idea was so 2012. But, since you're here, could you give me an elapsed time and effort estimate for $MY_LATEST_BRAIN_FART? By the way, what have you guys been doing the past six months?

      Surprisingly... Things that you've done before, like brushing your teeth, are easy to estimate. Things that no one has done before are hard to estimate. The more interesting something is to the customer, the more likely it's of the latter class.

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
    4. Re:Level of Detail by erice · · Score: 1

      His point was to go into a deep level of detail. Instead of handwavy "code the GUI" the only way to really get anything remotely close to a real time is to estimate everything down to at least half day, if not lower granularity. It's not the "oh you feel the time better" as much as to think of EVERYthing you need. If you go to a lower level, you may remember that dialog box that you didn't think of at the 25,000 foot level.

      Unfortunately, making an estimate to half-day granularity takes a great deal of time. So much, in fact, that you will likely need to give an estimate for the time to complete the estimate because it will be significant part of the total project time.

      And you will still likely be wrong because what you are really doing is a sketch implementation without the feedback that prevents small errors from exploding into total nonsense. A course estimate may actually be better since it forces you to factor in unknowns rather than assuming unknowns don't exist because "look at all the detail!"

    5. Re:Level of Detail by Rich0 · · Score: 1

      Great, so after you've already spent 40% of the budget of the project fully specifying the requirements and design, you can figure out what the last 60% of the project will cost and whether the entire project is worth doing in the first place.

      You need to know what the project will cost before you spend a lot of money on it, otherwise you don't know what the ROI is, whether other projects are a better investment, or whether you'll even be able to afford it at all.

    6. Re:Level of Detail by foniksonik · · Score: 1

      So what you do in this case is to ask leading questions about their objectives, suggesting adjustments by re-phrasing their responses. As you do this your suggestions somehow will be in feature parity with what you just finished estimating and the only changes will be to the look and feel.

      --
      A fool throws a stone into a well and a thousand sages can not remove it.
    7. Re:Level of Detail by TranquilVoid · · Score: 1

      Right, my company has a top-down directive for all divisions to go Agile, and this was my chief concern. It sounds sensible to break things down into two-day tasks that can be estimated accurately, but when I tried to envisage that with my upcoming projects I couldn't figure out when we had the time to do this.

      According to the consultants at the training session the answer was that the team did it in the 4-hour backlog grooming sessions. Perhaps that works in some simpler industries. The point was made that we did projects that could take 2 people 6 months to design and architect. The response? Place that design time as a user story into the system.

      So now you're back to square one. Management can create an epic "We want a product that does X, Y and Z" but still won't have any idea how long that will take until most of the hard design work is done much, much later.

    8. Re:Level of Detail by gl4ss · · Score: 1

      He disavowed it because it simply doesn't work and never has. It's impossible to "think of everything" or rather the only possible projects where it's possible to think of everything are embarrassingly trivial. It also allows for zero changes in the design or structure along the way.

      it works just fine if you can spend 90% of the project time estimating how long the 10% will take.

      --
      world was created 5 seconds before this post as it is.
  35. Re:I am confident thqt this is the by Anonymous Coward · · Score: 1

    APK was arrested last night for disturbing the public and public indecency. Basically, his meds weren't adjusted (yeah, you probably noticed) and police officers don't like it when you masturbate in public, run around naked, and hurl your shit at them.

  36. My experience by pkinetics · · Score: 2

    Something my boss has us do when we estimating projects. She has a certainty factor that we set for each task, simple terms, which equate to a percentage in her calculations. The higher our certainty, the less risk that the task is underestimated. The lower the certainty, the larger the margin that the estimate needs to be factored.

    Makes a huge difference in ballparking our estimates.

    1. Re:My experience by uncqual · · Score: 1

      I've done something similar to this as well.

      It also helps identify areas to design early (the "low confidence" areas) so the estimate can be refined, but more importantly, so unexpected architectural changes (most of which lurk in these "low confidence" areas) can be addressed while there's still time to address them while not in panic mode, while feature content can still be adjusted (eliminating a feature you've already coded and tested doesn't give you back any time and rarely saves you much future time), and while fewer customer promises have been made and affirmed.

      Although, I find that less experienced developers often have a poor sense of which areas are low confidence (mostly because they don't think of as many "known unknowns" because they have never had their faces rubbed into them) so caution is advised.

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
  37. Estimates don't account for Risks and Unknowns by mtippett · · Score: 2

    As per my blog post a couple of years ago at http://use-cases.org/2011/06/04/getting-good-estimates/ [use-cases.org] and http://use-cases.org/2011/06/22/updates-on-getting-good-estimates/ [use-cases.org]

    Most good estimates have a range - and not a number, or a number with a confidence (both are interchangeable).

    If an engineer says it will take two weeks - I push for a range or a confidence. If the range is weird (2-8 weeks), I push for the engineer to tighten their estimate through discussing or raising and discovering the unknowns or the risks that they are aware off. That sort of estimate would usually end up around 3-5 weeks which is a reasonable margin - and a lot better than than underestimating by 50%.

    Same with estimates that are too narrow. "2 weeks +/- day". That implies a full level of understanding, no risk and no dependencies. Almost never happens. Work through the same risks/unknowns and the estimates usually become really bad - typically at least double of the "high confidence" estimate - similar to TFA.

    There is a lot of reasonably applicable theory behind this (confidence intervals, cone of uncertainty, etc). But we don't necessary focus on mastery of our art...

    1. Re:Estimates don't account for Risks and Unknowns by MadKeithV · · Score: 2

      If the range is weird (2-8 weeks), I push for the engineer to tighten their estimate through discussing or raising and discovering the unknowns or the risks that they are aware off.

      You are potentially making a mistake there. There are often unknowns that you cannot eliminate unless by actually trying to do it, which means you have to accept the original range. You are expressing distrust of your engineers' expertise by pushing them to tighten their estimates when they have given you a wide range to indicate that type of uncertainty. Tighter is not "better", tighter is not "more realistic", sometimes the range just is weird because the problem is.

  38. Some overlooked bullet points by Roachie · · Score: 2

    3 days for bitching, pissing and moaning.
    3 days for dicking around on the interwebz
    1 day lunch overages.
    2 days for "zoning out"
    3 days for witty banter.

    --
    This sig is not paradoxical or ironic.
  39. That's why we use models by Anonymous Coward · · Score: 0

    This is why in scientific disciplines we look at predictions from models (or theories or whatever), rather than predictions from people.

    So I guess if you want to make predictions about how long it takes to write a piece of software, you use the prediction of a model that has proved to be pretty good at predicting how long it takes to write other software.

  40. Here's how it really works by Ol+Olsoc · · Score: 1
    People setting around the meeting table.

    Suit: "How long do you estimate development will take on this project?"

    You: "My best estimate is 2 years, 3 months, as long as specs don't change."

    Suit: "But the customer would like the product in a year"

    Bean counter: We'll need 6 months to determine the task flow".

    You: Then you'll need to add six months to the scehdule."

    Suit: Okay, it's settled. We'll start tommorrow, the accountants will take the first six months to determine the charge numbers, and the programmers will have the job finished six months later.

    Two days later.....

    Suit drops by....p> Suit: "Hey, I just got off the line with the customer, and they changed all the specs. Don't worry though, I told them there wouln'd be any impact on the schedule. Oh, by the way, the accountants say they need another month. But I every confidence in you.

    a year and a day later.........

    Annoyed suits and accountants sitting around the meeting table...

    Suit: Okay, now what the hell is the problem here?

    You: We only had five months to complete the task, and specs and accounting time were all changed..

    Suit interrupts: You told us you could have it finished, you aren't going to make it very far here - we need better estimates on your part!"

    You: Sigh... Well, I think if we work everyone double shifts, we can get it out the door in anotther two months"

    Bean Counter: We'll need a month to redistrubute gharges and funds."

    You: "Wait! umm.."

    Suit interrupting: Okay, that settles it. A month and a half out the door, just like you promised. And don't let me down, again. Just what to you programmers do with all your time anyway?

    --
    The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
  41. Estimate failure by ADRA · · Score: 1

    During my last project, one component was estimated (by others) at 2 man months, and it ended up taking 6 full time developers a year to implement. The estimates were absolutely horrible. As much as it was the fault of the original estimate, management constantly rode the development team to get it done asap, which probably in the end did more harm than good.

    --
    Bye!
  42. I give perfect estimates, every time. by Anonymous Coward · · Score: 0

    I give perfect estimates, every time. It's the honest truth.

    Then the project manager(s) squeal like stuck pigs when they see them and force me to cut them down to what they think is reasonable.

    That's why your software is late and buggy.

    1. Re:I give perfect estimates, every time. by maxwell+demon · · Score: 1

      The key to perfect estimates is to not use wall time, but events:

      "How long will it take you to do this project?" - "Until it is finished."

      Unfortunately very few manages will like that answer ... :-)

      --
      The Tao of math: The numbers you can count are not the real numbers.
  43. Impossibru! by Anonymous Coward · · Score: 0

    If you've ever had to deal with ExpressionEngine and it's complete ass-backward "parsing order" crap, you know that giving good estimates is impossibru!

  44. This is doubly hard for consultants by linuxguy · · Score: 2

    When my customer comes to me and asks me to provide an estimate for a job, if I give them a conservative estimate, some of them may think that I am milking them with the extra hours. Specially if they get a competing estimate from an overly aggressive Indian company who is eager to sign the contract but has no clue on how to deliver.

    I usually do not fret too much about customer feelings in a case like this. But during slow times I have little choice. Bottom line is, most of us would love to provide conservative estimates, but often times it is not as simple as that.

    1. Re:This is doubly hard for consultants by Tablizer · · Score: 1

      Most consultants low-ball to get followup work, no? I thought this was the profit source, not the original project. Customers almost always want add-ons and changes, and it's usually cheaper to use the same consultant because they know the project.

  45. Mandatory Bad Estimates by Anonymous Coward · · Score: 0

    There is another reason time estimates are bad -- they are often required to be bad to satisfy management. In my 25 years of experience I've often come up with reasonably accurate time estimates. These are invariably too long for management to accept. Therefore, management often picks someone else (with a lower estimate) to lead the project, and then the project comes in late, usually around my original estimate. I've also found that explaining why my estimates are so high does not help. If I set aside project time for investigation, research, and other non-specific tasks that my experience tells me is necessary, it doesn't make a very good story. Most management will go for the happy story, and then deal with the repercussions.

  46. Estimate = Deadline by Anonymous Coward · · Score: 0

    At my giant corporate place of employment, developers are pressured into giving optimistically conservative estimates. They are called estimates and everyone plainly knows that they are estimates of unknown quantities. These estimates are entered into Microsoft Project and the dates are manipulated to fit whatever deadline has been set. That Project file is then sent upwards into the management cloud from which threats and curses come back down when the dates aren't met. The reality that no one talks about is that there is no such thing as an estimate here - only commitments and deadlines. But they pay me, so I will be back tomorrow.

  47. There was this company that wanted a project ... by Skapare · · Score: 2

    ... to be developed for them in 3 months. I estimated 10 months. So they decided to look around for another developer. A couple years later they came back and asked if I could do it in 6 months. I told them it would take 12 months, now.

    --
    now we need to go OSS in diesel cars
  48. Confidence by Todd+Knarr · · Score: 1

    You can have confidence in your estimates and still be aware that that confidence is misplaced. One of the common things I keep saying to my manager is "Yes, I'm pretty sure we can finish this in 3 weeks. But I want to schedule it for 6 because always, always we spend half our time getting pulled off onto other things and I want to account for that now before we get in a bind.". I have confidence in my estimates, but I also have confidence in the statistical evidence of how reality varies from my estimates and I'm not prepared to ignore the latter.

    As others have said, I also end up in arguments where people "up the chain" have already decided when they want something delivered and are pressuring me to make my estimates conform to the schedule they've already set. I don't consider this a problem with my estimates or my planning/scheduling, because I have no input into this or ability to control it. The problem lies with the people who're making promises without making sure those promises can be made good on, who then expect someone else to pull their chestnuts out of the fire. I can't do anything about that, because I can't order them to ask for estimates before setting delivery dates.

  49. I don't suck, time estimates are inherently hard by Anonymous Coward · · Score: 0

    The agile software methodology was created in large part to address this problem (and the related problem of budgeting) and it works by saying, "we're only going to estimate what we can do in the next month."

    You may have to evaluate a library or a technology to see if it's suitable, you might have to come up to speed on something, and you will often be waiting on another component to complete.

    The biggest issue, though, is that clients don't know what they want until they see it. So if I take vague requirements X, Y and Z and generate X', Y' and Z', the client might decide he really wanted A, B and C. How can I possibly estimate that? And any client who promises he won't change his mind is lying.

    The only reason people deliver even close to the estimated date is because they will throw in massive numbers of hours trying to meet these arbitrary deadlines, or cut corners or whatever.

  50. Uh no... by Charliemopps · · Score: 5, Insightful

    My estimates suck because:

    Project leader: Ok, so we need to know how long it will take for you to do X
    Me: I'm not sure, that's an entirely new API, proprietary to the vendor, there's almost no documentation and their website has a support forum filled with questions and basically no replys to any of them.
    Project leader: Well, we need a number.
    Me: Why?
    Project leader: I have to fill in this box here... see?
    Me: Ok fine, 800 hrs
    Project leader: Now hold on a minute, this wont take 800hrs
    Me: It could, I have no idea. It's already taken the majority of at least one hour and I don't even know what language it's in.
    Project leader: Fine, I'll put down 800hrs, but you're the one that's going to look silly.

    POST PROJECT REVIEW
    Project leader: I can see here your original estimate was 800hrs, and your actual billed time was 1265hrs. What causes led to you missing your estimate, and how can we avoid those in the future.
    Me: Don't make estimates.
    Project leader: Come on now, I need a real answer.
    Me: Why?
    Project leader: I have to fill in this box here... see?
    Me: ....

    1. Re:Uh no... by smash · · Score: 1

      You see if you doubled your initial estimate (rule of thumb) you would have promised 1600 hrs, it came in at 1200 and everyone is happy :)

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    2. Re:Uh no... by Charliemopps · · Score: 1

      2 * "I have no fucking clue" is still "I have no fucking clue"
      In fact, I think I'll invent a new unit of time called "I have no fucking clue" or IHNFC
      This project will take me approximately 10 IGNFC's
      "How long is that? We just found out that the entire software platform is incompatible with anything over IE6! Actually, it's ONLY compatible with IE6... or netscape, but we don't know what a netscape is, we think it might be a router or something..."
      Well, that's the great thing about IGNFC measurement! You see, despite this unforeseen problem, the IHNFC system automatically adjusts and this will actually still consume 10 IHNFC units.
      "Fantastic!"
      I know... and, as an added bonus, IGNFCs estimate automatically contract when angry people are in the room, and extend when people that actually have to work on the project are around. Unfortunately conversion to standard time intervals is very complex and can only be calculated once the project it complete.

    3. Re:Uh no... by Anonymous Coward · · Score: 0

      You explained it (briefly) what would go wrong when they asked for the initial estimate, and then refused to do so when it might have made a difference (during the post project review). Future screw ups are now YOUR fault.

    4. Re:Uh no... by Anonymous Coward · · Score: 0

      That's when you take the Ballmer approach.

      "DEVELOPERS! DEVELOPERS! DEVELOPERS!" /chairtoface

  51. Expert ISNT by Ryanrule · · Score: 1

    Anyone who calls themselves an expert isn't qualified to call themselves an expert.

  52. Double the time is suprisingly accurate by Anonymous Coward · · Score: 0

    And that's double the time you THINK it will take to complete.

    It almost NEVER manages to get within time, but it never seems to take more than double (unless it turns up as a doomed project very early on and you can SEE it won't finish anywhere near the time.

    I.e. you forget about commenting the code, or the tests take longer to collect all together, or some bit of new language feature *reads* like it'll do X, but it really does Y instead, or the X isn't really what it was meant to do, so is harder to implement than you thought.

    This works up to one-man-month (or so) work.

  53. Mod down, because reality goes the other way. by Anonymous Coward · · Score: 1

    Ice melting in the Arctic? Going FASTER than predicted.
    Drought counts and length? Getting worse FASTER than predicted.
    CO2 increases? Getting worse FASTER than thought.

    The reason why #3 is true is because the moderated and generally-agreed results (which are necessarily going to be conservative) have been over-conservative when measured up to reality.

    Hansen's 1988 paper so often touted by deniers as "heinously wrong, tenfold error!" was actually pretty damn close in its 30 year prediction. A sensitivity of 3.2C per doubling would have been spot on, but Hansen's model predicted a 3.4C per doubling figure.

  54. Some guy has been writing about this by Anonymous Coward · · Score: 0

    Been doing it for many years, too

  55. Problems and Estimatated Solution Times by jfz · · Score: 0

    Estimates seem to be driven mostly by the following forces:

    Non-Tech Problem Space

    In the worst case, this is the equivalent of walking up to a student and asking how long it will take them to solve a problem in both a subject he/she hasn't studied yet, and in a problem with no similarity to those at hand. Any notion of accuracy gets thrown out the window under these conditions.

    Tech Problem Space

    What tech is needed? And how long will it take to acquire proficiency in this tech? Since tech is a road well traveled by others, this makes the estimation of the learning curve and the tech application easier.

    I think the answer lies in patience, instead of demanding estimates that can be produced in the next hour. In many cases, the problem needs to be inspected and possibly specified further to come up with anything approaching accuracy. I have to wonder if this is something that is understood and being communicated effectively to non-engineers and those on the client side. Nevertheless, if businesses chooses to subjugate informed, honest estimates to salesmanship, then none of this matters anyway.

  56. propose projects substantially already done by peter303 · · Score: 1

    We did that in the college research game. A prototype was already done before we applied for a grant. We used the money to perfect the old project and start a new secret project. Nothing succeeds like existing success.

    1. Re:propose projects substantially already done by Anonymous Coward · · Score: 0

      This. My team does prototypes. It's what we do. So we look at gaps and opportunities where there is an incrementsl improvement to something. Then we mock up solutions, check them with users to see if they still make sense, then prototype them and test those with users, adjust based on feedback. Then we go and get estimates to make them production worthy and figure in operational overhead for maintenance. I take the business case, estimates and the prototype and get a budget approval.

      We do that for 5-10 ideas at a time. ~3-5 make it through. There is very little impact on other teams and projects get completed very close to estimates as the risky parts are already mitigated.

      We're called the innovation lab. We're not the only source of enhancements or ideas but we contribute a significant fraction of them.

  57. Estimation is a losing game. by idontgno · · Score: 1

    Think about it.

    Time is, for all practical purposes, linear. Your task will take a specific quantity of time to complete. You don't know that quantity of time in advance, because you don't control all factors, so you're guessing.

    Now, what is the environment of your guess? You are trying to pick out a specific point in the future at which your task will be done.

    Balance that against the infinite number of points of time in the unbounded future in which your task could actually be completed in.

    1 estimated point against an infinite number of possible points. That's your odds of picking the CORRECT point in the future. 1 divided by infinity. Although it's not necessarily mathematically correct, it's a useful convention to reduce that expression to "0". And that is your precise odds of estimating the completion time correctly. Zero.

    --
    Welcome to the Panopticon. Used to be a prison, now it's your home.
    1. Re:Estimation is a losing game. by ZombieBraintrust · · Score: 1

      nah to win your estimate only needs to be within 10% of your estimate. If you estimate 40 hours management is going to be happy between 36 and 44. between 20 and 80 hours no one wins. At 360 hours you lose.

    2. Re:Estimation is a losing game. by idontgno · · Score: 1

      You don't work with EVMS, do you?

      You estimate. Precisely, down to the work-hour. With productivity allowances for workers, working days available (holidays, scheduled time off), etc.

      Then you lay your task into a PERT chart and capture the sequential and parallel dependencies, givers/receivers, and internal milestones (inchstones, really) and the predicted hit dates for those, including precisely predicting hours required to reach each milestone.

      Then, when you begin executing your schedule, you fudge the reporting to match expectations, because otherwise you'll have to brief your variances to leadership. Even beneficial variances, when you get ahead of schedule or execute to schedule below budget. All variances are frowned on, because they're variances. Plan uber alles.

      Yeah. you estimate precisely, and you precisely hit your estimates, or you can look for another job.

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
  58. A very simple method that works by gnasher719 · · Score: 1

    Here's how you do it: You split your development task up into small parts that should take 1 to 5 days. For each task, you write down your best estimate. Now of course you know you are bad at making good estimates, but that doesn't matter: You do the first part, then write down what you estimated, and when you actually finished. From that you extrapolate when you will finish - if you estimated two days and it took three, you estimate that the whole task will take 50% longer than estimated. After the second part is finished, you get an improved estimate, and so on.

  59. Re:I've been trying to fix this for 12 years. by TaoPhoenix · · Score: 1

    I know, insert prelim apology for sounding "arrogant" etc. Then let's thrash out a theory.

    "I've been trying to fix this for 12 years." When something takes 12 years to get better at, there's hidden factors at play.

    Suppose you try a thought experiment. Imagine one of your recent projects. So you get to the stage of the "estimate" (really some kind of pre-pre-pre estimate!) and imagine what you were thinking when you worked it out.

    Then try to pin down at least a couple of the "oh my gawd" moments when the whole thing exploded. Clarify a little why that particular moment didn't work.

    So as part of the thought experiment, the next time you get a project, make THREE estimates. (Feel free to add a couple of bonus ones). The first is private and not told to anyone. *Because you just throw an "insane" chunk of time on top of it*. Go wild! Three month project? Whee! Let's pretend it takes two years! And lo and behold, it came in at 10 months. Yay! You were "under your estimate!" That's your first private estimate - throwing so much time that it's designed to *not go over, with NO penalties*.

    So then the second one should perhaps also be private - the one that made you *think* (wish?) it was three months. But that one will be too short, for all the reasons you said you've struggled in 12 years.

    Then your third one is to build in contingencies for "nightmares" - "I don't know what it is yet but something awful will go wrong here."

    --
    My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
  60. break the problem down into parts, carefully... by hxnwix · · Score: 1

    Break the problem down into parts. Carefully consider contingencies. Get creative - sleep on it. Think about it in the shower. What bullshit will crop up as I work on this project?

    Using all your experience as to how long similar components took to implement in the past, plus how much longer it would have taken if worst case nuclear godzilla attack had occurred, compute time estimates for each component.

    Add all the time estimates together.

    Multiply by the Planck constant in Joule seconds / (pi^3 / e^2) * 10^34... approximately 1.58. It has something to do with brane theory and the double slit experiment. Trust me.

  61. Hofstadter's law by nayrbn · · Score: 1

    Hofstadter's law: It always takes longer than you expect, even when you take into account Hofstadter's Law. — Douglas Hofstadter, Gödel, Escher, Bach: An Eternal Golden Braid

  62. Thankfully... by Anonymous Coward · · Score: 0

    Thankfully I'm a pessimist and a detailed oriented person. Most of my estimates are beyond the actual delivery date. This has two side effects: 1. It makes me look like an over achiever. 2. It means I'm not rushing to finish and cutting corners = quality output.

  63. I dont think he has worked it out yet. by bug1 · · Score: 1

    "The hardest part of solving a problem is understanding it" - ?

    The reason its hard to estimate development time is because programming involves design, design is a creative task.

    Nobody can predict how long it takes to be creative, its a universal unknown. Creative workers (such as graphic artists) often estimate the design phase by giving themselves a hard limit and then just choosing the best idea they could come up with.

    Most programmers dont even acknowledge their work is a creative expression, so they are bad at estimating what a reasonable "hard limit" might be. But even so, im not sure the same method of 'choosing the best idea within a given time limit' is suitable to programming. Some things just have to meet certain objective benchmarks or there is no point continuing.

    Best idea i can come up with is to allocate your self "design time" first, which wont be long enough. Then you should be able to get a reasonable estimate of implementation time.

  64. Not any more by Anonymous Coward · · Score: 0

    For the first 40 years on the job my time estimates sucked. Now that I'm retired I'm accurate as hell.

  65. All estimates are bullshit anyway, and here's why by Rogerborg · · Score: 1

    Because by the time anyone who could come up with accurate estimate is asked for their opinion, the product has already been sold and the contracts signed.

    Prioritise the order of development and get on with it. It'll be done when it's done, you'll get paid or you won't. Wasting time producing imaginary numbers has never fulfilled a contract, ever.

    --
    If you were blocking sigs, you wouldn't have to read this.
  66. You can do it right by Anonymous Coward · · Score: 0

    But it takes time.

    Use historical data and use that to weight the estimate you came up with.

    Keep doing it and eventually your estimates will start to approach reality - as others have said though - management is usually unhappy with accurate estimates.

    I suspect that's the reason for the demise of formal project management tools in the industry, particularly the ones that allowed you to log the reason for plan changes and stored history.

    Very embarrassing when the dev turns up at the witch hunt meeting at the end and shows that 90% of the delay is due to management failures. (Changing plans, delays purchasing essential resources etc).

    While this is correct, I suspect the real problem is that most managers can't.

  67. Re:I am confident thqt this is the by RabidReindeer · · Score: 1, Offtopic

    APK was arrested last night for disturbing the public and public indecency. Basically, his meds weren't adjusted (yeah, you probably noticed) and police officers don't like it when you masturbate in public, run around naked, and hurl your shit at them.

    Well, there go about half the people on the Internet.

  68. Here's how we estimate by turp182 · · Score: 1

    Start by prototyping before the project is funded. This helps the business parties see what is possible and also gives the developers a much better understanding of functional requirements than any document ever could. Do UX testing sessions (test using your best developers - they find cool hacks, and business people, and anyone). Evolve the prototype, if even over a couple of weeks (I'm pretty good at rapid prototyping, two weeks is usually enough for 2-3 revisions resulting in a reasonably functional prototype for 5-10 screens). Prototyping and UX testing take experience, try them on a pilot project. Note, estimating hasn't begun yet. But do these things first, it's very important.

    Then, once funded, start estimating. If the project is large (>1 person year), break it into logical functional components with a goal of at most 1 person year of "high" level estimated time (better estimates come next). Treat each of the functional components as a separate project. Large projects fail a lot, small projects are surprisingly successful (I don't have the article links handy at the moment, my anecdotal experience supports this as well).

    Then, for each logical component, estimate. Estimating sucks, but I have seen the value in it, as has management where I work. It means sitting in a meeting room for multiple days per component. You will need at least one business representative, the development team, and a DBA, at minimum. Use the prototype to explore the functionality and system requirements. Start namespace/class definitions (helps a lot to categorize/define functionality boundaries). For each namespace/class, estimate the number and complexity of methods. Same for database stuff. Again, the prototype is a useful tool (never DB connected, generate data manually, Excel is a great code generator for such purposes).

    Then put some time estimates on all of the tasks (think of it is as backlog, but for the project, not a sprint).

    Continue estimating for each functional component (don't forget integration time between components, I pad these, it's always harder than you expect).

    If you can't do this level of estimating then you do not understand software at a level required to make the project a success.

    Then decide if the project should move forward. I've been involved in two hard estimating efforts (2-3 weeks each, huge projects, one that wasn't considered that big until we did detailed estimation) that resulted in management deciding against moving forward, it was obvious to us that this would be the result given the results of the estimation. Millions of dollars probably saved, large projects fail a lot.

    As for daily work, we do two-week sprints, spending the first Monday doing nothing but backlog grooming (the crappiest day, but again, valuable). We strive to breakdown tasks to less than 8 hours, with 2-4 hours being the target (.5 hour tasks as very common, such as create Widget.Cache and Widget.Cache.Test projects). The sprint tasks are sacrosanct, they are the focus. If production support rears it head remove sprint tasks. We only schedule 50 hours of work time per 2 week sprint.

    We do UX testing at the end of each sprint, enables us to be reactive to the results during the next sprint.

    Yes, we are targeting agile methods and I'm not sure if they would scale too far. But, if a project is broken into functional components I don't see why it wouldn't scale, a large team would simply be composed of several smaller teams. Remember integration! It's usually a big part of the 20% of my 80/20 rule (where 80% of development takes 20% of the time, and the remaining 20% takes 80% of the time). Enhancement/support situations are something we haven't worked with much yet.

    When starting a project, focus on "project killers" first. This includes things that are unknown, known to be hard or particularly complicated, or external integrations. Project killers are the things most likely to kill a project or directly impact the delivery date/budget.

    --
    BlameBillCosby.com
  69. known unknowns by SplashMyBandit · · Score: 1

    I too partially suck at estimates. Aside from the "unknown unknowns" which you can budget for but never predict I have found several rules of thumb have got my estimates from "fairyland guesses" to "accurate with withing a factor of 2". These are:

    • * If you have done the exact same task before using the exact same technology then your estimate is probably good to within around 20%
    • * If you are using new technology, a new technique then you have no real estimate. Have to be super conservative with estimates of these parts of the project
    • * If you are debugging the time is also undefined. It could be short, it could be long. Your time is in freefall while you debug.
    • * If you have done a detailed design then your time estimates are more accurate, because you have thought through many problems
    • * If you have prototype code for core areas your time estimate is even more accurate, because you have solved many problems.
    • * Joel Spolsky was right. If you haven't thought about all the steps you need to do, down to a granularity of an hour, then you are not thinking about your estimate hard enough and your estimates will miss things (which makes them inaccurate).
    • * No matter what project you take the customer and yourself will always thinks of ways to make it better as you go along. This is the area where project blowouts occur. Learn to identify and mitigate this risk (I often add enhancements at the end, and resist temptation to do them before the core stuff is done and tested)
    • * Developing new algorithms takes significant time (which is hard to predict ahead of time)
    • * Unit testing saves a huge amount of debugging time. Despite lots of unit/integration/system test code getting written, the time to do this is lower than debugging code that doesn't have automated tests. Also, time estimates need to take into account writing, running and maintaining tests.
    • * User Interface layout takes quite a while to make look really nice. Even worse, every user thinks they are UI experts so you get a lot of suggested tweaks to the UI that you may not be able to push back on.
    • * If there is a fault with the specification (and there will be, it is very hard for BAs to get specs right) then the time to fix it (and the flow-on effects) have to be taken out of your time budget and put into theirs. Doesn't help the overall wall-clock time to complete the project though, so this has to be factored in
    • * I also find that I can usually only solve one or two really hard design or algorithmic problems per day. The rest of the day is dealing with less hard stuff. Factor this in to your estimates.
    • * Factor in lots of time to be distracted by meetings and design sessions. Usually coding is around 50-80% of a week.
    • * Documentation is easy and the time to do it can be predicted easily. Don't forget to add time to do the edits from feedback. Unfortunately, documentation is usually done at the end, when little time remains (time was 'stolen' for development slippages).

    Thanks to all the other posters for their lists and suggestions. Time estimates are much much harder than development.

  70. Confident? by Anonymous Coward · · Score: 0

    I'm never actually confident of my schedule or anything else I've given to my boss. But my boss requires me to pretend that I'm confident.

  71. Re:I sucked because I was pressureed to being suck by Anonymous Coward · · Score: 0

    Sure! India CAN get it done...but do you actually want it to be done right?

  72. Not true by Murdoch5 · · Score: 1

    You don't estimate completion dates. The biggest single failure in Project Management is the concept of estimation of completion dates, the work will be finished when it's finished and that is all there is to it. Personally I'm not handing over software that I don't think it 100% ready to go and tested, if that takes me 2 weeks long then the "work estimate" then it does and I don't care. Completion Estimates lead to shitty software, missing features and bug lists. You need to take the time you need to make sure the software is polished and ready to go in a professional setting, if your project manager bitches and complains then go above them. If marketing wants to be keen and set a date with you not being ready then tell them to write the software. The point is take control and take the time to do the job right, The first time you'll hear lip, the second time you'll hear lip but by the third and x time people will let you be and let you produce excellent work. Nothing will kill a company or a product faster then crappy, bad feature and bug filled software or in other terms Project Manager and Marketing managed software releases.

    If your a good programmer your a good programmer and it doesn't mean that you can do the impossible.

  73. Our development estimates are OK by Anonymous Coward · · Score: 0

    Our team follows Joel Spolski's approach. We scope tightly, we do enough design that we can list all the tasks we need to accomplish. We estimate tasks to a 2-day limit; if the estimate for a task is more than that we do a little more design and re-estimate.

    We end up with a list of tasks for a project as long as your arm. We start working on them and tick them off as we go. The designer keeps an eye on things and she is ready to change or enhance the design as things come up.

    Overall our actuals are within 20% of our estimates, which is fine for us. Sometimes we go over, and sometimes we come in under. When we get a new project manager they can't believe how tight we come in overall.

    If there is a scope change, we re-estimate it. We can't control scope changes, but we don't count them under our initial project estimate, that wouldn't be fair or reasonable. We've trained our management to accept that.

  74. No, I Don't by Greyfox · · Score: 1
    On any project I've spent more than a year on, I get pretty good at estimating times. On one I worked on from 2000 to 2005, I could not only provide accurate estimates for myself, but as well for other team members working on code I was familiar with. Experience is the key here. I've found that after about 6 months with a code base, I'm pretty comfortable with its quirks and my estimates start to get accurate. After a couple years, I'm very familiar with the code, can estimate reasonably well for team members and can frequently tell you which file (And sometimes which function) in the code is causing a reported problem.

    Freshly graduated programmers seem to have a problem with this, I think mostly because they've never worked on a really large project before. I think a lot of them procrastinate on assignments, too. At least if what I saw in college was any indication. If a programmer hasn't worked with a single project for more than six months, they may not have noticed this effect either. If you've been playing contractor musical-chairs, it's easy enough to be in a situation where you haven't.

    Employers really should set out to retain engineers for at least several years. You see huge productivity gains as you become familiar with the business and the code base. Burning through people seems to be a good way to stay in a perpetual no-release cycle. Which I suppose some managers might view as beneficial...

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  75. I can make perfect estimates! by Alex+Belits · · Score: 0

    They just take as much time as the work itself.

    People don't realize that engineering and software development always involves doing something new and dealing with unpredictable problems. The things that can be estimated are the trivial part of the project, and they do not actually take any significant time, we just fudge that time to stuff the "creative" and "unpredictable" things in there. In reality it's all bullshit, and any relationship between estimated and actual development time is a coincidence.

    --
    Contrary to the popular belief, there indeed is no God.
  76. People who claim immunity to Dunning–Kruger by Galactic+Dominator · · Score: 1

    are the ones most likely to experience it.

    It's really a lot easier to deal with this stuff if you know rigorous ways of thinking and the very basis of this is knowing the difference between knowledge and belief AKA the Socratic method. Certitude is not knowledge and shouldn't be treated so.

    --
    brandelf -t FreeBSD /brain
  77. Proper scoping is EVERYTHING. by Frobnicator · · Score: 2

    I agree. Fortunately for me at least, I happen to be in the happy world where management supports us in realistic timelines and realistic scoping.

    Spanning almost seven years now and well over a hundred assorted projects we have been overdue on projects two times total. One of those was during the exceptional case of a co-worker getting in a car accident and breaking 13 ribs, the other was an exceptional case where very serious external forces caused the design to shift mid-development. In no case has it been due to poor estimation.

    We have come to learn the development cycle for our small teams:

    • Before the project begins, we spend about 10% of the previous project time scoping and prototyping the next project. The usually three developers are each individually required to build the estimates for their parts of the project, and to collectively work out the details of how all the pieces come together. Accurate time estimates and prototypes are required from each developer.
    • Now the project is officially started. This 30% initial development is where we implement the features required. Everything in the project is scoped during estimates so that this 30% of the schedule will meet our understanding of the product. The design is locked and developers are held accountable for meeting these deadlines. Since there are only about three developers on each project and each one is accountable for a specific subset of the work, we can lay accountability directly on the shoulders of that one individual. We also make a point of celebrating each developer's success of hitting their individual milestones, and the even bigger success of hitting a milestone early.
    • The product owners are given a chance to review the implementation and also modify their design. The changes are estimated and must not exceed 10% of the total development time. Usually we limit them to about 5% of the total development time. The features are prioritized and work on until we hit 35-40% of the schedule (depending on if we limited them to 5% or 10% of the development time). This would likely be called alpha. Again the individual developers are held accountable for their estimates.
    • The next 20-25% is bug fixes where new features are not added but product owners can submit bugs where existing features may be adjusted. We bring in our QA team and start testing. This is the tail end of main development. Many people would call this beta. This brings us to 60% of the development time.
    • For the next 20%, no existing features may be adjusted. Individual bugs are still handled and occasionally a product owner may manage sneak in a design-by-bug change for an absolute critical change, but otherwise this is the final cleanup cycle. At this point we should be comfortable shipping the code. That brings us to 80%.
    • For the final 20% almost no changes are made. Changes are reviewed by all of the developers, and must have sign-off by the developers AND by management before submitting to version control. Most of the development team moves on to prototyping the next project. (This is the 10% mentioned up top.)

    When I hear about other groups hitting 60% or later in their development cycles and still not getting feature complete, I pity them. They have made the mistakes the original article warned about, and were probably driven to that madness by the poor management you mention.

    --
    //TODO: Think of witty sig statement
    1. Re:Proper scoping is EVERYTHING. by Anonymous Coward · · Score: 0

      One of those was during the exceptional case of a co-worker getting in a car accident and breaking 13 ribs

      Were they hit by a bread truck? That's the exception case we always put in our project plans: "what if key person X gets hit by a bread truck?"

  78. It's because management wants you to lie to them by NotSoHeavyD3 · · Score: 1

    Seriously, I told my manager not that long ago that I had no idea how long something would take me.(The real answer) He started trying to get me to "confess" to a estimate and when that didn't work he had 2 other SE's play estimation poker to get an estimate that he wanted. Actually when I do give an estimate I give myself a large amount of padding for all the interruptions I'm going to have.(They're going to happen.) Lets just say my manager would prefer me to lie and give the estimate if I had no interruptions.(Which let's be honest, never happens.)

    --
    Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
  79. Estimating something you've never done before by booch · · Score: 1

    I've seen many good explanations for why estimating software is so difficult. But my favorite explanation points out the fact that when we write software, most of what we write is not like anything we've written before.

    Engineers in other fields don't run into this as much. Building a new house is very much like building any other house, so they've got a pretty good idea of how long it takes to build a house like that. And even then, building houses typically takes longer and costs more than the estimates.

    --
    Software sucks. Open Source sucks less.
    1. Re:Estimating something you've never done before by Shados · · Score: 1

      Yup. And often we have to estimate with very little info. Imagine if you had to do an estimate for software that was as detailed as a professional architect's schematics. That would be waterfall though...which is not as bad as people make it seems for static requirements, but the reality is software requirements evolve way too quickly for that.

      I still like the "point" estimation technique. Since it basically boils down to estimating by comparing previous projects that were similar in scope, you end up pretty darn accurate. At my last job where we used it, we ended up accurate at with a 5%~ error margin or so after a few iterations. That's more than good enough.

      New job though, we estimate in hours, again. That never works, everything is off, but estimated projects are only allowed to take a certain percentage of your time, and leave everything else as buffer for the unexpected, so it still works out in the end.

    2. Re:Estimating something you've never done before by TranquilVoid · · Score: 1

      New job though, we estimate in hours, again. That never works, everything is off

      Why is that? Once the team is mature there is a relatively constant points-per-hour figure. Is there a psychological mechanism whereby people estimate differently in hours? If so then perhaps, like the article, the knowledge that you're tricking yourself with points doesn't matter, the placebo still orks.

  80. Experiment by trout007 · · Score: 4, Interesting

    I would love to see an experiment. Take two groups and give them the same job. Group one would be based on a typical American corporate structure with a Boss, Scheduler, budget person, middle management, supervisor, and finally people doing the work.

    The other group would have the same number of people but only those that work. No schedule or budget just work until it's done. I wonder what the results would be?

    --
    I love Jesus, except for his foreign policy.
    1. Re:Experiment by Zaelath · · Score: 2

      That's easy. Universally accepted software, like say, Unity.

    2. Re:Experiment by TheNastyInThePasty · · Score: 3, Insightful

      You wind up with Valve. Go look for their leaked employee manual. It's quite interesting.

      --
      The best thing about UDP jokes is I don't care if you get them or not
    3. Re:Experiment by hackula · · Score: 1

      Schedules, budgets, and estimates are fine...as long as no one cares about them.

    4. Re:Experiment by TheRaven64 · · Score: 1

      One of the things I've learned from open source development is that it's really helpful to have some deadlines and milestones. If your group can set these itself, it works well. If not, then you end up with the Valve Time phenomenon, where things keep slipping because you want to get one more feature in, or one more bug fixed.

      In a commercial setting, it's also often not enough to just get the work done. You have to also get it to your customers. This means that you need sales people to be aware of when you can deliver it and what it will do. You need to pay developers, which means that you need to ensure that the money going out is not more than the money coming in, except over short periods when you can cover it from reserves. This also requires that you be aware of when things will be finished and how much you are charging.

      I did a lot of freelance work where the customer set a problem, I gave them a time estimate, and by the end I presented them with a solution. That works well, but it's hard to scale.

      --
      I am TheRaven on Soylent News
    5. Re:Experiment by tehcyder · · Score: 1

      I would love to see an experiment. Take two groups and give them the same job. Group one would be based on a typical American corporate structure with a Boss, Scheduler, budget person, middle management, supervisor, and finally people doing the work.

      The other group would have the same number of people but only those that work. No schedule or budget just work until it's done. I wonder what the results would be?

      If the "only people doing the work" group could get the same or better results than the "typical American corporate structure" group, do you really think that the corporation would not use the former and increase their profits overnight?

      While there is certainly an element of inefficiency in any large organisation, at the end of the day a corporation is a money making machine, not a scheme to create jobs for the sake of it.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    6. Re:Experiment by Anonymous Coward · · Score: 0

      I No schedule or budget just work until it's done. I wonder what the results would be?

      Pretty obvious. Neither would ever be done.

    7. Re:Experiment by Anonymous Coward · · Score: 0

      There's only one problem: the second group would never be able to come to a consensus that the project is "done".

    8. Re:Experiment by Digital+Vomit · · Score: 1

      If the "only people doing the work" group could get the same or better results than the "typical American corporate structure" group, do you really think that the corporation would not use the former and increase their profits overnight?

      Yes.

      --
      Modern copyright is theft of culture from everyone and it retards the progress of the useful arts and sciences.
    9. Re:Experiment by Anonymous Coward · · Score: 0

      You seem to have never worked for a large corporation. "...at the end of the day a corporation is a money making machine, not a scheme to create jobs for the sake of it." No, that's pretty much exactly what they are, people know that their jobs may be unimportant, but that knowledge slips as they climb the ladder. There's some psychological term for this, but people are biased to think some job is important because they do it or did it.

    10. Re:Experiment by halcyon1234 · · Score: 1

      The other group would have the same number of people but only those that work. No schedule or budget just work until it's done. I wonder what the results would be?

      Duke Nukem Forever?

      (Hot damn, there's still situations where it's a punchline!)

  81. Overconfidence: Employment Prerequisite by LuYu · · Score: 1

    The post stated:

    3- And, best of all: absolutely nothing seems to be able to diminish the confidence that experts feel. The last one is truly remarkable: even if experts try to honestly face evidence of their own past failures, even if they deeply understand this flaw in human cognition they will still feel a deep sense of confidence in the accuracy of their predictions.

    A better way to put this is people who do not feel such overconfidence will not be recognized as "experts" by anyone. This is a social problem, not a personal one. Human beings more readily believe confidence than veracity. This why there are so many confident idiots around.

    This should be obvious to anyone who has dealt substantially with other people at any time in his or her life. Confidence makes one an expert -- more than documents or proof or the ability to obtain, compile, and present convincing evidence.

    --
    All data is speech. All speech is Free.
  82. Because civil projects never go over budget... by TiggertheMad · · Score: 3, Informative

    Predicting a civil engineering project, like a bridge, is easy.....

    I'm going to stop you there, because civil engineering projects are NOTORIOUS for going over budget. You might have heard of projects like the big dig. Less well know, is that going over budget in less spectacular ways is apparently a fairly common occurrence. I was looking around for a report to link for you that I read awhile back talking about why civil construction projects so frequently go over budget, but alas, I cannot locate it.

    Alas!

    --

    HA! I just wasted some of your bandwidth with a frivolous sig!
    1. Re:Because civil projects never go over budget... by Grishnakh · · Score: 2

      I'm not disagreeing, but I question whether this is something that happens more with really big projects which are very unique (Big Digs aren't exactly a regular occurrence, hence the name), rather than with your mundane, everyday civil engineering projects like a boring commercial building that's not much different from dozens of other commercial buildings in its area.

    2. Re:Because civil projects never go over budget... by TiggertheMad · · Score: 2

      I'm not disagreeing, but I question whether this is something that happens more with really big projects which are very unique (Big Digs aren't exactly a regular occurrence, hence the name), rather than with your mundane, everyday civil engineering projects like a boring commercial building that's not much different from dozens of other commercial buildings in its area.

      Well then, since you are using generic, cookie cutter building projects as supporting evidence for your argument, wouldn't it be an accurate comparison to look at how often web design firms go over budget when building generic 5 page websites for small businesses? I suspect that the numbers will be roughly equal, and the type of work would be similar. In contrast, an unusual project like the big dig would probably be comparable with someone like Microsoft writing a new OS from scratch.

      My point is that software development isn't really that different than a lot of other engineering projects. Building things is hard.

      --

      HA! I just wasted some of your bandwidth with a frivolous sig!
    3. Re:Because civil projects never go over budget... by plover · · Score: 1

      You're absolutely right, of course, and I do apologize to civil engineers as I don't mean to trivialize what they do.

      What I was intending to say is that most traffic bridge projects don't have many hidden problems, and the parts that aren't hidden are very well understood and repeatable. Beams support load X, they span distance D, etc. the problem space is well defined and understood, its been repeated hundreds of times, and there are formulas that yield estimates. Beams are off-the-rack commodities. An engineer doesn't invent a new type of beam for each bridge, because that would be expensive and wasteful.

      Similarly, cranking out websites on a Wordpress framework is pretty straight forward and cheap. Packages like that are the I-beams of the software world. But building a custom app to invoke bizarre and arcane business logic, to serve irrational people with an ill-defined idea of what they want, that's when it gets unpredictable and expensive. Libraries, architectures, patterns, frameworks, they all help reduce the constant reinvention of the computing wheel, but are often misused, or are inefficient, or don't adequately match the task, or suffer from some other hidden shortcoming that has to be worked around. People forget to account for failure conditions, or imagine terrible bugaboos that require layers of complex logic to guard against an eventuality that never materializes. And lots of developers fail to test, and produce code that occasionally works by accident more than by design.

      --
      John
    4. Re:Because civil projects never go over budget... by gzuckier · · Score: 1

      absolutely. every civil engineering project, every skyscraper, etc is a one-off experimental research project involving hitherto unknown variables in site, climate, etc which has to be right the first time, no prototyping. by comparison, cranking out aircraft carriers or such is a breeze.

      --
      Star Trek transporters are just 3d printers.
  83. Different Contexts by Anonymous Coward · · Score: 0

    One huge contributor, in my experience, is the following.

    A manager (could be a project manager, same difference) asks for a time estimate. With no preparation by the programmer. And they want that estimate immediately!

    Now the only reasonable way to interpret this situation is that they want a ballpark estimate. One that has very large uncertainties, on the order of +/- 100-300%. There's no functional decomposition going on here, not really. Usually the technical guy doesn't add an automatic fudge factor to account for contingencies. Rarely is a realistic % availability calculation done either; the tech resource is assuming that Days = Standard 8 hours Days Working the Project.

    Such a preliminary estimate should be used as a first draft to evaluate whether the organization even wants to go ahead with the project. If the Go/No Go decision is made, then a proper project estimation (with all the overhead that implies) can be done.

    However how often is this sequence actually followed? Many times the manager shortcuts directly to the end. Project is assumed to start immediately, that SWAG estimate is codified as the actual deliverable timeline, promises are made to customers (geez, often the promises were made BEFORE the conversation with the tech even started), and the confidence intervals are never established.

    You want to know how come the estimates are so bad? Start here.

  84. Re:I sucked because I was pressureed to being suck by Austerity+Empowers · · Score: 2

    Exactly. If someone asks me for an impossible prediction, I will give them what they asked for with unyielding confidence. When faced with the inaccuracy of my prediction, I will continue, with confidence, in giving equally inaccurate predictions in the future.

    My real algorithm is as follows:
    Is it fun/interesting to do? If yes, feel the room and give an estimate that will keep the project from being killed. Else, give a long enough estimate that can withstand cross examination that hopefully will kill the project. Regardless of what I answer, management will cross examine my estimate using their own equally inaccurate measurements and assessments, if I deliver with anything less than absolute confidence I will be smashed. You see, the bullshit is layered upon the bullshit, then convoluted by management bullshit, into spectral bullshit that makes for a great power-point.

    If you want an accurate assessment of how long something that has never been done will take, you're asking for the impossible. If you want an accurate assessment of how long something that has been done before many, many times will take, either a) you're not in technology in the US, we don't do "competition" here, or b) I'll tell you 75 years because I really don't want to do that anyway.

  85. Time management by Taco+Cowboy · · Score: 4, Interesting

    If you ask any experienced software developer about estimating when the project will be finally completed you will get a blank stare --- for the simple reason that there are always higher mountain to climb, more features to add, more bugs to be squashed, more optimizations to be made, and so on ...

    I do not do time estimation --- I do the reverse

    I set out a limit on time before I even begin a project

    Within that time span I partitioned it into "exploration", "research", "coding", "debugging", "finishing touch" --- and I can terminate the entire project when any part of the partition takes too long, or produce too few result, or both

    That's the way I've been using since the late 1970's --- it might not be the best way, but that's my way of accomplishing my projects --- or abandon it before it dragged out way too long

    --
    Muchas Gracias, Señor Edward Snowden !
    1. Re:Time management by gzuckier · · Score: 1

      as a corollary, if you ask any experienced software developer about estimating how far along the project is, you get a blank stare while they think to themselves "how much time is left until the deadline? halfway?" then promptly answer "We're halfway done!"

      --
      Star Trek transporters are just 3d printers.
    2. Re:Time management by nobodie · · Score: 1

      When I was in project management I did essentially the same thing, and learned some valuable lessons in the process:
      1) finishing touches are at least 33.3% if the total time, especially when things were screwed up in the planning/exploration/research phase
      2) the actual "work" is only about a quarter of the total in most projects, and the larger the work (in the example above: coding & debugging) percentage the better off the whole project is. In other words, if things are done carefully and completely in the work phase then the planning phase and the final touches phase were in better balance.
      3) the front end creates the back-end. The dog wags the tail. If the dog is stupid, then the tail is wagging the dog.

      --
      Subversion of spatial scale luxury decoration ideas.
  86. causes and solution by smash · · Score: 1

    Causes: lack of consideration for design by the client (resulting in heaps of "minor" changes - death by a thousand cuts), lack or thorough analysis of the problem (no one wants to pay for proper analysis before starting work or even doing the project budget), lack of allowance for scheduling problems, etc.

    Solution? Take your initial time estimate and multiply by 2-3x, to allow for the unforeseen.

    Is a rule of thumb I have used for years and has served me well. And when you do come in UNDER budget and ahead of time (i.e., only taking 1.5-2x your initial time estimate), you look a lot better than coming in at 2x the cost and taking 1.5-2x as long as promised.

    In other words: under-promise and over-deliver. Too many development/IT/sales types over-promise and under-deliver (possibly to win a sale), but it just pisses people off when the project the business is depending/wait on is late, and possibly drives repeat business away.

    --
    I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  87. Hindsight by meta-monkey · · Score: 1

    Today I told the project manager for my current contract that my code would be ready for testing on Thursday. I had a sinking feeling the instant the words left my mouth, and now I know why...

    --
    We don't have a state-run media we have a media-run state.
  88. mandatory suffix for ALL estimates: by Anonymous Coward · · Score: 0

    A.L.C.O.R.

    After Last Change Of Requirements...

  89. Re:I sucked because I was pressureed to being suck by sycodon · · Score: 4, Insightful

    Manager: "We need an application that does X,Y, and Z. When can you have it done?"
    Developer: "Well, can you tell me more?"
    Manager: "No, time I have a manager's meeting in 5 minutes. Just give a pall park."
    Developer:" Ok, umm 3 weeks."
    Manager: "THAT LONG?"
    Developer: "OK, 2 weeks? Maybe less?"
    Manager: "OK"

    Later, in the manager's meeting.

    Manager:"My developer says he can get it done in less than 5 days."

    --
    When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
  90. Re:I sucked because I was pressureed to being suck by TENTH+SHOW+JAM · · Score: 1

    Aint that the truth.

    I remember incidents where I have said "4 weeks if NOTHING goes wrong and I am not disturbed for any reason." Translated into "4 weeks and I'll put my developers left gonad on it"

    Since then, all my quotes for time have been in writing. Nothing like Email for controlling the dialog.

    --
    A sig is placed here
    To display how futile
    English Haiku is
  91. Re:I sucked because I was pressureed to being suck by hackula · · Score: 5, Funny

    management/sales: how fast can we get this done?

    dev: low 3 weeks, mid 5 weeks, high 9 weeks

    management/sales:Great! I was hoping you would say around 2 weeks, because this product is being launched next week, so if we push it, we should be able to get it out the door by tomorrow approval!

  92. Re:I sucked because I was pressureed to being suck by hackula · · Score: 1

    5 days later: But you promised!!! Now I'm on the hook for a demo to the VP of International Sales and Marketing!!!

  93. Re:I've been trying to fix this for 12 years. by utkonos · · Score: 1

    You clearly did not read the article. You are saying that it is possible to make good estimates by using the methods you spelled out. The article is saying that it is not possible to make estimates, and that the solution is to not make estimates at all, but to follow Agile software development.

  94. I have found this chart to be helpful in the past by nanotech · · Score: 1

    http://coding.abel.nu/2012/06/programmer-time-translation-table/
    4 hours is about the sweet spot.

    In seriousness, there are many ways of improving estimates (reviewing past similar projects - you kept metrics right?), appropriate granularity of features and estimates of these features, confidence factors appropriate to the complexity/unknowns of the task (write a CRUD GUI screen? high confidence. Write a new algorithm to combine multiple videos into a 3-d pannable single video? Low confidence), etc. You need to be refining and grooming these estimates weekly as data changes, so at least you fail early.

  95. Imagine if you were a doctor... by Anonymous Coward · · Score: 0

    "how long will it take to cure this patient? He has some pains in his torso so he could need angioplasty. Or it could be that he was stabbed by a knife. Maybe he was shot. We also will probably want to cure anything else that we find wrong with him. How long should all that take and I need a precise estimate?..."

  96. Not news for "nerds" in the know. by VortexCortex · · Score: 1

    [Ctrl + F] "Planning Fallacy" --> Phrase not found

    Oh you.

  97. This was shown by JP Lewis, 2001 (citation here) by Blitter · · Score: 1

    http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.344

    "Specifically, if it is accepted that algorithmic complexity is an appropriate definition of the complexity of a programming project, then claims of purely objective estimation of project complexity, development time, and programmer productivity are necessarily incorrect"

    --
    I am Jack's writable stack pointer.
  98. My Experince. by Anonymous Coward · · Score: 0

    Customer
    1. We want this functionality.
    After 1 month
    2. We scare user type in wrong,please filter to sure user don't key in wrongly.
    Tester
    1. This is basic validation, why you don't put. There aren't basic validation. Business Rule can change everytime.
    E.g
    Country Currency Field
    1. Country a don't want comma.
    2. Country b have comma.
    Customer..
      We provide basic information.. You consultant should have imagine...
      Imagine is abstract and cannot be calculate time.

  99. Another bridge vs a fusion reactor by Anonymous Coward · · Score: 0

    Software development is special in that we never do the same thing twice.

    An engineer estimating how long it takes to build a bridge will take a look at all the other bridges of about the same size, and add some time for differences. The differences might be 25% of the end estimate, but the rest is known to have taken a certain amount of time every time.

    If a developer needs to do the same thing again, he will either copy the code (couple of minutes), or refactor the code to make it reusable (assuming that he hasn't already done so, in which case he wouldn't do it twice).

    Now try asking an engineer for an estimate for something he hasn't done before. A fusion reactor, perhaps. Nope, sorry, we havn't built any working fusion reactors before, so you can't add 25% to how long it took the last time. No copying an existing function.

    How far do you think he will be off? 25 years? 50 years?

  100. Re:I sucked because I was pressureed to being suck by rvw · · Score: 2

    5 days later: But you promised!!! Now I'm on the hook for a demo to the VP of International Sales and Marketing!!!

    Powerpoint! Those bastards don't know the difference. Just show some slides...

  101. Yak Shaving by BinBoy · · Score: 1

    Projects that are simple at a high level can consist of several parts and each of those parts might require many small tasks and each small task may require other tasks. Yak Shaving It's like playing a quest in World of Warcraft.

  102. With a little experience... by Anonymous Coward · · Score: 0

    Feedback is the thing. I learned that my estimate and the real time I spent have a factor 1.4 between them. Knowing that, I estimate the work, multiply by 1.4 and report that to my manager.

    I am never far of my estimate now.

  103. It's the 'newness' that causes the unknowns by kevingolding2001 · · Score: 1
    In most real world disciplines, things get built according to pre-determined plans that have been used to build the same thing in the past. Go look at some new housing estate, and you will see that every house is the same, or at least is the same as a small set of possible houses. Also with planes and cars, every one of a particular make and model is the same. Hence the time spent building it is mostly taken up with physically hauling around bits of raw material, punching nails through them etc, according to the same design that was used last time, hence the time taken should be about the same as time taken last time.

    In software development, if you want a second instance of some program or piece of software, you don't need to 'rewrite' it, you just copy it (or relink it, etc).

    This means that every bit of code that you write, you are writing for the first time.

    Clever developers will re-use code they have written in the past as much as possible, but all this does is reduce the overall time, which can actually cause estimates to go even further wrong because the "unknown code written from scratch" now constitutes a larger percentage of the overall development effort.

  104. I must be doing it wrong by Anonymous Coward · · Score: 0

    I don't suffer from overconfidence. My estimates are wrong because people never know what they want and keep moving the goal posts, and priorities change at a whim and I keep getting pulled off.

    The difference between building software and a bridge: once you start on the bridge, you can't change everything.

  105. Wow, talk about wrong by Anon-Admin · · Score: 1

    After reading the comments, it appears that most dont know how to estimate.

    If you are giving a time estimate in days/weeks/months/years Stop! That is wrong!

    Always give the estimate in hours of work. The reason multiplying by pi works is that to management 1 day == 8 hours and 8*3 == 24 hours or 1 day.

    I have found that when developers, Admins, and other technical people are asked to give the estimate in hours, you normally get a good estimate. Asking for the number of hours causes them to stop and think about the answer on a more granular level.

      To top it off you can play with management when using hours. A work week is not 40 hours, it is 37.5 when you deduct federally mandated breaks and lunch. A year for one employee is 1,950 hours. If the employee has holidays and 2 weeks vacation it drops it down to 1837.5 hours. You can even go in and say things like the first hour of the day and the last hour of the day are non-productive hours due to time to spin up/read email/spin down/ etc and you can deduct another 10 hours a week for that making a work week 27.5 hours of working time or 1317.5 hours a year. Then start deducting weekly meetings, project meetings, etc. I bet when all is done you are looking at less than 10 hours a week of actual time coding. (Therefore your estimate of 3 days was right because that is 18 hours and it has taken 2 weeks to get the 18 hours in ;) )

  106. Want a good estimate? Give me a good feature list. by Anonymous Coward · · Score: 0

    When I am asked for a timescale to develop a solution, and get a snide or sarcastic comment about how poor my team's previous estimates have been, I first point out that our responses are estimates, then I ask for a feature list of the solution we are being asked to develop. The estimate is then broken down into phases for each section of the solution. The project manager gets stressed because he asked a "simple" question and is getting obstruction and complexity in return, but over the course of the project, that approach gives the PM better oversight of the schedule.
    It also means that if I break it down, 120 hours for a, 240 hours for b, 180 hours for c, 60 hours for d, and 300 hours for e, so 900 hours for the project, +/-10%, with each section itself broken down with sub-milestones, and the client + PM agree to 600 hours, my first question afterward is to ask what elements we need to cut. As everything is verbal with email follow-up, we have instant communication and a paper trail so that if we are over my estimate for milestones early in the project I can adjust things and we can communicate more easily.
    My estimation process does involve an element of "think of a number and double it", but I am usually pretty accurate with that process.

  107. Predictions by Anonymous Coward · · Score: 0

    Even if we could predict development/release times with 100% accuracy, the damn customer always changes things up at least once. And it's usually when you're 80% of the way through the project....

  108. Past wisdom by SlideRuleGuy · · Score: 0
    "No software project plan ever survives contact with reality." - Helmuth von Moltke the Elder, paraphrased.

    "It's not the known things that get you, or the known unknowns, it's the unknown unknowns." -- heavily paraphrased from Donald Rumsfeld

    Just a little wisdom from a related field...although many days it feels like they're the same thing...

  109. Re:I've been trying to fix this for 12 years. by Dixie_Flatline · · Score: 1

    To a certain extent, the problem is that I don't get asked to solve the same problems that I used to. When I'm asked to write something new...it's NEW. How long will it take? Well, it's hard to say. I haven't worked with this engine before and this gameplay mode is different from the last game I was on, etc.

    I'm lucky that my job isn't really repetitive, but it also means that I lack a basis for making estimates. Over 12 years I've worked with the same engine for 2 games twice. My first game was a custom engine. The game I'm working on now is with a legacy engine that we've been patching up for years and years. The problems are never really the same, even when the specification is similar. The context changes the problem being solved.

    I actually do make fairly wide estimates now, with an 'ideal' and 'worst case', but the shifting nature of the work means that sometimes even straight-forward things aren't.

    When it gets down to bugfixing and refinement, I'm much better at estimates because I understand the context of the issue at hand.

    I suppose that's the REAL issue in the end: it's very difficult to understand your context before you start trying to solve the problem. Until you've built the system and now have the time to iterate on it, it's all unexplored ground, and that's surprising and time consuming.

  110. Secret formula for giving accurate estimates by WOOFYGOOFY · · Score: 1

    This is 100% accurate, Guaranteed.

    1) Make best estimate.
    2) Multiply by 10.

    Done and done right.

  111. One hour per file by Stubbyfingers · · Score: 1

    When reporting (simple reporting) we estimated 1 hour per input file, one hour per output file, and one hour overhead. This was OLD big iron, but it worked.

    Our DB scripting language was proprietary, but worked pretty well. And with very few exceptions, the formula for figuring out how long it would take to code a report was pretty good, too.

    NOW, RUN TIMES---that's a different matter.

    I had one canned report that we only ran annually because it took a MINIMUM of 40 hours of processing time. We didn't write the thing, the AP/AR software vendor did. Since we had a nightly downtime it actually had a break point so the system could cycle. Well, I had this manager who wanted me to run it NOW and give him the results in an HOUR! I told him that was impossible and tried to explain why.....he got ANGRY and said I had an hour to get it to him or he would have security escort me from the building. I went to my manager who tried to smooth it down, but he got threatened with HIS job. Good news is, EVERY canned report saved at least 20 run histories, not the data, but a file that showed how the run went with processing times, CPU utilization, etc. For the 40 hours the report ran, it took up 20% of our utilization. It's why we only ran it 1 weekend a year. We ran it. listened to him bitch about the time But, at least he knew we COULDN'T change it---actually my boss's boss talked to HIS boss after seeing the copies of the run logs and asking him not to threaten to fire the IT people. Then we printed it. It took 4 boxes of greenbar. NORMALLY, it would have been saved to something that could be viewed and searched--but when it's "mission critical" and they need it 40 hours faster than possible--it is SO nice to deliver 150lbs of paper to the guy using a moving dolley.

  112. Replace overconfidence with historical times by Summitlake · · Score: 1

    The shop where I worked had the same overconfidence problem. Project leaders would pull numbers out of a hat, or someplace else, and of course they would fall short. I was in QA. They would chop testing time to meet deadlines, and that's why sometimes we'd release an unusably buggy product to clients. IMHO, the only credible way to do it is for someone not personally involved in the development phase to rank it as "large," medium" or "small" and apply historical average times for that category to come up with an estimate.

  113. This is the classic "expert problem" by bobkoure · · Score: 1
    This is not about being pressured to make a shorter estimate, it's about how confident you feel about whatever "real" estimate you've made (even if that estimate never gets past your manager).

    From Taleb's "Black Swan" which I believe Kahneman was quoting in FT&S, the more information you have the more confident you will feel about your estimate, even though your estimate will not improve with additional information.

    Taleb makes the distinction that some areas have no black swans (totally unforseen / unforseeable events). He calls this 'mediocristan'. There is much less of an expert problem in this area. Then there are areas where there's the possibility of a black swan. He dubs this 'extremistan'. Expert predictions are much more likely to go awry because, well, something unforseen has happened. In either case, the more information we have, the more confident we will be of our predictions but we are not sensitive to when things shade from mediocristan to extremistan.

  114. That is why you need... by Fuzzums · · Score: 1

    ... the pi factor.
    Make estimate and Multiply by pi.

    --
    Privacy is terrorism.
  115. Re:I sucked because I was pressureed to being suck by cubicleguy · · Score: 1

    Three words: The Mythical Man-Month. http://www.softpanorama.org/Bookshelf/Classic/tmmm.shtml

  116. Debug by NewYork · · Score: 1

    You cannot estimate the time you need to debug.

  117. Re:I sucked because I was pressureed to being suck by Anonymous Coward · · Score: 0

    Estimating method:
        Take what you think you can do on your best day.
        Then double that number.
        Then move to the next larger time unit.

    2 days becomes 4 weeks.

  118. You can't handle the truth! by pseudorand · · Score: 1

    I'm actually very good at estimating how long a software project will take me. But if I told you the truth, you'd tell me not to do it because it's too expensive. That's not to say I'm a selfish liar. You also don't realize the benefit you'll get from this properly working software. Trust me, it truly will be well worth the cost (yes, even the real cost that I don't tell you about). And no, I'm not being sarcastic. I think most of us experienced software developers know this. Some of us don't admit it even to ourselves, but it's true. We know if the software will benefit you. We know if we can do it or not. And we know how long it will take. If it's not a net benefit, we know that and we'll talk you off that ledge. If it is, we'll say whatever it takes to help you take that leap.

  119. Steve McConnell by pierreboulez · · Score: 1

    Steve McConnell's Software Estimation: Demystifying the Black Art is the last, best word on this topic.

  120. Bad Bosses by sesshomaru · · Score: 1

    Basically, somewhere in the chain is usually an incompetent manager or product development person who will shut you down if you give honest development estimates for a good, bug free release, and encourage you to lie. This has the effect of training, the first couple of warnings you get over giving realistic estimates, which are overruled anyway, and you turn into Gale Boetticher on Breaking Bad giving his scary drug lord boss estimates on how long it will take him to exactly duplicate Walter White's Meth formula.

    Gale Boetticher: l suppose if we had......at least a few more cooks together.

    Gustavo Fring: You don't think you're ready now?

    Gale Boetticher: Well, l mean......he is such a.... A master.

    Gale Boetticher: There's always more for me to learn. But l'm thinking that if we had......say......one or two more cooks.

    Gustavo Fring: [Icy Silence, the temperature in the room drops 10 degrees]

    Gale Boetticher: One more......l guess would do it. l suppose.

    Gustavo Fring: l believe in you, Gale.

    On the other hand, at least things worked out really well for Gale, eh?

    --
    "MIT betrayed all of its basic principles."
  121. Re:I sucked because I was pressureed to being suck by Anonymous Coward · · Score: 0

    I'm not sure if you are making a joke or saying how you work. But, as a developer if I, or any of my subordinates, did that we would be doing our business a great disservice.

    One way of being a professional is telling people "no" and sticking to your estimates. There is a great book that I think everyone in a software company should read called: The Clean Coder: A Code of Conduct for Professional Programmers. This book has great examples of why you should agree to an estimate and NOT say "I'll try" when asked to do something unrealistic. When you say “you'll try,” that implies that you are going to work harder; something that you apparently weren't doing before.

    A quote from the book:
    When your manager tells you that the login page has to be ready by tomorrow,
    he is pursuing and defending one of his objectives. He’s doing his job. If you
    know full well that getting the login page done by tomorrow is impossible, then
    you are not doing your job if you say “OK, I’ll try.” The only way to do your job,
    at that point, is to say “No, that’s impossible.”

  122. if it's that important to you by gzuckier · · Score: 1

    do it the microsoft way (as i've heard anyway) which is at the end of every day, there must be a compiled and running version available to be shipped if necessary, even if not every feature is implemented.

    --
    Star Trek transporters are just 3d printers.
  123. how long will this take? by Anonymous Coward · · Score: 0

    My Chief Developer had a saying called the 4/2 Method. Whatever the projections it will take 4 times as long to get it done and will cost twice as much as one thought.

  124. Re:I sucked because I was pressureed to being suck by nine-times · · Score: 1

    But be careful not to say, "No, that's impossible," unless it's impossible. More often it's, "Well we could do that, but it will mean sacrificing features X and Y and it will cost an extra $Z."

  125. Old Man Waterfall by Anonymous Coward · · Score: 0

    Manager: "So, Johnson, how's the flight control software for the SLS coming along?"

    Johnson: "Well, sir, it was properly coded AND debugged, but the finishing touches were taking longer than the prediction I had in mind before I started any of this, so I scrubbed it from the repository."

  126. Re:I sucked because I was pressureed to being suck by luis_a_espinal · · Score: 1

    Manager: "We need an application that does X,Y, and Z. When can you have it done?" Developer: "Well, can you tell me more?" Manager: "No, time I have a manager's meeting in 5 minutes. Just give a pall park." Developer:" Ok, umm 3 weeks." Manager: "THAT LONG?" Developer: "OK, 2 weeks? Maybe less?" Manager: "OK"

    Later, in the manager's meeting.

    Manager:"My developer says he can get it done in less than 5 days."

    The fault lays squarely on the developer. You got to stick to your guns with your ballpark or negotiate with the caveat of greater risks of failure as the estimated time is decreased (w/o ever decreasing it substantially.)

  127. My experience by maharvey · · Score: 1

    me: Oh that's easy, I figure about two days of coding, plus a few days of testing. So a week if everything goes right, maybe two weeks if I run into a snag.

    my manager: So, it'll really take four weeks, especially with meetings and interruptions. But since you also have X, Y, and Z to work on, let's call it 8 weeks. I'll add 3 weeks, that will give me negotiating room in the planning meeting. Tell you what, I'll call it 12 weeks, with a stretch goal of 10 weeks to hit the June release, otherwise it will go into the August release. If we go past June you'll be covering vacations for others anyway. But we better not miss the August release, that's a hard commit!

    me: Sure I can commit to that.

  128. Why I suck at development time estimates by cdxta · · Score: 1

    - Trying to remember what method is best to use in some newfangled language I’m using. - Thinking I’m programming back in high school where programs were faster, more efficient, and not 10 clicks and menus to do everything. Now everything is just slow and clunky it seems.