Slashdot Mirror


The #NoEstimates Debate: An Unbiased Look At Origins, Arguments, and Leaders

New submitter MikeTechDude writes: Estimates have always been an integral part of the software development process. In recent years, however, developers, including Woody Zuill and Vasco Duarte, have begun to question the efficacy, and even the purpose, of using estimates to predict a project's cost and time line. A fierce debate has sprung up on Twitter, between those calling for an end to estimates and those who continue to champion their use in a professional setting. On the surface, it would appear that the debate is black and white. Proponents of the #NoEstimates Twitter hashtag are promoting a hard stop to all estimates industry-wide, and critics of the movement are insisting on a conservative approach that leaves little room for innovation. However, the reality of the debate has unfolded in far more complex, nuanced shades of gray. HP's Malcolm Isaacs digs deep and pinpoints where the debate started, where it now stands, and what its implications are for the future of software development. Meanwhile, Martin Heller offers his less unbiased approach with his post, #NoEstimates? Not so fast.

299 comments

  1. Estimates by Anonymous Coward · · Score: 3, Insightful

    Correct:

    How long will it take you to do this list of things?

    Incorrect:

    How long will it take you to do this thing that nobody has ever done before and which may or may not have these features, and we may need to add new requirements when we're halfway through but we won't know until we get there.

    One of these is merely difficult. The other is doomed to failure from the time The Boss opened his mouth.

    1. Re:Estimates by gweihir · · Score: 5, Informative

      Not so. The second one has a correct and professional answer: "I do not know. This will require a pre-study. But adding new requirements during the process is right out, then the pre-study has to be repeated and the project reset." and on the pre-study you _can_ deliver a reasonable estimate.

      It is not only bosses demanding infeasible things. It is also coders not enlightening them on what is possible and what is not.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    2. Re:Estimates by Anonymous Coward · · Score: 1, Informative

      The second one has a correct and professional answer: "I do not know. This will require a pre-study. But adding new requirements during the process is right out, then the pre-study has to be repeated and the project reset." and on the pre-study you _can_ deliver a reasonable estimate.

      Ha, ha, yeah, and the response to that is going to be: "You have N days to finish it and I don't mean the pre-study. Get it done or else.", where N is wildly inadequate.

    3. Re:Estimates by Anonymous Coward · · Score: 1

      Actually I'm finding that our technical deficit is the biggest inflator of estimates. I can't review code that solves a problem I want to address for my own work until I consume and deliver all the "also like"s of everyone else that couldn't be bothered to fix the problem themselves. Basically using the code review system as a bargaining chip to get the functionality they need.

      Dicks. Dicks everywhere.

    4. Re:Estimates by PopeRatzo · · Score: 3, Insightful

      Not so. The second one has a correct and professional answer: "I do not know. This will require a pre-study. But adding new requirements during the process is right out, then the pre-study has to be repeated and the project reset." and on the pre-study you _can_ deliver a reasonable estimate.

      You are assuming the corporation you work for is a rational actor. They are not. They are products of paperwork and exist as golems to extract maximum profits at any cost.

      The management you work for isn't to blame, because they're just trying to feed Moloch too. They are also consumables.

      Looking for rational expectations and behavior in the 2015 workplace is like Captain Yossarian looking for rational expectations and behavior in the military. If you're not crazy, you're not paying attention.

      --
      You are welcome on my lawn.
    5. Re:Estimates by Spazmania · · Score: 4, Insightful

      If you can't produce a reasonably accurate estimate you may not have asked the right question.

      How long will it take you to do this thing that nobody has ever done before

      This is not the right question. The right question is: how long will it take you to assess this thing that nobody has ever done before, and devise strategies for doing it, and develop them to a point that you can estimate how long executing these strategies will take.

      Nothing wrong with saying, "I need four weeks to research this before I'll be able to give a reliable estimate on implementation."

      --
      Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
    6. Re:Estimates by Spazmania · · Score: 1

      Also perfectly reasonable to say: "I don't have the background in this field of study to implement or reliably estimate the cost of implementing the requested technology. I would need assistance from experts in X, Y and Z before I could produce an estimate."

      --
      Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
    7. Re:Estimates by turbidostato · · Score: 1

      "You are assuming the corporation you work for is a rational actor. They are not. They are products of paperwork and exist as golems to extract maximum *short term* profits at any cost."

      There, corrected for you. Corporations, not being rational, as you said, usually act childish: they'll take one today even if it obviously mean lose ten tomorrow (yes, that's an hyperbole: change "today" with this quarter or next and "tomorrow" with in two years).

    8. Re:Estimates by Anonymous Coward · · Score: 1

      Not so. The second one has a correct and professional answer: "I do not know. This will require a pre-study. But adding new requirements during the process is right out, then the pre-study has to be repeated and the project reset." and on the pre-study you _can_ deliver a reasonable estimate.

      It is not only bosses demanding infeasible things. It is also coders not enlightening them on what is possible and what is not.

      I can estimate very accurately the time-to-delivery of my own work but I will not work to a manager's schedule. When I sign-off on any code I have written it is only after it passes my QA which is 1000% more demanding than any "professional QA tester" in the organisation. I once told a manger if he did not stop interrupting me by calling every 15 minutes for a status update, I was prepared to file a complaint about irregular business practices with the US Security and Exchange Commission. He uttered a threat. I reminded him threats over the telephone are federal crimes in both countries where he was located and where I was working. Did he want me to call law enforcement and file a criminal complaint? The jackass hung up.

    9. Re:Estimates by gl4ss · · Score: 1

      yes. you can say "I don't know" and then SOMEONE will make some sort of estimate anyways. because you need that for budget for making a quote to sell it to the client.

      could just as well be #noquotes.

      what's really needed is for the sales people to not sell something they don't know what they're selling, because then you end up with a project that's starting and has a deadline before anyone knows wtf it's supposed to even do.

      --
      world was created 5 seconds before this post as it is.
    10. Re:Estimates by plopez · · Score: 1

      That sounds like a waterfall.

      --
      putting the 'B' in LGBTQ+
    11. Re:Estimates by khchung · · Score: 2

      "You are assuming the corporation you work for is a rational actor. They are not. They are products of paperwork and exist as golems to extract maximum *short term* profits at any cost."

      There, corrected for you. Corporations, not being rational, as you said, usually act childish: they'll take one today even if it obviously mean lose ten tomorrow (yes, that's an hyperbole: change "today" with this quarter or next and "tomorrow" with in two years).

      If the chances of being there "tomorrow" is small enough, giving up ten tomorrow to take one today is the *most rational* choice.

      After seeing the umpteenth coworker being "let go" for not reaping in enough short term profit, you need to be *irrational* to still think long term for the company.

      The blame starts all the way from the stock holders demanding short term profit.

      --
      Oliver.
    12. Re:Estimates by ThatAblaze · · Score: 0

      Lol, bold words.. for an anonymous coward.

    13. Re:Estimates by Anonymous Coward · · Score: 0

      "pre-study"??

      You sound like one of those people who never get anything real done, just crap like studies of things that never will get done because you obstruct.

      If your boss is demands "infeasible things" you should quit, I'm sure the boss wouldn't miss you.

      You are not a "professional".

    14. Re:Estimates by Maxo-Texas · · Score: 1

      Based on experience, I'd go a little further.

      "We have X months to get this project done. You have X weeks to explore the new technology and tell us if you can do it in 6 months. We'll expect a weekly report on your research and progress. If you can't we are not going to do the project."

      The RUP methodology says to work your risks like new technology first. Don't spend 50 million bucks and then find out the linchpin of the project isn't even stable yet.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    15. Re:Estimates by Dahamma · · Score: 1

      And the correct response to that is to go find a better job...

    16. Re:Estimates by Dahamma · · Score: 1

      Even though we all know most of your AC story is bullshit - if it wasn't, the right response for the manager (instead of hanging up) would be to fire you on the spot. Even if you were actually a good programmer (again... AC bullshit) your attitude is the kind that ruins teams, let alone projects.

    17. Re:Estimates by gnupun · · Score: 1

      What kind of completely incompetent idiot can't put an estimate on something based on past experience?

      LOL, are you in one of those jobs where you implement the same thing over and over again, only slightly different each time? That's a shitty job or a shitty design. If you're doing something new it's unlikely you have experience enough to estimate the time. Time estimation works well for non-programming tasks that have been done before, not new tasks that have not been done before. Management has been screwing and stressing programmers demanding artificial/made up deadlines.

    18. Re:Estimates by sexconker · · Score: 1

      Fuck you.
      If there were an abundance of good jobs available people wouldn't have to put up with that shit in the first place.
      Software development is hell for 99% of the people doing it because the only competition is between the employees and the H1Bs.

    19. Re:Estimates by Anonymous Coward · · Score: 0

      It's very rare to know all the details of the project up front. Markets change, businesses change, and as such requirements change with them. The real problem with estimates in software dev is nobody has the balls to say that to produce a quality large scale product that will not incur technical debt for the foreseeable future will take a year rather than 6 months. Six months just sounds so much better, and to be a project manager you have to already be willing to push and prod people to "work harder". Thereby 6 months rolls around, the product has bugs & is missing features almost always (the end user can beta test it, feel familiar?). Last place I worked, the devs were guilty of this too in the sense that they estimated too low and then failed to deliver sometimes as a result.

      There is a whole pseudo science in project management to software project estimation that does not necessarily rely on the developers, however estimates being exactly that, there is no perfect science. A "nice" estimate will pad hours for the unexpected if the unexpected is expected. A risk analysis kicks in profusely here. And on and on it goes, the more effect goes in the estimate, the better it is. Asking the developer is about as dumb and simple as you can make it and that directly correlates to the accuracy of the estimate. Then again, what can you expect when the project manager is the IT manager and s/he has no software dev experience whatsoever.

    20. Re:Estimates by Anonymous Coward · · Score: 0, Informative

      Then change careers retard!

      I can't stand morons who complain about how much they hate an industry only to refuse to leave it.

      Why do you think it is saturated in the first place?!

      The entire reason "Software Development" is such a shitty career path is because of all the dead-wood/H1Bs/dumb-ass wannabe "game-devs"/ and people who are too stubborn to put a fork in a dead career and re-train.

      Fun fact: too many starving animals in a small cage are miserable. Sound familiar? Change cages!

      Watching logging companies fight over tablescraps of what is left of the Lumber/paper industry is just as pathetic as listening to you piss and moan about what a sad victim you are because they exported your job to H1B visas.

      The Fed has interest rates low, the money isn't stuck in the banks, so what is your excuse?

    21. Re:Estimates by Anonymous Coward · · Score: 1

      or the bosses or customers do not really care what you think is possible or what isn't.

      Estimates have a funny way of usually entrenching themselves as the final deliverable schedule or budget. People get bent when the estimates are revised to be more realistic or to reflect actual deliverables that have a high probability of being delivered on time.

    22. Re:Estimates by Dahamma · · Score: 2

      Well, I know I certainly wouldn't hire you... regardless of your qualifications... because you are an asshole. But we have a bunch of open positions for non-assholes right now.

      There is a MASSIVE abundance of open recs for good engineers in Silicon Valley right now. It's such an employee market even many crappy companies are offering 6 figures for new college grads, large referral bonuses to existing employees, etc. Salaries are skyrocketing since the lack of available talent means companies must continue to poach those who are employed.

      The unemployment rate for SW engineers in the US is about 3.6%, and closer to 2% SV. Which basically means it's almost 0 at a practical level, because WAY more than 2-3% of SW engineers in the field are so bad they are basically unemployable.

      If you find your job to be hell and are having trouble competing with H1Bs, you may be one of those...

    23. Re:Estimates by swilver · · Score: 1

      To which you respond: "Sure, here's the keyboard and a pre-configured develop environment".

    24. Re:Estimates by angel'o'sphere · · Score: 1

      In most countries you can not fire one on the spot.
      Especially if there is no reason. From the excerpt of that AC I see no reason to fire him. Except for not playing along as the boss wants ... which is not a valid reason in my country.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    25. Re: Estimates by Anonymous Coward · · Score: 0

      You are wrong. A professional is not someone who blindly does what someone uneducated in the field (like managers) says without question. Name calling doesn't make it so.

      What's actually wrong is that software isn't much of a profession. Take strurctural engineers. They have to personally sign off on things with personal accountability enforced. Because of that, nobody in that profession worth anything will blindly do what a boss says, and they have law to back it up. This is why buildings and bridges don't fall down, and when they do it's usually because someone changed something without approval (or in the case of bridges, didn't maintain them because tax cuts).

      Software could have that too, but of course then whiny little yes-man twerps wouldn't get to be software professionals just because they say they are.

      So here we are, in an industry where most practitioners are underskilled at both code writing and professional discipline, and are unwilling to even consider that the basic structure of the industry needs changing because of some imaginary freedom or something. The results are predictable and bad for everyone.

    26. Re:Estimates by Zontar+The+Mindless · · Score: 1

      Classic example of an Internet Tough Guy.

      --
      Il n'y a pas de Planet B.
    27. Re:Estimates by Anonymous Coward · · Score: 0

      Right, and if you've already programmed something once, why would you need to do it again?

    28. Re:Estimates by tompaulco · · Score: 1

      Yes, by all means, because management doesn't know how to do their job, software developers should spend ANOTHER $60,000 re-educating themselves to do a job that is not the one they fundamentally enjoy doing other than the red tape.
      Then they can land a job in another industry where the management is similarly incapable of clue and start over on the bottom rung.

      --
      If you are not allowed to question your government then the government has answered your question.
    29. Re:Estimates by tompaulco · · Score: 1

      I decided to go looking on Dice to see what I could find in SV. Entry level positions seem to be very few and far between. Almost everything was a level 2, 3 or 4, Senior, Principal, Team Lead, Manager, Project Manager, Agile lead, etc. There were very few plain old Software Developer positions posted, and the ones that were required at least 3 years experience. Maybe 1 in 10 had a salary posted. I found two that had a salary posting, one was for $70-90k for three years experience. The other was for $120k and didn't specify years of experience, but did mention lots of requirements that you are not going to get in school. Plus it was Cybercoders, which means that they don't pay for your bench time or benefits and treat you as if you were an H1b. Wouldn't touch them with a million foot pole.
      In my area of the country, companies hire direct from college for $30-$35k and expect the people coming out to have years of experience in programming. So they also complain that there is no one to hire. Of course, coming out of college with 3 to 5 years of experience is impossible, unless they worked through college, which I happened to do, but very few people do these days. However, there are thousands of unemployed, talented software engineers in the U.S. that could be had for $70-80k. The official number is only about 4,000, but that doesn't include ones who couldn't find work and dropped off the unemployment list. I know several who have gone into other higher paying industries, such as welding, auto mechanic or HVAC repair.

      --
      If you are not allowed to question your government then the government has answered your question.
    30. Re:Estimates by tompaulco · · Score: 2

      In most countries you can not fire one on the spot. Especially if there is no reason. From the excerpt of that AC I see no reason to fire him. Except for not playing along as the boss wants ... which is not a valid reason in my country.

      In my country you can ONLY fire someone for no reason. If you give them a reason, then they have the grounds to sue you and prove that the reason was valid.

      --
      If you are not allowed to question your government then the government has answered your question.
    31. Re:Estimates by KGIII · · Score: 1

      I had a call on my cell asking me if I was interested in some programming job in the valley. Now, I have no idea how they got my number. I can only assume someone gave it to them as a joke. I'm retired. On top of being retired, I'm a mathematician who wrote *some* code to be used internally.

      It gets worse.

      My code was so bad that eventually I hired capable people who were kind enough to tell me to stop writing code - "You're not helping. Code comments do not go on coffee soaked index cards."

      I listened politely to the man on the other end of the phone. They were willing to fly me out, put me in a hotel, and then give me an interview. I almost said I'd do it just to have something different happen but I'm already on the road. I can't wait until they get to the code example part of the interview. I'd have fun with that. I seem to recall that it was for an R or GO coder. Both are languages that I've never even looked at except in passing - I was thinking of writing more bad code (in fact, I'm going to).

      Anyhow, the gentleman on the phone asked if he could call again about new job offers. I didn't want to ruin a potential for amusement so I told him that he was welcome to call any time. He never did ask me any history questions or if I actually wanted a job.

      --
      "So long and thanks for all the fish."
    32. Re:Estimates by KGIII · · Score: 1

      I suppose the counter might be the adage concerning a bird in the hand being better than two in the bush but, in many cases, you're likely correct.

      --
      "So long and thanks for all the fish."
    33. Re:Estimates by KGIII · · Score: 1

      I suspect that "most countries" is incorrect. Do you have some numbers to back that up?

      --
      "So long and thanks for all the fish."
    34. Re:Estimates by meta-monkey · · Score: 1, Offtopic

      What the fuck did you just fucking say about me, you little bitch? I’ll have you know I graduated top of my class in the Navy Seals, and I’ve been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I’m the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You’re fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that’s just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little "clever" comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn’t, you didn’t, and now you’re paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You’re fucking dead, kiddo.

      --
      We don't have a state-run media we have a media-run state.
    35. Re:Estimates by ranton · · Score: 1

      Yes, by all means, because management doesn't know how to do their job, software developers should spend ANOTHER $60,000 re-educating themselves

      He never said to change jobs because management can't do their job. You will find incompetent management in every industry. But if you are not marketable to leave a company that has bad management, then you may be in the wrong industry. Either that or you aren't applying yourself enough. This is what I believe the AC meant when he said to consider changing careers.

      Poor developers tend to gravitate towards poor management, since those companies are the only ones that will hire them.

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    36. Re:Estimates by Agent0013 · · Score: 2

      And you get the experts to help make the estimate. Then they say it is too long and cut it down to 1/3rd the time estimated. And the project ends up going way over what was estimated.

      I have stopped caring about the estimates. The boss can make his fantasy timelines all he wants. Sometimes, when it is a small project I come in on time. Other times the project ends up going over. It ends up cutting into the next project, which has a firm stop date, so they don't give even the original amount of time estimated for that project even though that was already estimated to be too low. So that project goes over also. I don't even look at the schedule. If you use unicorn farts for your estimates then I don't play your game. If you want to get rid of me for that, your projects will be even later while you spend time looking for new people to hire and train. Plus, I would be better off finding a new job anyway since pay increases much more with a job hop rather than staying loyal to a company.

      --

      -- ssoorrrryy,, dduupplleexx sswwiittcchh oonn.. -Quote found on actual fortune cookie.
    37. Re:Estimates by schnell · · Score: 2

      what's really needed is for the sales people to not sell something they don't know what they're selling, because then you end up with a project that's starting and has a deadline before anyone knows wtf it's supposed to even do.

      Then how would anyone every buy or sell any professional services work, or custom system development? If you are building a new ERP system for a client, you can't tell them "Well, we'll build it for you and then tell you how much it will cost after we're done." Maybe you can get away with a "cost plus" approach in the government (and we've all seen how well that works in terms of conserving taxpayer dollars), but in the real world a customer needs to budget for development well before it's delivered.

      Or take another example: commercial airliners have a multi-year sales and development cycle; should Boeing salespeople not solicit any orders on a new plane until it's rolled off the assembly line (and how would they even know how many to build)? The fact is that in most industries you need to have customers pre-sold on any new product (software or physical) in order to 1.) know how much of it to make, 2.) to know what features are vital, and 3.) to have a reasonable payback period on your investment.

      The fact is that there will always be things being sold or committed very early in the development process. The only way to keep things from going sideways is to have good salespeople managed by good managers and working with good engineers who all collectively communicate frequently to keep expectations manageable. And that requires good people, which is hard. There is no magic bullet to get this right or else everyone would be doing it.

      --
      "95% of all Slashdot .sig quotes are incorrect or completely fabricated." -Benjamin Franklin
    38. Re:Estimates by gweihir · · Score: 1

      Indeed. Working under unprofessional conditions is, obviously, unprofessional. Of course, for coders that are at the lower-end of the competency spectrum (i.e. "incompetent" or worse like so many of them), this is not an option, but they are just as much part of the problem. Competent coders can always find a different job.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    39. Re:Estimates by gweihir · · Score: 0

      Software Engineering is hell for 99% of people doing it because most of these 99% have no business doing it in the first place, because they suck at it. People that are actual engineers with respect to skills and experience will not have that problem. (Yes, I realize some of them will not have a paper saying they are engineers, but lets face it, most people working as "Software Engineer" do not deserve to be called "engineer" at all.)

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    40. Re:Estimates by gweihir · · Score: 1

      I am trained in gorilla warfare

      Hehehehehe, nice!

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    41. Re: Estimates by gweihir · · Score: 1

      Indeed. A pre-study is also of course what is done on said bridge and in any other engineering discipline that deserves the name.

      On the Ad Hominem side of the person that just called me "not a professional", I think he is a clear example of what is wrong in the IT industry: Cretins with big egos that do not even understand the basics of solid engineering and then mess it up.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    42. Re:Estimates by Anonymous Coward · · Score: 0

      Brian Williams, is that you?

    43. Re:Estimates by gweihir · · Score: 1

      My bosses and customers very much care. That is why I work for them. Not delivering good results is not an option for me, so a professional approach is absolutely mandatory. Of course, I can back that up with skill, experience and education wayyyyy above what the average (typically abysmally bad) coder brings to the table. And business is booming. Not everybody wants cheap coders that can then at best deliver some half-assed abomination.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    44. Re:Estimates by turbidostato · · Score: 1

      "If the chances of being there "tomorrow" is small enough, giving up ten tomorrow to take one today is the *most rational* choice."

      Only if chances are less than 10%. But if you aren't there tomorrow, then there's nothing to lose tomorrow, therefore my assertion still holds.

      "After seeing the umpteenth coworker being "let go" for not reaping in enough short term profit, you need to be *irrational* to still think long term for the company."

      True, but irrelevant. We were talking here about the corporation, not the individuals with in. If we were talking about where the irrationality comes from (goals misaligment), then yes, it would be relevant.

      "The blame starts all the way from the stock holders demanding short term profit."

      Probably yes. But then, not all companies are publicly traded.

    45. Re:Estimates by turbidostato · · Score: 1

      "I suppose the counter might be the adage concerning a bird in the hand being better than two in the bush but, in many cases, you're likely correct."

      You just ask Kodak or SCO.

    46. Re:Estimates by sexconker · · Score: 1

      There is a MASSIVE abundance of open recs for good engineers in Silicon Valley right now. It's such an employee market

      Another fuck you to you, buddy.

      You're talking about the same Silicon Valley where all the big players are guilty of colluding to artificially keep employee pay low.

    47. Re:Estimates by sexconker · · Score: 1

      Every "engineer" not working with an actual engine does not deserve to be called an "engineer".

    48. Re:Estimates by Zontar+The+Mindless · · Score: 1

      And I will PERSONALLY hunt down and administer the CLUEBAT OF THE GODS to the sorry dumbass who modded you down, girly-boy!

      --
      Il n'y a pas de Planet B.
    49. Re:Estimates by kaladorn · · Score: 1

      Horsepuckey.

      Engineer is derived from use of ingenuity. That's not germaine only to something with pistons. Nice try.

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    50. Re:Estimates by kaladorn · · Score: 1

      I wish I had a pile of mod points. Anyone who can get Moloch, Captain Yossarian, and the reasonable use of the word golem into a post is all right in my books.

      And your comment was spot on too.

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    51. Re:Estimates by Anonymous Coward · · Score: 0

      You say there's "Nothing wrong with saying...".

      Just try saying that to your boss who pressures you directly and repeatedly. You know, the one who approves your timecard, signs expense claims, fills out your performance review, and decides on your raises and promotions. S/He will also bait the trap by adding "I just need a ballpark number" and "we'll get a proper estimate later", and so forth.

      Instead what happens all too often is that your B.S. estimate then becomes the "official number" with consequences for not hitting it.

      And while it's easy to say "well just stand your ground", the fact is that it's actually your boss's job to stand their ground and not even ask questions that don't have a reasonable answer. Instead they go full-on stupid and buy in to the whole dysfunctional decision making process where spitball estimates become signed contracts payable upon delivery.

      Resign and get a different job? Yes it may come to that. It's a drastic response but ultimately some response is needed.

    52. Re:Estimates by meta-monkey · · Score: 1

      That is my favorite part of that copypasta. Any time I see it I imagine a bunch of gorillas ripping shit apart and I smile.

      --
      We don't have a state-run media we have a media-run state.
    53. Re:Estimates by Dahamma · · Score: 1

      Yep, they were caught about 6 years ago and are likely going to pay over a billion in damages and fines.

      And now those are some of the very companies that are paying insane salaries to poach the same people back and forth. I know several people who have been at both Apple and Google twice over the last 15 years. They all make WELL over $300k with bonuses, etc. And probably 2-3x that from stock options if they timed it right.

    54. Re:Estimates by gweihir · · Score: 0

      You should cut back on the drugs. You are posting complete bullshit here.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    55. Re:Estimates by Anonymous Coward · · Score: 0

      Just try saying that to your boss who pressures you directly and repeatedly.

      Sounds like your boss doesn't trust you. Maybe you should get a better job.

      You know, the one who approves your timecard

      LOL I see. You have to fill out a timecard? Why didn't you tell us you were the equivalent of the IT janitorial staff?

      And while it's easy to say "well just stand your ground"

      It's not a case of "standing your ground" - if you dig your heels in and just keep saying, "No, no, No, it's impossible, I can't do it, NAH NAH NAH I CAN'T HEAR YOU," with your fucking fingers jammed in your ears, then yes, your boss won't trust you, and probably will seek to replace you with a dumbass H1B as soon as he can - and if that's the way you act, then you're closer to being replaced with that dumbass H1B than you realize.

      YOUR JOB is to teach your boss, if he's clueless. YOUR JOB is to lay out the rough outline of a plan, with as much detail and information as you can muster, and then tell him, "Beyond this, I don't know. It's new ground, and it'll take investigation to even estimate." YOUR JOB is to be a fucking professional, understand the problem that they're trying to solve, and then offer solutions to that problem. For all the droning on about how "software is a creative endeavor" I see here, nobody seems to understand that if you're just jumping when your boss says FROG, you're not engaging in ANYTHING creative, you're being a fucking brainless automaton who's not worth two shits. If you're not recommending alternative solutions or alternative plans that might be more achievable, reasonable, and deliverable... then you're a fraud. If you're not trying to get to the nut of what your boss needs, and find a way to deliver THAT to him quickly, then you're a snake oil salesman.

      If you can't handle that, perhaps you should consider a career with the TSA, or your local rubbish removal company. You have no future in Software Engineering if you're such a timid little twit that you can't come up with alternatives, and advocate for them to your boss. I've been in this industry for 20 years now, and I've NEVER met a boss who behaves as you describe - maybe I'm lucky, or maybe my approach, of not just choosing between the extremes of "give them everything they demand, immediately, without question," and "tell them nothing is possible, ever, and it's all stupid and should be cancelled" makes me a valuable, reliable, and helpful member of the team.

      not even ask questions that don't have a reasonable answer.

      Why not? Does anything new ever get accomplished if somebody doesn't ask "why can't we do X, and how long would it take us to do X" for values of X that don't exist currently? You seem to want the predictable comfort of a job that involves nothing but rote physical motion. You should probably look for a low-level job in the janitorial or construction industries, and stop pretending you're some sort engineer.

      Instead they go full-on stupid and buy in to the whole dysfunctional decision making process where spitball estimates become signed contracts payable upon delivery.

      If you are letting your boss make those decisions, it's because you've failed him.

    56. Re:Estimates by Rakarra · · Score: 1

      There is a MASSIVE abundance of open recs for good engineers in Silicon Valley right now. It's such an employee market

      Another fuck you to you, buddy.

      You're talking about the same Silicon Valley where all the big players are guilty of colluding to artificially keep employee pay low.

      Yeah, and they got in trouble for that, and despite even that, SV tech tech jobs are still the most overpaid (yes, overpaid) employment positions in the US outside of professional sports and upper management. Few people have it better than us.

  2. Huh? Probability. by Anonymous Coward · · Score: 0

    Task duration is random. This is known. Project duration is random as a result. Why should software developers be special in their inability to estimate task times using well known probability distributions?

    Finish early and too specifications? Get a bonus. Finish late? Get docked or don't get paid at all.

    Better yet, let's push for proper licensing of software engineers. Testing, ethics, and all that.

    1. Re:Huh? Probability. by viperidaenz · · Score: 2

      Book writing duration is random. This is known. Why should book authors be special in their inability to estimate task times using well known probability distributions? They've been writing books for thousands of years.

      Finish your draft late? Publisher won't pay you.

      Better yet, authors should be properly licensed.

    2. Re:Huh? Probability. by Trepidity · · Score: 3, Informative

      Finish your draft late? Publisher won't pay you.

      That's more common than you think. Especially if you're not already an established name, contracts usually have terms stating that if you don't meet the deadline, the publisher has the right to cancel the contract, and demand return of the advance (if any). Whether they actually exercise this right or not varies.

    3. Re: Huh? Probability. by Anonymous Coward · · Score: 0

      I'm not really sure what you are getting at. The poster is not suggesting people should get docked when they miss deadlines.

      Personally, I do think developers should be licensed. I'm tired of my personal data being stolen in hacks. It astounds me how many developers I have worked with are completely oblivious to proper security practices. An author is a very poor comparison. They don't protect my Ssn, credit card, email, password, finger prints, etc.

    4. Re: Huh? Probability. by Anonymous Coward · · Score: 0

      Simply replacing nouns does not produce a counter argument. Besides, the courts in the United States have already ruled that code is not speech. That aside, thank you for validating my point. Authors don't get paid when they don't write books. If they were given an advance, they're probably on the hook for paying it back. While some companies do refund coding dollars, it's usually in the form of an advance on future work. (Probably the work necessary to complete the late project.)

    5. Re: Huh? Probability. by HairyNevus · · Score: 1

      The poster is not suggesting people should get docked when they miss deadlines.

      Yes, that's exactly what GP said:

      Finish late? Get docked or don't get paid at all.

      --
      You were critically hit for no damage. The bruise will look nice, and maybe the scars will make good party talk.
    6. Re:Huh? Probability. by Anonymous Coward · · Score: 0

      Human pregnancy duration is random. This is known. Why should parents be special in their inability to estimate delivery dates. They've been birthing children for many thousands of years.

      Birth your kid late? Insurance won't pay for it.

      Better yet, parents should be properly licensed.

    7. Re: Huh? Probability. by Anonymous Coward · · Score: 1

      I've been a contractor for nearly a decade now, and I've never finished a project late, other than a few instances where I've asked (asked, not told) "look, is it ok if we push the date back 3-4 days to make things a bit nicer (or so I don't have to work this weekend)?"

      If requirements have changed, I'll often have to explain that pushes the date back. And on a couple occasions I've even been able to move dates forward for clients who are under pressure. Most estimates even have a variable for client behaviour (ie, known difficult clients are going to get much higher estimates because I know they will nit-pick or try to sneak in requirements changes, which requires more energy to confront even if not implemented).

      Estimates aren't by any means perfect, but to advocate throwing them out altogether is idiotic. After you've been working in any field for so long, you get an idea how long things are going to take. Yeah, it doesn't necessary apply to wholly inspired creative fields like writing or music, but programming is not THAT creative, stop kidding yourselves. You're not an artist because you write code, although you may be an artist who uses code to make art.

    8. Re: Huh? Probability. by Anonymous Coward · · Score: 0

      Actually, we tend to crash the schedule and deliver by c-section when a baby is "late," and the extent to which an insurance policy covers the procedure, recovery, possible time in the NICU, etc. varies. You've just described reality.

      In software, we ship with known issues, but there's usually fuck all anyone can do about it.

  3. Well, it's about time... by Anonymous Coward · · Score: 0

    We have known that estimates are largely wild-ass guesses (or wild ass-guesses, if you prefer) for decades.
    We have known the economic cost in post release bug fixes and security holes for decades.
    We have known the enormous human cost of working more than 40 hours a week and death marches for decades.

    Software isn't about cranking out identical widgets on an assembly line day in and day out. It is always a creative process of designing, iterating, and learning, at least for anything bigger than "Hello, world!". It is about goddamned time that we admit that doing a good, reliable, and secure product takes as long as it takes and slamming corporations with painful penalties for the issues caused when they rush things to market.

    1. Re:Well, it's about time... by tnk1 · · Score: 3, Insightful

      I agree that having enough time taken to make a good product is a good thing.

      However, there does need to be some accountability to business goals and the ability to actually get features to customers in a reasonable time frame.

      Prioritization is important. There are times where something has to get done by a certain date, or you'd have been better off working on something else because you lost the customer who wanted the feature to the company who did produce it.

      In some ways, I blame customer expectations. If they're always hunting to get the most features they can, for the cheapest possible price, they're pretty much accepting the bugs and design flaws that come from software houses that are fulfilling their criteria. And that's basically what happens. If customers did something like insist that bugs in the software would require significant financial penalties or credits as part of their contract, they'd get a better product, but they'd also pay through the nose for it, and probably also have to wait a substantial amount of time for it.

      So, I think we're at an equilibrium. Customers hate shitty software, but as long as they pay for it, that's what they're going to get because they don't choose the quality software over the quick and cheap.

      And until that changes, businesses need to be able to predict when their software is going to be more or less complete.

    2. Re:Well, it's about time... by turbidostato · · Score: 1

      "And until that changes, businesses need to be able to predict when their software is going to be more or less complete."

      It is usally said the customer is always right. In this case it means it is the customer the one that has to move first, which it's difficult because the customer doesn't have the expertise which makes software development basically into a "market for lemons" which, in turn, it's an stable albeit undesirable state for as long as the good (or service) sold is percieved as of any value.

    3. Re:Well, it's about time... by msobkow · · Score: 3, Insightful

      There are many products which have a very limited life span as well. Products who serve a purpose six months from now, are retired in two years time, and never touched again. Products where failing to deliver on time is as bad as failing to deliver at all.

      Then there are the projects and products which are only part of a greater whole, where delivering late means holding up that entire larger project, and which has a financial impact which may well exceed the total budget of your entire project.

      Despite that, I've never encountered an estimate that was any more than the gut feel of someone giving their best guess based on their experience and what they know so far about the requirements. Customers really need to wake up to the fact that changing requirements and vague/unfinished requirements mean that the actual delivery could be +/- 50% of the estimate, or even more.

      The worst overruns I've ever seen were always on projects where the tools to be used were selected before the developers were ever consulted about what made sense to use for developing the project. The inane buzzword projects where someone decides they're going to use NoSQL, or SQL, or flat files, or whatever storage system because that's "company policy" or because some "architect" was in love with that particular technology or product.

      Woe betide anyone who lets the buzzword mafia decide the course of their project, for they are doomed to expensive failure in the vast majority of cases.

      --
      I do not fail; I succeed at finding out what does not work.
    4. Re:Well, it's about time... by Darinbob · · Score: 1

      We're being asked to create a time machine. The physics for this does not yet exist. Execs tell us we have 12 months and they're already negotiating with a customer on this. Whoops it won't get done, no matter how many meetings we hold to discuss why we haven't achieved a scientific breakthrough yet.

      It's extreme, but there are real life roadblocks that you can't overcome and execs can never understand this (they don't even understand how their own products work). 9 months late on a project I was working on part time, most of that delay was due entirely to a partner being slow. Waited 6 months once for legal to finish up a NDA agreement so I could get access to source code (despite my 6 month bonus/goals being all tied up in that). I have hardware thrown over the wall at me that won't work right. Or developing using a chip that's still in beta, with tools that don't work, and third party support that take weeks or months to get questions answered. The schedule is planned before the project is fully defined, we were told we had to guess what tasks were needed and how long each task would take despite no one on the team ever having done something similar, the majority of those tasks changed or were dropped, some of the already too small team left the company along the way, etc.

      I was at once place that was the very best at estimating times. I was surprised at how detailed they got everything with all the parts showing up at the right time. But even then they had several releases where features were dropped at the last minute so the release manager could proclaim "we're on time!"

      If you can predict with certainty how long something will take on the first week of a project, then you're probably doing something short and simple, your certainty isn't matching reality, or you're in the management track.

    5. Re:Well, it's about time... by Anonymous Coward · · Score: 0

      And sales makes the sales. They get their commission, whether the sale is successfully delivered or not, whether what they promised to get the sale closed is possible or not. I hate sales at times.

    6. Re:Well, it's about time... by tompaulco · · Score: 1

      And sales makes the sales. They get their commission, whether the sale is successfully delivered or not, whether what they promised to get the sale closed is possible or not. I hate sales at times.

      I don't understand why they don't take the money out of salespeoples pockets when they sell features that don't exist instead of the developers having to foot the bill with unpaid overtime. They should pay the developers for their extra time and deduct the cost from the salesperson's commission.

      --
      If you are not allowed to question your government then the government has answered your question.
    7. Re:Well, it's about time... by kaladorn · · Score: 1

      Accountability can kind of be built into Agile development by the way in which features for sprints are assigned and then results and velocity are tracked at the granular level. Of course, this depends on the how the Agile is attempted. I've seen it done in ways that didn't couple the product closely to the business requirements leading to wasted effort and inefficiency too.

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    8. Re:Well, it's about time... by kaladorn · · Score: 1

      Where I worked for, our rule was: We deliver on time. We deliver major features for the iteration. Others are negotiable and can be dropped or shifted to the next. This kind of strategy allowed us to develop projects of 18-20 iterations of 3 weeks each and be major feature complete and stable at the end while having delivered working code every 3 weeks to the client so they could start seeing progress and testing and writing manuals and so forth.

      On time delivery of an iteration (and repeatedly doing so) gives a customer confidence in your ability. Do this a few times then if you hit a big snag, you've got some cred in the client bank and can negotiate for a feature shift or a partial implementation in an iteration.

      When you don't deliver software frequently and regularly, you can get to the end of the project and the customer can shelve the excellently functioning product for some trivial reason (I have seen it happen - insane, but customers make choices like that). Deliver early and often and the customer's issues get identified early (good communication also required) and handled.

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    9. Re:Well, it's about time... by Darinbob · · Score: 1

      Right. But I'm on a brand new product. It doesn't exist yet. There are no customers. The internal requirements being driven from outside of engineering keep fluctuating as they try to identify potential customers and guess what they want. But there's no guarantee that the end goal is even achievable, the parts being relied upon don't do what their marketing claim for example.

      Even if it's just a feature added to an existing product, I have seen cases where there is just not enough evidence at the start to indicate whether the feature is even feasible much less how long it will take. Such as, will it fit in the remaining memory or will we have to wait for a next generation hardware platform? That's why it's called R&D - you start with the Research and then later the Development. But there are places that start with the D instead, and only occasionally get around to the R.

      But it's been a while since I've worked anywhere where customers were so closely tied to requirements. The releases and products are usually intended for many or all customers. Though I did work at one place a long time ago when every release was used only by one customer, and everything felt random and support was a nightmare. Never want to go back to that sort of environment.

  4. Just stop by Anonymous Coward · · Score: 5, Insightful

    No, hashtags are not movements. If you think so, you either have no clue what a movement is or no clue what a hashtag is, and I'm guessing it's the former. Talking about things on Twitter is talking and that's it. It's not some kind of political action.

    1. Re:Just stop by Anonymous Coward · · Score: 0

      Well it is and it isn't. There appears to be a real debate, but it's clearly not among anybody of consequence. Just like another hashtag in recent memory that spawns militancy among neckbeards everywhere. I'm pretty sure 99% of people, including 100% of anyone that doesn't live in their parents' basement, don't care about what these people say. That doesn't mean it isn't a movement.

    2. Re:Just stop by Anonymous Coward · · Score: 0

      Movement? Debate? Does it matter?

      I think it's interesting.

      Shame it's on twitter though, not a lot of depth in 160 characters.

    3. Re:Just stop by Anonymous Coward · · Score: 1

      They're bowel movements.

    4. Re:Just stop by PopeRatzo · · Score: 0

      That doesn't mean it isn't a movement.

      Like the movement I had at about 7:30am.

      --
      You are welcome on my lawn.
    5. Re:Just stop by Tablizer · · Score: 2

      No, hashtags are not movements.

      If you eat a lot of Chex Mix, your movements will look like hashtags.

    6. Re:Just stop by Dahamma · · Score: 1

      If it's anything like Twitter movements, then you should really take some Immodium.

    7. Re:Just stop by Darinbob · · Score: 1

      It's Twitter. They could allow 160MB of characters and still not have any depth.

    8. Re:Just stop by Anonymous Coward · · Score: 0

      I prefer the Twitter shitstorms to the real life ones.

    9. Re:Just stop by gl4ss · · Score: 1

      that's like saying that this message thread is a movement.

      well, if enough people hop on the thread -and do something- it is a movement.

      --
      world was created 5 seconds before this post as it is.
    10. Re:Just stop by Anonymous Coward · · Score: 0

      Please join us in our new movement:
      #HashTagsAreNotMovements

    11. Re:Just stop by angel'o'sphere · · Score: 1

      It becomes political when the amount of people is high enough.
      As it is "making news" I guess it is a high enough involvement of people and hence: political and hence: a movement.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    12. Re:Just stop by tompaulco · · Score: 1

      Do they not see the irony of arguing about anything remotely technical on twitter? That's like locking the barn door after the horse has run off.

      --
      If you are not allowed to question your government then the government has answered your question.
    13. Re:Just stop by Anonymous Coward · · Score: 0

      Best. Comment. Ever.

    14. Re:Just stop by Anonymous Coward · · Score: 0

      Not many comments make me laugh out loud, but this one did it. Nice!

  5. My rule of thumb by Trikoloko · · Score: 1

    3-5x the initial estimate. If the team is good.

    --
    My cellphone ringtone is a ring tone.
    1. Re:My rule of thumb by phantomfive · · Score: 1

      How accurate does that method tend to be?

      --
      "First they came for the slanderers and i said nothing."
    2. Re:My rule of thumb by Anonymous Coward · · Score: 0

      Once he gives you the estimate, you'll need to cut it by 3-5x.

    3. Re:My rule of thumb by swb · · Score: 1

      A method's accuracy is less important than the persuasiveness of its arguments about why it was inaccurate.

    4. Re:My rule of thumb by phantomfive · · Score: 1

      A method's accuracy is less important than the persuasiveness of its arguments about why it was inaccurate.

      In other words, "how can I take this failed estimate and blame it on someone else?" lol
      In that case, your company has serious problems, of which estimates are the smallest.

      --
      "First they came for the slanderers and i said nothing."
    5. Re:My rule of thumb by Maxo-Texas · · Score: 1

      I measured the over under for individual developers. Within a few projects I could tell who would meet their estimate, who was padding their estimate, and most importantly the ones who never met their estimate.

      It didn't matter how cool or neat the work was. What mattered was a predictable schedule. Corporate minded the padders a lot less than the ones who missed estimates or even the ones who made their estimates 90% of the time but missed it 10% of the time.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    6. Re:My rule of thumb by Ash+Vince · · Score: 1

      3-5x the initial estimate. If the team is good.

      Then your estimates are crap. You should multiply them by 4 then they will be at least in the right ballpark.

      --
      I dont read /. to RTFA, I read /. to offend people in ignorance.
  6. I know the science by Anonymous Coward · · Score: 0

    It's my initial estimate times three. Always right.

  7. We have this already; it's called agile by Anonymous Coward · · Score: 2, Insightful

    We have this already; it's called agile. Forget about the scrum and the planning meetings, they're get emphasized by shitty teams and PHBs because they're something people are used to, namely meetings, and they're easy to do. They're not required and arguably the least important aspects of agile.

    The point of agile has always been:
    1) Figure out what the most important feature you need to do next.
    2) Build it and make sure it's rock solid.
    3) Keep repeating #1 and #2 until the client is satisfied.

    You add on top of that the minimum number of things (which can include standups and planning meetings and even, (gasp) documentation, if it's helpful to the implementation team, not the PHBs) to make the process work. A key point is there are no hard ship dates; you keep building until you're done.

    1. Re:We have this already; it's called agile by Entrope · · Score: 1

      You forgot that sometimes you need to stop when the client runs out of money, and agilistas mostly strive for that endpoint rather than shipping a completed work.

    2. Re:We have this already; it's called agile by Anonymous Coward · · Score: 0

      And here lies the problem with Agile. Clients expect a hard ship date, because they don't like paying indefinitely until the project is done.

      I guess the solution is we need to only perform work for clients that are also agile (and somehow, can handle continuously paying for something until the "when it's done" time comes), and reject all other clients. They'll learn eventually, maybe?

    3. Re: We have this already; it's called agile by Anonymous Coward · · Score: 0

      No, agility involves taking a large, seemingly intractable thing and breaking it down into parts small enough for the brain of the average programmer.

    4. Re:We have this already; it's called agile by Anonymous Coward · · Score: 0

      You forgot that sometimes you need to stop when the client runs out of money, and agilistas mostly strive for that endpoint rather than shipping a completed work.

      You forgot about project cancellations caused by management shuffles; that's also a good way to avoid having to deliver anything. Been there, done that. I've seen it all, kid.

      You might be satisfied delivering buggy software and failed projects "on time" along with the other losers but when the public gets tired of having to deal with the headline software bug or security breach of the day (and that point is Real Soon Now(tm)) legislation and other forces are going to put an end to favoring hard deadlines based on BS estimates rather than actual quality and safety.

    5. Re:We have this already; it's called agile by turbidostato · · Score: 1

      "You forgot that sometimes you need to stop when the client runs out of money"

      Agile focus on each deliverable being, well, deriverable: when the customer runs out of money it should get a fully viable product.

      "agilistas mostly strive for that endpoint rather than shipping a completed work."

      Another tenet of agilism is that it is a thing of the customer as much as it is a thing of developers. If the customer doesn't make its part is no surprise it ends up with burned fingers.

    6. Re: We have this already; it's called agile by Anonymous Coward · · Score: 0

      But if a part can't be broken down into something that can be completed, tested, and verified by a stakeholder in a single sprint then Agile requires that you not do it. We have promised features to customers, but our certified scrum master won't allow us to work on them since they require more than one sprint. Agile is going to put my company out of business.

    7. Re: We have this already; it's called agile by Anonymous Coward · · Score: 0

      I love how Agile requires that you can't do work. Dow the past fifteen months I've been getting paid to do nothing while our certified scrum master fights to find something that can be done in a single sprint and verified by stakeholders. There is literally nothing I can do on our project that meets those requirements so I do nothing.

    8. Re: We have this already; it's called agile by Anonymous Coward · · Score: 0

      Wait what? Your scrum master is an idiot. That's not what agile/scrum says at all. It just says if it's too big for a sprint you need to split it into smaller things that are deliverable. I've yet to find *any* story where someone has said it can't be split that we haven't been able to break down into smaller pieces. The methodology also has nothing against timeboxed spikes etc. if you don't know enough yet to do something technically difficult to enable you to better break down and estimate the larger task.

    9. Re: We have this already; it's called agile by Anonymous Coward · · Score: 0

      Some of us work on complicated things that can't be done in a single sprint that can be verified by a stakeholder. Agile demands that those tasks are not allowed to be worked on. The reporting my company needs to do cannot be delivered in a single sprint so our certified scrum master will not allow us to work on it despite the fact that we have promised customers it will be delivered by the end of next month.

    10. Re: We have this already; it's called agile by Anonymous Coward · · Score: 0

      You're ignoring the Agile requirement that if something can't be completed by a dev, pass QA, and be accepted by a stakeholder in a single sprint that Agile doesn't allow you to do it. I work on complicated financial modeling and most of the tasks management has wanted me to work on the past seven years has been blocked by our scrum master. It's great getting paid to not work. Agile is a great process heavy paradigm for the lazy.

    11. Re:We have this already; it's called agile by Entrope · · Score: 1

      No, Agile focuses on each sprint ending in an output that does something -- ideally something sensible, but not necessarily something useful. If you're replacing an existing process or product, it is not useful until it becomes more functional or efficient than what it replaces, and that will probably take many sprints.

      Every time I hear agilistas talk about their tenets, I am reminded of Zed A. Shaw's rebuttal to them, and how they don't have effective counter-arguments to his "what they mean" interpretations.

    12. Re:We have this already; it's called agile by Entrope · · Score: 1

      I didn't forget about cancellations due to management shuffles. Agile doesn't help there. If the customer is happy with what they have, the original AC post claimed work would stop; if the customer isn't happy, the project still gets canceled.

      When I make estimates for my own work, or for people who have worked for me long enough, I can produce pretty accurate estimates that depend both on what the scope of work is and how rigorous the customer wants verification to be. I can't control what higher-level management does to those estimates, or whether the customer is happy with the estimate or with getting what they asked for (plus negotiated changes for). If the customer wants an agile process, I would advise them that it's a good way to look like you're doing something without necessarily making much progress. Storyboards and mock-ups are usually a much more cost- and schedule-efficient way to clarify goals that are not sufficiently clear.

    13. Re: We have this already; it's called agile by Dragonslicer · · Score: 1

      No, agility involves taking a large, seemingly intractable thing and breaking it down into parts small enough for the brain of the average programmer.

      Back before the Second Comin- I mean, invention of the Agile methodology- we called that functional decomposition, and it was assumed that you pretty much always did it.

    14. Re: We have this already; it's called agile by Anonymous Coward · · Score: 0

      Exactly! But we no longer teach computer science; we teach information technology.

    15. Re: We have this already; it's called agile by Anonymous Coward · · Score: 0

      Some of us work on complicated things that can't be done in a single sprint that can be verified by a stakeholder. Agile demands that those tasks are not allowed to be worked on. The reporting my company needs to do cannot be delivered in a single sprint so our certified scrum master will not allow us to work on it despite the fact that we have promised customers it will be delivered by the end of next month.

      You are either trolling or incompetent.

      There has to be some way to break this "reporting" down into parts that could be completed in one sprint. If you can't see it, hire a scrum consultant. You'll probably get the hang of it once you see a few examples from your own project broken up by an experienced practitioner.

    16. Re:We have this already; it's called agile by turbidostato · · Score: 1

      "No, Agile focuses on each sprint ending in an output that does something -- ideally something sensible, but not necessarily something useful."

      Priorities are set by the customer. It's up to him to decide what's the most useful output as of today.

      "If you're replacing an existing process or product, it is not useful until it becomes more functional or efficient than what it replaces"

      For a man with a hammer... If you are replacing an existing process or product you shouldn't be using anything "agile" since there's no need for customer involvement and (iterative/decomposed) waterfall is demonstrably more efficient. But it's no wonder they use it, since Sturgeon's Revelation applies here as good as everywhere else: probably as much as 90% of "agilism" goes not beyond cargo cult.

    17. Re: We have this already; it's called agile by Cederic · · Score: 1

      Sorry, you expect us to treat your comments with any credibility when you conflate inept Scrum with "Agile"?

      With twats like you on the team no wonder there are issues.

    18. Re: We have this already; it's called agile by Anonymous Coward · · Score: 0

      Scrum wasn't mentioned in his comment. You're creating a strawman to knock down. How about addressing the issue instead?

    19. Re:We have this already; it's called agile by Entrope · · Score: 1

      If I'm replacing a warehouse full of fingerprints or photographs, and want a computerized database that will do preliminary matches, should I avoid agile? If I want a messaging system that will replace (in whole or in part) walking down the hall for a chat, inter-office memos, or email, I should avoid agile? If those are not good cases for agile, exactly what is agile good for?

    20. Re:We have this already; it's called agile by Entrope · · Score: 1

      Also, your claim that "Priorities are set by the customer. It's up to him to decide what's the most useful output as of today." is a total capitulation to Zed A. Shaw's claim that that particular agile tenet is really about valuing "Instability and plausible deniability".

    21. Re:We have this already; it's called agile by turbidostato · · Score: 1

      "Also, your claim that "Priorities are set by the customer. It's up to him to decide what's the most useful output as of today." is a total capitulation to Zed A. Shaw's claim that that particular agile tenet is really about valuing "Instability and plausible deniability"."

      Probably yes, if you think about it as an "us versus them" scenario. If you think about it as a "we" scenario, giving the owner of the service the saying on what should go functionally-wise and what shouldn't is nothing but aligning authority and responsibility.

      The part of instability is nothing but the recognition that the world the service is meant to go to is unstable.

      But if you are going with the "us versus them" scenario, you should remember that every time you put something in written you are playing the "plausible deniability" card so Shaw's cynical claim is empty of value: full specs before writting a single line of code? What for? Maybe in order for you to be able to say "yes, there's no door in this house: show me were did you ask for a door". No specs? Maybe in order to deny that something was ever said. Adapting specs as the problem realm's knowledge grows? Maybe in order to deflect blame after the fourth change of priorities...

    22. Re:We have this already; it's called agile by turbidostato · · Score: 1

      "If I'm replacing a warehouse full of fingerprints or photographs, and want a computerized database that will do preliminary matches, should I avoid agile?"

      Why would you need it? You already have a clear understandment of both process and inputs/outputs: you just need to plan, execute and deliver it.

      "If I want a messaging system that will replace (in whole or in part) walking down the hall for a chat, inter-office memos, or email, I should avoid agile?"

      Just the same as above: you already know inputs, outputs and process, no need for a special customer involvement along the building process. Even more: the two processes you talk about (and so many others more or less similar) can't benefit of an iterative delivery because, being the process already in place, your customer has no advantage in migrating to the new one till full feature parity is achieved. You may claim, for instance in the second case, your new development could only partially substitute the old one but that only means you were wrong about your project's scope: it was not a single project but one per isolated (sub)process and for this to be done, you'd better make a good forefront analysis -against the very root of agile.

      In both cases a methodology alike to (maybe iterative) waterfall will add minimal cruft and bureaucracy and will deliver in minimal time and cost.

      "If those are not good cases for agile, exactly what is agile good for?"

      Agile is good for cases were the problem realm is unknown or ill defined even for the customer (or product owner) and/or relative value of outputs are unknown. There are a lot of projects within this definition, but there are a lot others that are not.

    23. Re:We have this already; it's called agile by Entrope · · Score: 1

      "Why would you need it? You already have a clear understandment of both process and inputs/outputs: you just need to plan, execute and deliver it."

      Putting a large database in a computer, and computerizing very mental tasks like matching photographs or fingerprints, are not always well understood. The inputs are the original warehouse and human workers; the output is a computerized database that hopefully allows people to do work much more quickly or accurately or both. It verges on frivolous to say that the process is well-understood. Similarly for replacing a communication mechanism with a computerized version: The only reason to replace it is to improve on it in some fashion, and that's where the goals are usually unclear.

      It seems to me that your defining-down of when agile is useful is a capitulation to Zed A. Shaw's restatement of the value of "customer collaboration" to really mean that agilistas value "bleeding clients dry" -- because you are restricting agile to cases where nobody really knows what is a good idea, making an excuse to run down tons of blind alleys by writing throwaway code in pursuit of understanding a problem, when there are vastly more productive ways to understand the goals.

    24. Re:We have this already; it's called agile by turbidostato · · Score: 1

      "Putting a large database in a computer, and computerizing very mental tasks like matching photographs or fingerprints, are not always well understood."

      You are changing the target. The original process *is* well understood, to the point of it being done daily by the human operators. Maybe the problem is that you (the provider) don't know how to do it on a computer: that's not your customer's problem; you sold him you knew how to do it, right?

      "The inputs are the original warehouse and human workers; the output is a computerized database that hopefully allows people to do work much more quickly or accurately or both."

      Wrong! Those are your deliverables. The input are the fingerprints and the output is whatever the human operator do with them. And you already have that. You are conflating the service you sold your customer (a computer program that do this or that) with the process you are going to substitute (looking at pictures or fingerprints to find this or that). That's wrong, very wrong: *your* R&D is not your customer's concern. The problem here is that your customer perfectly knows what he's doing, but it is you the one that doesn't know how to do his job (with a computer). That's what Subject Matter Experts are for, not Agilism. And again, you already have all the info you need: the human operator's output: you (internally) work with it till your program is as good or better at doing whatever the human operator is doing and you will use the human operator's output to test it.

      Point it case: Papanicolau test. Do you know what is it? In case you don't, is a method of cervical screening used to detect potentially pre-cancerous and cancerous processes in the cervix (opening of the uterus or womb). The human operator basically looks at a microscope field and tells if he sees cancer cells or not. It's been automated. Direct users's input? Zero. You just take thousands of past photographs and their operator's associated results and you replicate them with a program. After that, you do the same in parallel to the operator and see what happens. Once you achieve the expected results, you present your product to your customer.

      "It seems to me that your defining-down of when agile is useful is a capitulation to Zed A. Shaw's restatement of the value of "customer collaboration" to really mean that agilistas value "bleeding clients dry""

      It seems to me that you already made your mind for whatever reasons (maybe you are certified on a competing process and you don't want your investment to lose value -I still didn't here a word from you on what would be a process better than the one you are despising) and you just repeat your tantrum no matter if it makes sense or not. But still, it can't be "bleeding clients dry" when the client can get out every two weeks with something of value for him. You yourself could very well being the customer on an agile project: would you allow your provider to bleed you out? Probably not since by the end of the second sprint you would tell your provider "you don't know what are you doing: you are fired starting now". Compare that with learning that your provider doesn't know what he's doing anyways, only after a full year is payed and you see the full results being crap.

    25. Re:We have this already; it's called agile by Entrope · · Score: 1

      "you sold him you knew how to do it, right?"

      I never said that. You introduced the software team's prior mastery of the problem domain as a reason that agile was not appropriate to the problem. I didn't assume that -- I was thinking that both sides would have the opinion "we can just ask the human workers how they match these images", not realizing that this is a hard AI problem, or that there is still argument over whether a computer system should try to find one match or just produce a relatively short list of close matches.

      I have been through training on almost a dozen different quality management approaches and systems, not all of them software- or even R&D-focused. The one thing I have learned is that there is not one process that is right for all software organizations or projects. I tend to think that there are much better ways to handle uncertainty and change risk than agile. For example, I expect storyboards and mock-ups to be more cost-effective ways to clarify the "known unknowns" than agile's sprint methodology -- which basically says to put something in code, and react to errors. I think both agile and other methodologies require good architectural decisions to avoid costly rework when a requirement unpredictably changes (an "unknown unknown"). Keeping both sides in the loop when assumptions are made or goals change is not an agile-specific process -- it is common sense and basic relationship management.

      So that is why I asked you what kind of project agile is good for, and your answer seems to be that it is only good for a kind of blue-sky research that hardly ever happens. Most leading proponents of agile claim that it is good for a much wider problem domain, so I conclude that either you or they are wrong -- and if they are wrong, that speaks loudly to the agile approach itself being wrong.

  8. The real problem by wonderboss · · Score: 5, Insightful

    is giving estimates without a detailed design.

    Imagine this interaction:
    Customer: I want you to build me a house.
    Contractor: Ok, How many square feet?
    Customer: I don't know. When can you start?
    Contractor: We can't start until we have plans drawn up.
    Customer: I don't have time for that. How much will it cost?
    Contractor: I can give you a rough idea once we've nailed down the square footage, number of stories, type of foundation, and some other details.
    Customer: You are wasting my time with all these questions.
    Contractor: Go Away.

    Yet software developers agree to this situation, or are forced to agree to it, all the time.

    --
    more cowbell
    1. Re:The real problem by NotInHere · · Score: 2

      And building a house is a fairly simple task compared to writing some programs. You should better compare software to digging tunnels in the mountains. You never know what type of stone is ahead, and if you reach sand, you have to cool it so that it's stable etc.
      You can make small test drills in order to find that out, but you won't know it for the complete length of the tunnel. And if management now demands that the tunnel has to be larger, it means alot of effort, the longer your tunnel already is.

    2. Re:The real problem by phantomfive · · Score: 4, Interesting

      Robert Martin recently wrote a book called Clean Coders which discusses exactly how to deal with that problem.

      Essentially, he says if you want people to treat you like a professional, then you need to act like a professional. I highly recommend that book, it's good.

      Refusing to do estimates is not acting like a professional.

      --
      "First they came for the slanderers and i said nothing."
    3. Re:The real problem by khasim · · Score: 1

      Isn't that known as "gathering requirements"?

      It can be difficult and they can change and they will probably be incomplete ... but as you get more experience you should be better prepared to deal with those issues.

      I've seen a company build a new production center and not know where the people would be who would be operating it. Some of it was backwards. We ended up putting down tape to delineate the different areas so they could be painted. So yeah, stupidity is rampant.

      But the contractors all got paid. They didn't care whether what they were delivering met the customers actual needs (that the customer could not identify) as long as what they delivered met the specs and was up to code.

      Software should, for the most part, be the same way. I'd guess that less than 1% of the programmers out there are really doing anything new.

    4. Re:The real problem by Anonymous Coward · · Score: 0

      Even more fun - there are no constants. Writing software that installs on a machine you do not control can sometimes be like designing a building which will be erected in a location where gravity might suddenly reverse or the atmosphere might suddenly become a thick, viscous liquid, or the steel in your I-beams night suddenly turn into marshmallow.

    5. Re:The real problem by Anonymous Coward · · Score: 0

      Customer: I want you to build me a house.
      Contractor: Ok?
      Customer: How long will it take
      Contractor: I don't know.
      Customer: How Much will it cost?.

      No Project starts with nothing.
      Without Time and Budget how could any project get approved.
      Contractor can give you a ball park based on past work.

      Time and budget are usualy wrong, but with nothing how could you start any project.
      And for the low ball bids to get the job, That is just fraud.

    6. Re:The real problem by Anonymous Coward · · Score: 0

      Just do your job, wonderfag.

    7. Re:The real problem by Anonymous Coward · · Score: 0

      You are completely missing the point. In your story, the contractors that got paid *had* specs. If you don't have specs, how do you get paid? In the GP, it was the other way around - contractor is asking for specs, and customer refuses to give them, thus there is no estimate. Contractors that accept those circumstances do not get paid.

      The only time you can provide an estimate in those conditions is if you are selling a pre-packaged product.

      And yeah, it is pretty common that customers don't know what they want, and the less they communicate what they want, the farther the software ends up being from their goal. If you are a customer and you know you really don't know what you want, but you want it, and you want it bad, make sure you find a developer with a lot of experience in your industry. There's a chance they might be able to cover some bases you haven't thought of, it's not going to be everything, but hopefully enough to get you started down the path of really knowing what you want. Pick any random dev, and you will need to spend some serious time with them going over use cases.

    8. Re:The real problem by Anonymous Coward · · Score: 0

      Any time you are putting an estimate on the table without sensible requirements behind it, you are gambling.

      Robert Martin is also a huge fan of Agile. Customers that buy into Agile will buy into a process where they will pay for the scope, as it gets worked out. Those customers are exceedingly rare, although Robert Martin probably either attracts them or is able to preach the Agile extremely well. In my experience, most customers still want to know upfront how much they are going to invest so they can do ROI calculations and whatnot. It is also my opinion that preaching is just one step up from lying, and I think it's highly unprofessional to do that.

      Professional developers develop relationships with their clients. You can only do that when both sides are interested in a relationship. If you have a customer that just wants blind estimates, they don't want a relationship, they just want a commodity product as cheap as they can get it - this job will be a gamble and you will not be treated any better on the next job. Move on, there are plenty of customers looking for developer partners out there, you can leave this customer to the outsourcing houses and maybe they will come back the following year with a better understanding of how business relationships work.

    9. Re:The real problem by phantomfive · · Score: 1

      Any time you are putting an estimate on the table without sensible requirements behind it, you are gambling.

      Then get the sensible requirements. Work with the customer to figure out what they want and need (and maybe also what they think they want).
      That is part of being professional.

      --
      "First they came for the slanderers and i said nothing."
    10. Re:The real problem by Anonymous Coward · · Score: 0

      And here is the correct way to respond to this situation:

      Contractor: You haven't given me the information I need, so I've filled in the details. Here is your estimate for a two story house with three bedrooms and two and a half baths. If you change these parameters, the estimate will be inaccurate. [Gives estimate for parameters he has defined.]
      Customer: That's no good, I want a ranch with two bedrooms.
      Contractor: Okay. [Gives updated estimate.]

    11. Re:The real problem by Noah+Haders · · Score: 2

      You should better compare software to digging tunnels in the mountains. You never know what type of stone is ahead, and if you reach sand, you have to cool it so that it's stable etc.

      and yet tunnel diggers manage to work on-time and on-budget over and over and over again...

    12. Re:The real problem by plopez · · Score: 1

      Part of the difference is that a house is a tangible object. You can see it, feel it, smell it, etc. Software is not, it is largely an intellectual excesses. That makes it hard even for good developers. I have even used a house metaphor at times when talking to customers as in "you're asking us to tile the second floor bathroom before we have the foundation in place".

      --
      putting the 'B' in LGBTQ+
    13. Re:The real problem by Anonymous Coward · · Score: 1

      You should better compare software to digging tunnels in the mountains. You never know what type of stone is ahead, and if you reach sand, you have to cool it so that it's stable etc.

      and yet tunnel diggers manage to work on-time and on-budget over and over and over again...

      Name one recent instance where that has happened.

    14. Re:The real problem by dougg76 · · Score: 1

      Actually, I have heard of many digs going over. I even have a local example:
      http://www.washingtonpost.com/...

      --
      I laugh at inappropriate times.
    15. Re:The real problem by Anonymous Coward · · Score: 0

      Perhaps there should be the Estimator in that discussion, that is an Estimator who never the Contractor and only measures the work products without meeting the Contractor personally. In the construction industry in my country, a standard unit costs are allocated in the most common construction types and the person or organization who does the cost estimation is rarely the same who does the architectural or engineering design, or even project management of the project.

    16. Re:The real problem by Dahamma · · Score: 1

      And building a house is a fairly simple task compared to writing some programs.

      And writing a program is a fairly simple task compared to building some houses.

      That was the OP's whole POINT. If you have clear and complete architectural and engineering plans, both can usually be estimated with reasonable accuracy. If you don't, then neither can.

    17. Re:The real problem by Darinbob · · Score: 1

      Replace customer with product/project manager and that sounds right too.

      But reality need not intrude on the process. I remember something I worked on that got a product of the year award based solely upon a mock-up when the real product wasn't even functional.

    18. Re:The real problem by Darinbob · · Score: 1

      I think people that are good at estimates are doing the same things over and over. Such as adding a small feature to an existing product. But designing and building a new product from scratch, you just can't estimate that.

      A: "How long will it take to write the driver?"
      B: "I don't know, we don't have documentation yet."
      A: "Well make a wild ass guess then, I need a number to fill in."
      B: "Um, 6 months."
      A: "Stop sandbagging."
      B: "Ok, six hours."
      A: "Really, that fast?"

    19. Re:The real problem by Darinbob · · Score: 1

      But they don't. Seriously, they don't.

    20. Re:The real problem by Anonymous Coward · · Score: 0

      You should better compare software to digging tunnels in the mountains. You never know what type of stone is ahead, and if you reach sand, you have to cool it so that it's stable etc.

      and yet tunnel diggers manage to work on-time and on-budget over and over and over again...

      Name one recent instance where that has happened.

      How do you cite a project that is fulfilled on time? That isn't news. People want to read about fuckups and bitch about it. Nobody is going to publish the headline "Tunnel project plan implemented properly. Everything done on time and in the manner required."

    21. Re:The real problem by Anonymous Coward · · Score: 0

      I provide estimates for people who have a track record of not moving the target and expecting the estimate to stay fixed.

    22. Re:The real problem by 31eq · · Score: 1

      No, an estimate isn't a gamble. It only becomes a gamble if you treat it as a target or a promise, and commit resources to it. The real problem may be not allowing an estimate to change as more information comes in.

      I don't know how long it takes to build the average house, but I'd guess between a week and a year. I'm sure people who build them all the time have a pretty good idea (along with the uncertainties) assuming some implicit context like where you're having the conversation. If you expect a mansion in the desert on a mountain to take the same amount of time, you're an idiot. Of course the estimate will change if there are unusual requirements. Another problem with software engineering is that it's full of idiots like this, so we get frightened of providing the estimate.

    23. Re:The real problem by Anonymous Coward · · Score: 0

      I think you missed the point. Regardless of whether you want it to be, and how much effort you put into avoiding the estimate becoming, a gamble, it will become a gamble. It's because customers are these messy things called people who cannot be commanded like computers and who pretty much consider themselves your boss.

    24. Re:The real problem by Anonymous Coward · · Score: 0

      You are basically saying most developers don't know what they are doing and are making it up as they go.

      They don't know how to push back and ask the right questions, as the contractor who knows what he is doing does.

    25. Re:The real problem by Anonymous Coward · · Score: 0

      I think the hidden message is many developers flooding the industry don't know what they are doing to the level where I would consider them on par with a professional contractor.

      Hence they don't want to provide estimates and feel any pressure. The next wave of workers are sensitive little snow-flakes that can't take adversity and turn it into success. Give them lemons and they will complain/cry/quit/move instead of making lemonade.

    26. Re:The real problem by Anonymous Coward · · Score: 0

      The proper sequence is

      A: "How long"
      B: "I don't know, need docs"
      A: "Okay, I will get the docs, once you have those how long do you need to review and come up with an estimate" (We call this a date for a date)
      B: "Umm, get me the docs by Friday and I will have an estimate in 2 weeks"
      A: "Sounds good, don't let me down. I need to know by then so we can evaluate the feasibility of this thing we are doing"
      B: "Don't worry, I've done some driver work before and usually grasp the concept within a week, the extra week is to write up my plan and estimate"
      A: "Man, I love working with Professionals who know how to communicate and use critical thinking"

    27. Re:The real problem by kaladorn · · Score: 1

      Sales people and execs agree, software developers simply try to invent tomorrow's answer today for a deadline yesterday. Often they end up inventing a duck billed platypus with the intention that it function in the vacuum of space (to wit, not a very successful design or outcome).

      I should know. I've built that damn platypus against good sense but under orders.

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    28. Re:The real problem by kaladorn · · Score: 1

      Mostly not.

      For instance, Ottawa was having a train tunnel put through downtown with a limestone geology. The company did test drills all along. Then they agreed to a fixed top end cost (the City forced that as they knew this could go badly). Along the way, sinkholes, collapses, and the predictably bad geology making things tough on the contractor.

      Most of these big projects either are so overpriced to begin with to cope with the massive uncertainties or they end up being so late and overbudget it isn't funny.

      The thing about the software world is in many cases, if you told the customer actually how much the thing the customer wants done and done right would cost, they'd give up at the start.

      Once they are $600K into a project, another $50K here or there (adding up possibly to another $200 or more) is absorbed with ill grace but follows the doctrine of sunk costs and not wanting to lose that investment so sending more money down the hole....

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    29. Re:The real problem by kaladorn · · Score: 1

      You don't watch many of the shows where people go into screwed up housing and repair things often done by professional contractors (a lot done by non-pros too, but that's an aside here). Even professionals get in over their head.

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    30. Re:The real problem by Anonymous Coward · · Score: 0

      You should better compare software to digging tunnels in the mountains. You never know what type of stone is ahead, and if you reach sand, you have to cool it so that it's stable etc.

      and yet tunnel diggers manage to work on-time and on-budget over and over and over again...

      Name one recent instance where that has happened.

      How do you cite a project that is fulfilled on time? That isn't news. People want to read about fuckups and bitch about it. Nobody is going to publish the headline "Tunnel project plan implemented properly. Everything done on time and in the manner required."

      Then the GGP shouldn't have claimed that tunnel diggers do it "over and over and over again".

      Regardless, any contractor building a major tunnel will absolutely be issuing press releases trumpeting their success, and those are google-able.

      For example, here's an airport expansion project done on time and budget:
      http://www.wspgroup.com/en/WSP-Canada/Who-we-are/In-the-media/Project-News/2014/Successfully-Completed-Fort-McMurrays-Airport-Expansion-and-Redevelopment--Site-Works-Project/
      "The project was completed on schedule and on budget with all existing airside facilities remaining open during the construction period."

      Maybe they're lying, but that's easily verifiable.

      But I have never, ever heard of a major tunnel project that completed on time OR on budget, much less both. Unless you think your kid's sand castle moat counts.

    31. Re:The real problem by Anonymous Coward · · Score: 0

      And building a house is a fairly simple task compared to writing some programs.

      Spoken like somebody who's never seen, much less built, a house. If programming doesn't work out for you, I bet you'd have a hell of a successful career as a PHB in the construction industry. "Building houses isn't hard, just... fucking nail some boards together, jesus!"

      Those tunnels? geological surveys, ground-penetrating radar, and core sampling are all really great ways of determining the composition of the rock you're digging through. Any reputable company trying to build a tunnel through a mountain is going to do all of these things as part of their planning.

    32. Re:The real problem by Dahamma · · Score: 1

      Same with ridiculous customers who don't know what they want. The OP made it sound like building a house never actually went like "build me a house, but I don't know what I want".

      There are plenty of examples of just that - in fact, more than you'd think, because by definition those people who ask someone else to build them a house want something custom (vs. developers building and then selling from pre-desgined models). Of course you have the extreme examples, where the house was basically in continuoous development (Winchester House, Hearst Castle, several of Frank Lloyd Wright's projects) for years.

      Not unlike a software customer who wants a huge project implemented, doesn't really know what they want, and are willing to keep paying over and over for delays (usually seems to be related to to the government, since they are the only large entity with "investors" who keep giving them mountains of money to waste on these projects...)

    33. Re:The real problem by Noah+Haders · · Score: 1

      Name one recent instance where that has happened.

      http://waterbriefing.org/home/...’s-lee-tunnel-completed-on-time-and-on-budget

      kiss my ass AC

    34. Re:The real problem by Anonymous Coward · · Score: 0

      Name one recent instance where that has happened.

      http://waterbriefing.org/home/...’s-lee-tunnel-completed-on-time-and-on-budget

      kiss my ass AC

      First off, defensive much? Why the profanity? Rhetorical question.

      Your justification is a 2014 link that expects the project to be on time and on budget when... it is completed the next year in 2015? Current estimates are already slipping into 2016.

      Where's the link that says the project IS accomplished, not WILL be? I spent a couple minutes looking for it, and couldn't find a non-speculative one.

      Meanwhile here's another link for you on your project:
      http://business-reporter.co.uk/2015/04/28/tunnel-vision-inside-londons-4-2-billion-super-sewer/
      "And the Lee Tunnel is just the first phase of the even more ambitious Thames Tideway Tunnel, a 25km tunnel that will handle sewage from Acton in west London through toAbbey Mills in the east. The Thames Tideway Tunnel will deal with the 34 most polluting overflow points along the Thames. Work on the £4.2billion project, known popularly as the London super sewer, starts in earnest in 2017 with engineers pulling the chain, so to speak, in 2023."

    35. Re:The real problem by Anonymous Coward · · Score: 0

      Hmm, three days and you still haven't found a SINGLE counter-example? As the AC points out, that "expected to be on time... next year... for this part..." doesn't really qualify...

  9. Not time consuming by phantomfive · · Score: 1

    One of the major complaints about estimates is that it "takes too long." Seriously, if estimations take any appreciable amount of time, you're doing them wrong.(unless you need to estimate some massive project, in which case you understand why estimates are needed).

    If you want to remove the "time sucks," get off slashdot, get off twitter. When I turn off the internet while working on difficult code, I literally get twice as much done. I've measured this several times (and you can tell from this comment how much I will get done today).

    --
    "First they came for the slanderers and i said nothing."
    1. Re:Not time consuming by Kjella · · Score: 1

      One of the major complaints about estimates is that it "takes too long." Seriously, if estimations take any appreciable amount of time, you're doing them wrong.(unless you need to estimate some massive project, in which case you understand why estimates are needed).

      Usually this is because you've already estimated it to the best of your ability but the powers above aren't happy with the uncertainty, where they harass you into giving a magic number or narrow little gap or to talk down your estimate until it's the number they're happy with. Or if you're really lucky get a litlte time for research/experimentation/prototyping but in practice it'd just be faster to start on the implementation, if you know this is a task that in practice will need to be done regardless. I've been in five-person meetings where we spend half an hour debating the schedule and estimates when in fact we'd have a better estimate with a head start on implementation by simply testing it out if key solutions are feasible. Unfortunately some people think that if you just have people work on an estimate long enough, it'll get better. It might work for a plumber who can probably enumerate every task down to the last bolt that needs tightening, but it rarely works in software development. Unless it's really a doer-job of adding one more field to a form just like all the existing fields.

      --
      Live today, because you never know what tomorrow brings
    2. Re:Not time consuming by phantomfive · · Score: 1

      Usually this is because you've already estimated it to the best of your ability but the powers above aren't happy with the uncertainty, where they harass you into giving a magic number or narrow little gap or to talk down your estimate until it's the number they're happy with.

      If someone makes an estimate for you, or forces you to make a lower estimate, then you have no obligation to meet that estimate.
      Be professional, and hit your estimates, but learn to let people know that things take time. These are soft skills.

      --
      "First they came for the slanderers and i said nothing."
    3. Re:Not time consuming by Anonymous Coward · · Score: 0

      If someone makes an estimate for you, or forces you to make a lower estimate, then you have no obligation to meet that estimate.

      Yes, you do. It's called keeping your job.

      You keep spouting newbie, "by-the-book" solutions which makes it clear that you've never actually been on a software project of any significant size.

    4. Re:Not time consuming by phantomfive · · Score: 3, Insightful

      If someone makes an estimate for you, or forces you to make a lower estimate, then you have no obligation to meet that estimate.

      Yes, you do. It's called keeping your job.

      If your job depends on you meeting impossible estimates, then you're not going to be in it very long, no matter how hard you try.

      --
      "First they came for the slanderers and i said nothing."
  10. Be honest by cowwoc2001 · · Score: 4, Interesting

    Estimates should be used to prioritize features (cost / benefit) as opposed to being used to set hard deadlines.

    Estimates should be one of "hours", "days", "weeks", or "months". It is fairly easy for most people to differentiate between features that take hours to implement vs weeks. In my experience, exact durations with multiples for padding have proven to be less useful / accurate than the former method.

    1. Re:Be honest by Anonymous Coward · · Score: 0

      > Estimates should be one of "hours", "days", "weeks", or "months"

      You mean like 1, 2, 3, 5, 8, 13, 20, 40, 100? In other words, Agile. Our board of directors dictated we use Agile, and they hired a project manager to enforce that decision. Before we started, we had over 5,500 user stories. That took us nine months with a total of 21 developers and QA people to score for a total of 15.75 man years. The product guys took a little over ten man years to write all of the user stories. We’re in Seattle so the average salary is a little over $100k per year for a total cost of the Agile estimation of about $2.6 million before we could write the first line of code. Estimating is expensive, and Agile makes it even more so. You have to break everything down into something that will fit in one sprint, and you must score it before you can start it. I was here for over a year before I got to write the first line of code. Thank you Agile.

    2. Re: Be honest by Anonymous Coward · · Score: 0

      Most people tend to underestimate how long it takes to create all of the user stories. Ten many years isn't too bad for a big project. You have to score and divide tasks in order to get them to fit in a single sprint so it can take a lot of iterations. Agile is just too process heavy and requires too much upfront planning.

    3. Re:Be honest by Anonymous Coward · · Score: 1

      have to break everything down into something that will fit in one sprint

      You forgot the Agile requirement to break everything down into something that a stakeholder can verify. Some tasks just can't be broken down that granular. For example, I'm working on ACA reporting now, and we can't display anything on the report until a ton of prerequisites are met. Some of them don't have a component that can be done in a single sprint that a product manager can verify so our certified scrum master won't let us start those tasks. ACA reporting is legally required at the end of this year, so we are going to lose most of our customers since there's no way for us to provide that feature. Agile is a literal suicide pact. My contract states that I get to keep all of my equipment if the company goes out of business so I'm riding this sinking ship out until the end to keep my 30" monitor and new MacBook Pro.

    4. Re: Be honest by Anonymous Coward · · Score: 0

      You have to break everything down into something that will fit in one sprint

      It didnâ(TM)t take long for my developers figure-out how to game that system. We do 13 points per sprint so if they score a user story as a 20 or higher then they donâ(TM)t have to do it, or at the very least donâ(TM)t have to do it until the story is rewritten for the next sprint planning meeting two weeks later. Our board hired a certified scrotum master that works directly for them so I canâ(TM)t go behind his back and make people work on those tasks. I work for a company that does payroll so we have a hard deadline of Jan 1. At this point, thereâ(TM)s no way for us to finish in time.

    5. Re: Be honest by Anonymous Coward · · Score: 2, Insightful

      > Agile is a literal suicide pact.

      To be fair, any process can be when the process is considered more important than actually getting things done, but with Agile it seems to happen more often than not.

    6. Re: Be honest by Anonymous Coward · · Score: 0

      What the hell /.. I entered valid Unicode, but my post is a screwed up mess. My text looked correct in the textarea.

    7. Re:Be honest by turbidostato · · Score: 1

      "Agile is a literal suicide pact"

      In fact it can be so. Agile was meant to be people and results over processes, with a strong accent in empowering people. But then, what happens when you empower stupid people? "A literal suicide pact" sounds a good aproximation.

    8. Re:Be honest by Noah+Haders · · Score: 1

      wtf is a 'user story'. are those like comments?

    9. Re:Be honest by Anonymous Coward · · Score: 0

      There is no Agile requirement to do anything other than making working software. Agile would say right off - our process can't work for this lets agree to do something else (Individuals and interactions over processes and tools). I am a certified scrum master and even at the certification classes they highlighted that you have to be agile because at best Scrum is a starting point (and sadly its one what sells well with waterfall managers). At best you can say Scrum that ignores agile is a suicide pact.... and I agree that all processes that are so ridged that they favor the process over working software are a suicide pact.

    10. Re:Be honest by Anonymous Coward · · Score: 0

      More like a requirement:

      https://en.wikipedia.org/wiki/User_story

    11. Re:Be honest by Anonymous Coward · · Score: 0

      > There is no Agile requirement...

      Ahh, the no true Scotsman logical fallacy. So you claim by definition that if we're doing Agile and it isn't working, then we're not doing Agile? Nice circular logic there.

      Agile is just too heavy on processes and tools. We're spending six figures a year on Atlassian products. We're spending closer to seven figures if you also include the two certified scrum managers and two PMP and PMI-ACP (Project Management Institute - Agile Certified Practitioner) project managers. All four of those guys are pushing hard for more process and even more expensive tools.

    12. Re: Be honest by Anonymous Coward · · Score: 0

      Agile is like force. If it isn't working then you're not applying enough of it. See, by definition Agile always works. It's such a scam.

    13. Re:Be honest by Anonymous Coward · · Score: 0

      If you can't set hard deadlines, you can't line up marketing efforts to push them.

      This is what customers are after. Nothing less. Don't provide that, they will go to someone else, or you'll spend half your time talking about why they're paying you.

      This is also where agile fails. It's great for people who are doing the work, but terrible for anyone that is trying to get value out of what they're paying for. Lots of people need to be first to market, or hit government-mandated deadlines (health insurance OE periods, anyone?), to try and ignore deadlines as a factor. Just stop it.

    14. Re: Be honest by Anonymous Coward · · Score: 0

      There is no Agile requirement to do anything other than making working software.

      Wow, that is illogical. So Agile claims that if you fail then by definition you didn't use Agile. Sounds so much like Dogbert in a Dilbert cartoon.

    15. Re:Be honest by Xyrus · · Score: 1

      And how long do you think it takes and how many people are involved before the first shovel hits the ground on a major new construction project?

      --
      ~X~
    16. Re: Be honest by Anonymous Coward · · Score: 0

      No. He is saying that if you fail then by definition you didn't use Agile since making working software is a requirement of Agile. Agile can never fail.

    17. Re: Be honest by Anonymous Coward · · Score: 0

      > OE

      Open entollment is a great example of a hard deadline. I work for a benefits broker, and we will lose nearly all of our customers if we screwup OE. With all of the new complicated and not well-understood ACA requirements, my life, and that of my coworkers, has been hell the past six months. We haven't even started work on the hardest parts yet since they'll take more than one sprint and our main investor requires us to do Agile. We can't start on the hard part yet. It's getting so bad that almost a third of my coworkers have already quit. I should have started working on my resume the first time I heard our investor say Agile.

    18. Re:Be honest by Anonymous Coward · · Score: 0

      It's great for people who are doing the work, but terrible for anyone that is trying to get value out of what they're paying for.

      Then Agile has failed. It was created to provide better feedback to stakeholders. The entire huge amount of process and tools were created to provide stakeholder feedback. All of the very expensive Atlassian tools were not created to help development, but instead to provide reporting to management.

    19. Re: Be honest by Anonymous Coward · · Score: 0

      I assume you mean enrollment.

      You have a good point about investors and Agile. I think the ones doing Agile are trying to fail so they can get a tax write off. That is the only explanation I can come up with as to why someone would use a process that requires you to not work on the big picture.

    20. Re: Be honest by Anonymous Coward · · Score: 0

      Republicans need tax write offs. That's why they love complicated processes that have proven themselves a failure.

    21. Re: Be honest by Anonymous Coward · · Score: 0

      It sounds like your investors are Republicans that need. Tax write off. That is the only valid reason I can think of for using Agile since it is almost guaranteed to fail.

    22. Re: Be honest by Anonymous Coward · · Score: 0

      You sound like you just described Republicans. They care more about process and procedures than they do people.

    23. Re: Be honest by Anonymous Coward · · Score: 0

      Sounds like Republican-style accounting. Agile is great for wasting money to get a write-off.

    24. Re: Be honest by Anonymous Coward · · Score: 0

      It's more complicated than a requirement since it includes the target audience. Very often user stories contradict each other. For example, one persona could require an easy way to maintain ten employees while the other a thousand. So you have "Tina" that needs a simple interface while "Joyce" requires pagination and search. Agile means that the holistic question of how to serve both personas is not answered unless it is posed as a separate user story.

    25. Re:Be honest by goose-incarnated · · Score: 1

      And how long do you think it takes and how many people are involved before the first shovel hits the ground on a major new construction project?

      Once you have the land surveyed it takes six months, mostly due to the approval process for construction permit. If the approval process alone did not take 2 months then it would take far far less than six months. Architects are damn quick repurposing an existing mall plan for different geography.

      --
      I'm a minority race. Save your vitriol for white people.
    26. Re: Be honest by Anonymous Coward · · Score: 0

      Any process that doesn't allow for long term planning is a suicide pact.

    27. Re: Be honest by Anonymous Coward · · Score: 0

      Agilistas live life two weeks at a time. Their religion doesn't allow them to work or even think about anything outside of that.

    28. Re: Be honest by Anonymous Coward · · Score: 0

      And if the question of how to serve both wasn't asked and answered before your sprint planning meeting then Agile requires you to wait an entire sprint before addressing that issue. Agile is a great heavyweight process for procrastination.

    29. Re: Be honest by Anonymous Coward · · Score: 0

      At least it's some kind of fucking process. Software disasters happen because of psychopathic gaslighting cocaine-snorting assholes who refuse to put anything in writing.

    30. Re:Be honest by Anonymous Coward · · Score: 0

      Stakeholder... sprint... certified scrum master...

      A decade ago this would be bullwhip bingo. now serious developers are right in the thick of it. It is embarrassing.

    31. Re:Be honest by angel'o'sphere · · Score: 2

      A user story is a short description of some functionality in a certain stile:
      As an anonymous user
      I want to be able to browse the web site
      to see if there are interesting articles.

      As a logged on user
      I want to be able to post on the web site
      to comment on other posts.

      As a moderator
      I want to have the option to up- or down mod other posts
      so that the quality of posts is shown with their rank/mod level.

      User stories are usually written in that mantra:
      As ... role
      what: feature to implement
      why: benefit

      The point is that in the beginning you are unable to formulate many features in such simple sentences. That is the phase where your software is either not under construction or in a very simple state.

      The more the software evolves the more easy it becomes to add such requirements (in wording as in coding).

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    32. Re:Be honest by nine-times · · Score: 2

      Estimates should be used to prioritize features (cost / benefit) as opposed to being used to set hard deadlines.

      I have argued for a long time that, when managing projects, people should focus less on deadlines and requirements, and more on prioritization. For example, all the stakeholders can agree on a project to be completed with a certain feature set by a deadline of November 1st for a budget of $20k, but often enough, that's not really the information you need to know. What's just as important as knowing those project requirements is knowing, when you reach the point where not all of those requirements can be met, which requirements should give way?

      For some projects, it's better to come in one time and under budget, even if it means sacrificing a substantial part of the feature set (and some features are more important than others). For other projects, you can go over budget and the implementation can be a bit sloppy, but you must meet the deadline with the complete feature set, because other things are dependent on your project's completion. For some other project, the feature set may be paramount, and running a little late and over budget might be fine, as long as the result is solid and thorough. I've worked some projects where if I'm coming in early and under budget, they want me to wrap things up and save time and money, while others would prefer that you take the extra time and money to polish things, clean things up, and maybe add some more tasks to the project.

      So whenever I take on a project, I always like to know that sort of thing. What's the minimum I need to do to consider the project a success, and what are my priorities? A list of requirements, a budget, and a timeline are not enough information to do a good job.

    33. Re: Be honest by Anonymous Coward · · Score: 0

      What the hell /.. I entered valid Unicode, but my post is a screwed up mess. My text looked correct in the textarea.

      Implementing Unicode support for slashdot could not be done within one sprint.

    34. Re:Be honest by kaladorn · · Score: 1

      Well, I agree with days, and maybe weeks, but likely never months. Generally in my experience, if you can't estimate a thing in days or a few weeks, you haven't broken it down enough and don't understand it well enough. Plus shaving time to make tight bids or to satisfy management is a lot harder when you are working in terms of weeks because a week can be a lot to lose.

      The problem most times with estimates for truly new types of work (like some I was involved in during the mid nineties on mobile computing for our federal police) was that there are a lot of technical unknowns and some may actually be insoluble or very lengthy to address. That can blow those very low granularity estimates all to heck. I think that project was months late and finished $200K or more over budget on an $800K or $1.2M project (I forget now exactly).

      On the other hand, I've been on projects where we did a $46K technical investigation/requirements development assistance first on a $250K project after and totally de-risked the thing from a technical perspective as well as being sure we knew what features we wanted and what tech was best. So we built the $250K project on-budget and within about 1 week of the planned schedule (just to take out some final glitches).

      I've also worked on Agile projects where they estimated by sprint and the only larger scale planning was feature planning per sprint. Of course, that was for a product company, not a contracting company - they have very different project planning requirements in my experience due to how they get their funding (customers won by bid versus from corporate leadership investing in a new product).

      The problem with Agile and the world of big companies is that most accounting departments and management techniques and de-risking analysis wants definitive progress indicators and deadlines for market and costs for funds allocation in accounting ahead of when Agile can provide these things. Many managers and accountants still love the fiction inherent in waterfall project planning. Our Agile work did deliver excellent product in what I think of as minimum time (my opinion) but it gave many of the waterfall lovers apoplexy and dealing with higher level management and accounting apoplexy isn't always a simple thing for project technical managers/leaders.

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    35. Re: Be honest by kaladorn · · Score: 1

      If you don't understand the requirements well enough to create broad users stories for features (to be refined and broken down further into smaller subordinate user stories in the iterations where those featurs are worked on), you certainly don't know enough to estimate them and you'll never be able to tell a client or funding source how much the work is going to cost (even broadly).

      User stories can be as big a mire as you choose. When we used Agile on a $1M+ contract, we delivered in something like 18 sprints (the last ones were bug killing sprints) and the major items sought were delivered. Lots of 'nice to do' were too, but not all. We only ever spent about one afternoon doing sprint planning (for a team of about 6 at our end and another few overseas) for any sprint (there was preplanning for major features by sprint but we'd have to develop the subordinate user stories at the start of each sprint and put our estimates in).

      The project was very successful.

      The way a manager of mine once put it: You need process, but just enough. Too much and you die under the weight of it, too little and you get lost in the bushes with no idea when you'll finish or if you'll finish. That applies to any methodology: Waterfall, Objectory, Rational, Agile, etc.

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    36. Re:Be honest by kaladorn · · Score: 1

      The way you are pursuing Agile may be suicidal, but that is not necessarily Agile's fault.

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    37. Re:Be honest by kaladorn · · Score: 1

      Because you are enamoured of process (obviously or these guys wouldn't be employed) and have picked expensive tools, you get down on the method as if it is responsible for those choices....

      We used Rally (Rallye?) and it worked very well for us and I don't think it was extortionate in costs.

      I've seen a lot of waterfall projects die under the weight of tools and management ideas (too terrible to be methodologies). Same with other ideas like XP Programming (always doing pair work is insane for experienced teams but having that as an option is not).

      You can always mis-apply a technology or conceptual approach poorly enough to kill a project.

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    38. Re: Be honest by kaladorn · · Score: 1

      Not accurate. Management usually has broken out content by major features and knows roughly how many sprints will be needed. It is quite possible to use Agile and have a view to the future, it just isn't set in stone and inflexible.

      It sound like most Agile detractors (or detractors of any tool or technology) have had issues with them being put in place in a very inflexible way.

      Flexibility (just enough process to be useful, not enough to be cumbersome) is generally the best approach. It's not always a clear point and it sometimes needs to be dynamic. What is known though is that if you try to treat any technology or methodology like a religion (zealotry and can't get enough), bad outcomes ensue.

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    39. Re: Be honest by kaladorn · · Score: 1

      Our approach to that same problem would be:

      You have a story that looks like 20 story points but your average velocity for the team is 13. We need to either have a slightly longer sprint (say a third week which should yield about an additional 7 points based on your 13 over 2 weeks or we need to add some manpower to increase our velocity. If those aren't feasible, then we should create two substories that each describe a portion of the work and then work on one in one iteration and one in the next.

      You can't be religious about every assertion made in theoretical models of how to apply something. We built (ported) a huge system from one OS to another (N-tier, multiple host types, complex interactions within a software stack on a host and across between hosts) and of course there were some big stories at the start. So we broke them down.

      We also knew that in the early sprints, until enough things were together, we couldn't do much functional testing (too many bits needed for anything to work). So we set the testing expectation moderately in the early sprints with more weight on that as enough of the structure came together to allow functional testing.

      Seriously, it sounds like you guys are too rigid and too unimaginative by an order of magnitude.

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    40. Re:Be honest by cowwoc2001 · · Score: 1

      I believe you misunderstood what I meant.

      "hours" means = 1 day and = 1 week and = 1 month (there is no upper limit to the amount of time it will take)

      The difference between each level is meant to represent an order of magnitude. Breaking down the task is only useful if you plan on using the estimates to schedule delivery dates, which we do not.

      The problem with Agile is that it takes credit for ideas that have existed for over 30 years (incremental software development) and by now the term has become nothing more than a loaded buzzword. Every company is practicing their own form of "agile" and in most cases it's utter crap. The proof of this is that most companies nowadays claim to practice "Agile" but project failure rates are just as abysmal today as they were 30 years ago.

    41. Re: Be honest by kaladorn · · Score: 1

      Misuse of a tool to justify not moving forward is insanity. It's also a choice.

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    42. Re:Be honest by Anonymous Coward · · Score: 0

      For example, I'm working on ACA reporting now, and we can't display anything on the report until a ton of prerequisites are met.

      If you're working in an industry where ACA reporting is required, then surely you have mock / anonymized data available in your test and staging areas, and you aren't using copies of people's real, live production data for your testing.

      In that case, you build your report piece by piece:

      Sprint 1: Code requirements X, Y, Z, and ensure report displays. - verifiable by a stakeholder against anonymized/mock data.
      Sprint 2: Code requirements A, B, C, and ensure report still displays. - verifiable by a stakeholder against anonymized / mock data.
      Sprint 3: Code requirements M, N, O and ensure report still displays. - verifiable by a stakeholder against anonymized / mock data. ...
      Sprint N: Finalize and release Minimal Viable Product - verifiable by a stakeholder, and *can actually be run on that production data* instead of your anonymized / mock data.

      You can't *ship* the final report to production until all of the prereqs are met. But I guarantee you will not go to jail for building the report in such a way that not all prereqs will be met in the first deliverable. You just don't bless it as production-ready, and your problem is solved.

      Now go back to trolling 4-chan, shithead. Your anti-agile BS isn't even creative enough to be credible.

    43. Re:Be honest by Anonymous Coward · · Score: 0

      We're spending six figures a year on Atlassian products.

      In what way are these "agile"? Literally every single software shop I've worked in for the last 20 years has had these types of tools, and a lot of them have cost a LOT more than 100k a year.

      JIRA - bug tracker. Nothing inherently "agile" about it, everybody uses a bug tracker.
      Stash - git server. Again, nothing inherently agile about it, if you're not using version control, you're an idiot.
      Confluence - wiki. Again, nothing inherently agile about it.
      Fisheye / Crucible - code reviews & repository browsing.
      Bamboo - CI server. Nothing specific to "agile" about it.
      Hipchat - fancy IRC. Nothing specific to "agile" about it.

      What, exactly, are you bitching about? None of Atlassian's products require you to be "doing Agile," and all of them are process agnostic.

      We use Jira, Stash, Confluence, and HipChat... we're spending about 75k per year on them. Yes, that's "a lot of money." No, it's not "a shitload of money" when you compare the $3k+ per year my last company spent PER ENGINEER on Rational Team Concert and ClearCase maintenance.

  11. Downward Spiral by phantomfive · · Score: 1

    In the 70s, we got Mythical Man Month
    in the 90s we got Extreme Programming, followed by Agile.

    Now we get #NoEstimates. I think we can do better.

    --
    "First they came for the slanderers and i said nothing."
    1. Re:Downward Spiral by angel'o'sphere · · Score: 1

      Extrem programming is-an agile method.
      So saying Agile came after XP makes no sense :D

      And in agile methods you do estimations ... but in our times usually not based on time but complexity.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    2. Re:Downward Spiral by phantomfive · · Score: 2

      eh,

      Agile Manifesto - February 11-13, 2001
      Extreme Programming Explained - published October 1999

      That's good enough to say "it came first" :)
      As long as you understand, I'm not going to argue about the definition of "first."

      And yes, I learned this tip about estimation from agile:
      When you make an estimate, afterwards check to see how accurate the estimate was, and use it to improve the next time.
      Using this method, over time I've gotten fairly good at not missing estimates. The only times I miss are when there are a lot of unknowns (and even then, I can usually give a reasonable outer-bound).

      That seems like an obvious tip, but it's amazing how many people don't use it.

      --
      "First they came for the slanderers and i said nothing."
    3. Re:Downward Spiral by phantomfive · · Score: 3, Interesting

      Incidentally, This Manifesto against the agile manifesto entertains me.

      --
      "First they came for the slanderers and i said nothing."
    4. Re:Downward Spiral by Greyfox · · Score: 1
      If you follow along at the Cunningham and Cunningham website, it's pretty easy to see the clear evolution of both concepts. Agile very much evolved from extreme programming. Most companies that I've encountered that claim they're agile really aren't, though. They're agile but they don't have time to write tests, they don't empower their programmers to limit the number of stories in a cycle, and they very frequently have half-hour to hour long daily scrums. In short, they just add a bunch of agile paperwork on top of their previous micromanagement practices.

      A couple of previous companies I've worked for would jump on some new bandwagon for managing their code and processes every year or so. They'd try it for a while and when it didn't magically fix all their problems, they'd jump on a new bandwagon. The old timers would just shrug and keep doing what they'd been doing all along because they knew the company would lose interest in a few months and be on to something else. I never thought there could be a learning disability on a corporate level before working at those places. Maybe there was something in the water supply in that state...

      --

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

    5. Re:Downward Spiral by phantomfive · · Score: 1

      I've wondered about the C2 website......did the ideas get developed there, or Was it a place people merely recorded after the ideas were developed?

      --
      "First they came for the slanderers and i said nothing."
    6. Re:Downward Spiral by angel'o'sphere · · Score: 1


      Agile Manifesto - February 11-13, 2001
      Extreme Programming Explained - published October 1999

      Does not change the fact that XP is an agile method, too :D I guess if we dig a bit around we find a few more agile methods that come before the "Agile Manifesto". After all the manifesto was written down as several agile methods showed that they work (in a certain context)

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    7. Re:Downward Spiral by Cederic · · Score: 1

      A bit of both, but mostly recorded then refined.

    8. Re:Downward Spiral by craigtp · · Score: 1

      Yes, and don't forget that the C3 project, upon which most of "agile" (or at least XP) is founded was, ultimately, cancelled and considered to be a complete failure

  12. Re:The other real problem by mveloso · · Score: 1

    Customer: build this
    Developer: OK, it should take X
    Customer: great

    Customer: why is it late?
    Developer: oh, I used a bunch of new technologies and techniques. Now it does all this crap you never asked for, but I was able to pad my resume.
    Customer: but it doesn't even do what I asked for
    Developer: you idiot, you didn't spec it correctly.

  13. Tell me if I am not doing this right... by Anonymous Coward · · Score: 0

    I approach this in the following way:

    I need X done. I think it involves doing A, B, C and if no yaks are shaved can be done by Real Deadline - 2 weeks. Do you agree with this plan? Can you deliver it? If no, I listen why and adjust. If yes, I will hold your feet to fire.

    Is this not reasonable? If not reasonable, how can I plan and allocate resources?

  14. Initial Estimates Stupidity by Dutch+Gun · · Score: 1

    When I was working on a videogame a number of years ago, I was asked by the publisher to come up with an initial schedule. We had a more or less fixed deadline, and while we knew roughly what we were going to be working on, the design phase of the game hadn't even begun. I started working on a very rough outline of the phases of the game development based on my previous experience with such projects. Naturally, it was somewhat vague, because we didn't have a design yet.

    The publisher rejected the timeline proposal, complaining that it didn't enumerate specific tasks in enough detail. For a year long project, they wanted each task broken down into 2-3 day increments optimally, and no more than one-week tasks. The only thing I could do was to break each task into more techno-babble bullshit, but it really just muddied things. Still not happy with my work, they found someone else to create a nonsensical schedule with lots of detailed tasks that were pulled out of the air. That was then our fixed schedule for the game which, again, hadn't yet been designed. It was entered into a clunky custom project manager we used, and whenever a task came due, we dutifully marked it off as "checked" whatever it was - it certainly had no relation to reality. But we were right on schedule!

    What we actually ended up using was a simple Excel spreadsheet with all the *real* tasks listed, and assigned to each person. The project manager kept it organized for us, and as the project evolved, we drilled down and refined the tasks from larger goals to specific items. We had a list of features from core to "nice to have", and we kept focus on what we needed to do first, and only added the superfluous features later in the project. It was just common sense to us, and not surprisingly, it worked fairly well.

    I always chuckle a bit at how people/organizations keep looking for some magical "methodology", which needs a fancy name to identify it, with method-specific terms and rules. In my opinion, the more you formalize stuff like this, the more likely you are to value process over projection, and you'll just end up getting mired in that process instead of focusing on the product. I like a lot of the concepts of "agile", but I just cringe whenever I hear about "sprints", "user stories", "stand-up meetings", and so on.

    And creating a hashtag-based term doesn't provide any new insight.

    --
    Irony: Agile development has too much intertia to be abandoned now.
  15. Re:#YouAreCows by phantomfive · · Score: 1

    I'm going to need an estimate for how long it's going to take you to say Mooooooooo........and can you come in and work on Saturday? Yeah.

    --
    "First they came for the slanderers and i said nothing."
  16. Not a developer, but... by nine-times · · Score: 4, Insightful

    I'll admit that I'm not a developer, so I may not have a firm grasp on the relevance of everything being talked about. However, I've managed my share of projects, and I definitely think there's reason to doubt the value of estimates for all kinds of projects. Software development projects are not unique in that regard.

    Now, I want to start by pointing out the obvious that you often have to make some kind of estimate. Even if the estimate isn't very precise, you have to make some kind of guess-- is this going to take 1 day, 6 months, or 5 years? Being practical, people have to have some idea of what they're getting into, or they can't make decisions.

    On the other hand, estimate can only be accurate insofar as the scope of the project is well defined and well understood. For tasks that you do frequently and know exactly what needs to happen, accurate estimates are not very difficult. Even if you are bad at estimating, you can measure how much time and money is spent on those repetitive tasks, and then use that data to figure out how much time and money it typically takes. However, as the scope of work is less well defined, or the nature of the work is less well known, the accuracy of the estimate will be worse.

    Imagine building a house. If you're building 100 houses in a development, and you do that work often, and you've already build 30 houses and know how much the labor and materials cost, then you can probably make a good guess of how much time and money it will take to build the remaining 70. However, if someone asks you to "fix all the problems with their house," and you don't know what shape their house is in, what it means to "fix" it, what the laws are regarding construction in the area, or what the local materials/labor cost, then your estimate won't be worth much.

    And this brings me back to the issue of "precision" rather than "accuracy". I think part of the issue is to provide an appropriate expectation of precision when providing estimates. I frequently have to provide estimates, and some of them are wildly wrong, but when I'm not confident in the estimate I'm providing, I'll also provide some kind of disclaimer. I admit that I don't know all the details about the situation I'm getting into, and that my estimate could be off. The thing that I'm saying will take 6 weeks might take 2 months. Maybe 2.5 months. Maybe more. Not 6 months-- at least not unless there's something really unexpected or some kind of mission-creep.

    But this is really part of a larger problem: the ineffectual nature of "plans". There's a famous quote, something along the lines of, "no battle plan survives the first contact with the enemy". Again, there are projects where the scope is defined and the work to be done is well understood, and in those cases, you can do conventional project planning. You can set milestone dates and make gantt charts, and develop a whole timeline and budget. But on the other hand, Donald Rumsfeld was on to something when he talked about "unknown unknowns". Often when you are embarking on a project, you're not even aware of the obstacles you're going to face, and so you can't account for them. This doesn't mean there's no point in developing a plan or a schedule. It means that your schedule has to be flexible in proportion to the likelihood of "unknown unknowns" and other contingencies outside of your control.

    I think if you want to improve the situation, the answer isn't to stop making estimates or project plans, but to develop better methods for quickly estimating the precision of your estimates, providing a margin of error, or the level of flexibility needed in a project. However, I think the #NoEstimates people are correct to point out that there is often diminishing returns on trying to set deadlines and budgets. It doesn't make sense to spend a week refining your plans for a two-week project.

    1. Re:Not a developer, but... by Greyfox · · Score: 2
      That very much hits the nail on the head. Most of what I've done has been maintenance and not new development. If I'm doing new development on my own and I'm trying to learn something new, it's hard to estimate. If it's tools I'm familiar with, I can be reasonably accurate.

      There's another side to that story as well -- most programming positions are actually not new development. Even if you're getting in early on a project, there's probably already a lot of framework code in place and likely a design. If you're not familiar with the code, your work won't be as efficient as someone who is, and your estimates will also be less accurate. I've found that in general it takes about a year to get to the point where you can start being reasonably efficient and reasonably accurate in your estimates. You start to get familiar with the code, the company's products and customers and their management practices. The longer you work with any one code base, the better you get at working with it.

      Ironically most programmers seem to stay at a job for a year or two tops and then move on. I've seen rounds of layoffs in the past that have caused companies to "forget" how to make entire products lines.

      --

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

    2. Re:Not a developer, but... by Anonymous Coward · · Score: 0

      It means that your schedule has to be flexible in proportion to the likelihood of "unknown unknowns" and other contingencies outside of your control.

      If you knew the "likelihood of unknown unknowns" that would make them "known unknowns". The very nature of "unknown unknowns" is that your project estimate could very well be off by an order or magnitude because you can't possibly know if the "unknown" will even exist or not, let alone a "likelihood" of it's existence.

    3. Re:Not a developer, but... by davide+marney · · Score: 2

      Actually, when you don't know the scope in advance, you need to FLIP the estimate into a maximum allowed effort. Ask the customer how much they are willing to spend on the problem for now, and then do all that you can for that amount and cycle back. When you report how much you did, you'll also know much better how much is left to do. Then you can make another ask.

      Works every time.

      --
      "We receive as friendly that which agrees with, we resist with dislike that which opposes us" - Faraday
  17. WTF is wrong with you people? by Anonymous Coward · · Score: 0

    The situation described by the no-estimates people is that you have a stable team (and budget) working on a large list of projects of varying value, any of which can be discarded at will when convenient. This is a dream scenario the VAST majority of people will never see. Most of us working in this kind of field don't have the luxury of telling potential customers to simply wait until their project is our highest priority or until they don't need it anymore.

    I work in a scientific field. The results of my work depend on discovery, research and performing unknown tasks. These details of these things are completely unknown at the time projects are started.

    Yet it is standard, acceptable, and expected that every project has an estimated budget and timeline. If we can estimate how long it's going to take us to invent a new protein, you can estimate how long it will take to write a piece of software.

    Do we miss targeted timelines and budgets? Yes. Does that result in a lot of difficult conversations? Yes. However, being able to provide estimates allows us to get more stable funding. Understand quickly when and why we're seeing schedule and budget issues results in both more funding for difficult projects and a better reputation with our clients.

    1. Re:WTF is wrong with you people? by Anonymous Coward · · Score: 0

      Do we miss targeted timelines and budgets? Yes. Does that result in a lot of difficult conversations? Yes. However, being able to provide estimates allows us to get more stable funding.

      A lot of difficult conversations, you say? So, you're basically willing to tell white lies and the funding sources are willing to accept your white lies. That doesn't make you any less a liar or the little game you're playing any less ridiculous.

      Perhaps it is we who should be asking WTF is wrong with you.

    2. Re:WTF is wrong with you people? by Anonymous Coward · · Score: 0

      We do estimates in software. The people who whine about providing estimates aren't very good at their work, they only think they are.

  18. More of a Problem by SuperKendall · · Score: 1

    Giving estimates without a detailed design is bad.

    But the thing is, often giving estimates WITH a detailed design is no better.

    So much of software development is utterly variable - perhaps you get a guy who doesn't know some aspect of the system they are building in and needs an extra week, while another person does not. That alone is a whole week lost or gained depending on perspective.

    And there are thousands of things like that in any given bit of software. The approach you take to design, the overhead of process, even just unexpected interpersonal contention between team members who may not have even been allocated to a project before you are supposed to give an estimate.

    I had never even heard of the "#NoEstimates" movement but I am right on board, because from over twenty years of professional software development for companies large and small I have seen that all estimates are horrific lies, that sometimes you get lucky and the estimates match the actual work performed - but far more often people are pulling long hours or other tricks to make the work match the estimate. Sometimes they don't, and then you have what is called a "late" or "failed" project.

    To take it down to a macro level, look at a scrum iteration. You are supposed to give time estimates for the work in a sprint, about two weeks long - often even THAT short a timeframe an estimate can be drastically off. You are supposed to provide estimates to get a velocity but what is the point when at any moment you can totally blow out an estimate because of some unexpected factor? You could get the same effect without estimates by having a team agree what to take on in two weeks simply by understanding the work to be done, and measuring progress on tasks moved around during the sprint... saving all the time put into coming up with fake numbers. All of the estimates and thumbs/up down are dancing around the real goal of the whole process which is simply to have a team agree what it can get done in two weeks, something any decent software team can do pretty well without estimates.

    There are people who claim not giving estimates is not "professional". But since all estimates are really lies, why is it not considered *un-ethical* to lie to a client?

    Far better to my mind, would be some kind of presentation of a probability curve of when work would be done, and even that only from a team that had been working together in the domain the software is in. Otherwise all bets are off and you just need to wait for the team to tell you when they are approaching a point where they understand how much longer something might take to complete by a definition they provide.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:More of a Problem by turbidostato · · Score: 1

      "The approach you take to design, the overhead of process, even just unexpected interpersonal contention between team members who may not have even been allocated to a project before you are supposed to give an estimate."

      Yes. And the way RFPs work are not helping here. Even if we accept the RFP to be an excessively precise one (which is usually not the case) what does exactly the customer expects? For the providers having a team of people twiddling thumbs just in case they win the bid? No. What they usually have is a presales team spitting proposals as quick as they can which haven't work in a project for ages, if ever and, of course, the team will be put together only after the bid is won, with the people they have at hand at the time or hiring someone that more or less fits the position after the fact. Given the alleged fact that some developers can be 10x as productive as others, there it goes your gantt chart. That may work on engineering disciplines already stabilized but not on something as young as IT and with so much creativity involved: you make an RFP for a bridge but you don't make an RFP for a new car design (I don't mean here the look of it but the full process from the first draw to the assembly line).

  19. The counter-point article does not help by SuperKendall · · Score: 1

    From the article:

    That gave our VP enough confidence that he "only" doubled our estimates and offered the customer a firm fixed price. This contract was a success for all concerned: we came in under our estimated time and cost

    So two highly experienced developers came up with an "estimate" that was off by nearly a factor of two (in came in "under time" but surely not by half).

    How is that really an estimate? From the standpoint of raising that as a banner in support of estimates, how is that success? Remember that was essentially a port of a program already working in another language, and even THEN the estimate was absurdly wrong. How is that viable in any way as a continuing process? They got lucky that round because doubling the incorrect assumptions was enough, but that may (read "will") not always work.

    If a client is "allergic" to time & materials contract, too bad for them - in that case they would have expended more on building the physical plant.

    There is a big disconnect in the world between people who imagine that software can become bricklaying, and those that know the harsh reality of what really happens in software development and how unrealistic time estimates are.

    If bricklayers often got wrong by 3-4x the number of bricks needed for a project something would be changed. But that happens every day in software and we just all carry on as if it doesn't matter.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re: The counter-point article does not help by Anonymous Coward · · Score: 0

      > off by nearly a factor of two
      After programming for 44, not a typo forty-four years, off by two is pretty good. My current employer does Agile, and by the time we originally write user stories which product thinks will only take a sprint or less, were probably off by a fact of five. Everyone working here has decades of experience in their field and we're more than twice as bad as that. If they did proper agile I would bet they would have done much worse. The idea that you have to wait an entire sprint before starting a task if it is scored to be more than one sprint makes for a lot of delays.

    2. Re: The counter-point article does not help by Anonymous Coward · · Score: 0

      I am simply amazed how many people report that "agile" was misunderstood as "be stupid".
      How can people take the process of "develop software in a way that respects developers, changing requirements, results and pragmatism over process" and turn it into "use process to justify doing the most idiotic thing imaginable in that situation"?
      If you feel better blaming "agile" for work working with utter idiots, fine, but I don't think it really changes what the real problem is. It also doesn't change the solution: ignore the idiots, by whatever means possible. Or live with them and stop caring.

    3. Re: The counter-point article does not help by SuperKendall · · Score: 1

      The reason we can blame Agile is because Agile is a process. Human beings inherently turn process into rigid law, instead of flexible guidelines on how to work.

      You have never seen a human being freak out as much as if you tell a scrum master you have started a second story before the first has ended, even if it makes the most sense to do so.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    4. Re: The counter-point article does not help by Cederic · · Score: 1

      Look fuck wit, Agile is not a process.

      The reason you're blaming Agile is because you're too fucking idiotic to realise that the problem is the cunt blaming it.

      Take some fucking ownership, show some professionalism and start addressing your own very evident ignorance.

    5. Re: The counter-point article does not help by Entrope · · Score: 1

      CMMI claims to not be a process, but it certainly dictates a lot of processes. Agile dictates an awful lot more. It doesn't tell you what you should eat for breakfast each morning, but to most people, it prescribes enough to count as a process. If a scrum master throws a fit when some developer optimizes for total work expended rather than following the order that the scrum master thinks the process requires, is it the fault of the process, the scrum master, or the developer? I would say it sure isn't the developer's fault.

  20. nike air jordan pas cher 2015 Femme France by senhaoran · · Score: 0

    air jordan pas cher More and far more folks are showing curiosity in getting to be much more active. There are numerous things they want to do in buy to get the training they want, but running is amid the most favorite that we see. To get commenced with this it is significant to make investments in respectable operating shoes nike air jordan pas cher 2015 Femme . This is what we will appear at a bit even more beneath.A retail outlet that specializes in sports activities like this is the ideal put to get started the hunt for running footwear. The purpose for this is that the workers in these suppliers are trained about what points should be appeared at when persons are seeking for this variety of footwear.Salespeople that work in this region should just take a genuinely near seem at the foot of the man or woman purchasing for operating footwear. They can identify a good deal of issues by seeking at your foot. For illustration the arch is a single portion of the foot that they have to have to know about in purchase to be able to enable you come across the most cozy sneakers that they potentially can.You really should also make guaranteed that the human being supporting you decide on new operating shoes normally requires the measurement of your foot.

  21. Furthermore by Anonymous Coward · · Score: 1

    There is no way in hades clients are going to write you a blank check on the software they want you to write for them. If you can't tell them what it will cost, they will go find someone else who will.

    You cannot talk them out of this. It is impossible. They want to know the price before they buy, and that's that.

    1. Re:Furthermore by turbidostato · · Score: 1

      "There is no way in hades clients are going to write you a blank check on the software they want you to write for them."

      That's why 'agile' processes born: at the very least they let the customer feel if they are partnering with the right provider as soon as possible -if they take the minimal time and effort it takes. Too many customers doesn't give space even for that minimal hassle.

      "If you can't tell them what it will cost, they will go find someone else who will."

      Exactly that: they will *tell* how much it will cost and by when will it be delivered. Of course it still will cost as much as the customer can throw at it and it will be delivered as late as the customer can tolerate. If there were only one software project in history, it would seem natural customer acting that way, but the trend is obvious and it's astounding why the customer doesn't end up understanding it was the first provider the honest one and, probably, the one that would have delivered the better results.

      "They want to know the price before they buy, and that's that."

      Quite understandable also. But then, they should refrain themselves from custom projects and stay with COTS (and even then, given the obfuscate licensing policies of so many a vendor, they'll be surprised from time to time).

    2. Re:Furthermore by Anonymous Coward · · Score: 1

      There is a very good reason for why clients want that information, and one they are not able to change so easily once it's been set.

      For the software developer that missed that class in Business 101, a budget is an estimate of future costs vs potential funds based on previous costs and currently available funds. You should have one for your household so that you understand how much money you have coming in and where the bulk of it is going; for those that don't, just think of all the times you've heard about the government yearly budget and deficits.

      Contrary to popular belief, companies are not made of a never-ending supply of money. They budget for a full year at one time (major, or capital, projects have projected costs for over greater periods, sometimes for a decade or more, but those long-term budget costs are divided up into yearly segments), setting aside funds to pay for all of the projects they're expecting to have going during the year. Those funds are set aside so that the project can be eventually paid for instead of relying on the company to just have the money on hand whenever it's necessary to make a payment (particularly with smaller companies that don't have a lot of operating capital and very large companies that have most of their funds in non-cash assets like accounts receivable).

      On top of all of that, contract software engineers are typically paid for hours worked. No company in their right mind is going to write a blank check to a contractor to get the work done just whenever. They want to know how long this project is expected to go for so that they're not paying the contractor while they waste time in Wikipedia/TV Tropes hell not getting anything done for months on end, or worse paying them while they work on a competitor's project.

    3. Re:Furthermore by SuperKendall · · Score: 1

      There is no way in hades clients are going to write you a blank check on the software they want you to write for them. If you can't tell them what it will cost, they will go find someone else who will.

      It doesn't have to be a blank check. It could be a flat "let's see what can be built in six months for $100k"

      If you have examples showing you can get work done, someone would be willing to commit to that very specific amount, because something could come of it. Then you both decide from there if they want to go other routes to continue work on it, or if they want to pay you time and materials to continue, which they will then get used to being a predictable factor.

      The best part about it is that because it's open ended, a lot of the weight of what must get done within the starting timeframe shifts to the client being able to provide direction and avoiding churn. From the client side there is benefit as it allows as much churn as they like without having to haggle over contract change fees. It gives them the flat fee they always want, with the caveat that there is no definition around what exactly will be produced by the end. If the whole thing totally flames out the developer can walk away and the client is only out $100k.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    4. Re:Furthermore by SuperKendall · · Score: 1

      For the software developer that missed that class in Business 101, a budget is an estimate of future costs vs potential funds

      Just like any other comparison from software to real world objects, yours fails because the real world object is far more predictable - you have a budget because you know about what is coming in, and then you plan about what you can spend.

      Well what happens to your precious budget when the inflow of money varies by 10x, as happens with real time spent on a software project? You can try to budget for just the low end but then you have squandered a lot of potential.

      Basically what you have is no longer a budget and not really any good for planning what you can do.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    5. Re:Furthermore by Hognoxious · · Score: 1

      If you can't tell them what it will cost, they will go find someone else who will.

      Of course it's totally different if you can tell them what it will cost; in that case they'll go to someone else who tells them it will cost less.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    6. Re:Furthermore by Hognoxious · · Score: 2

      Just like any other comparison from software to real world objects, yours fails because the real world object is far more predictable

      Is the F-35 a real world object? How about those road tunnels in Boston?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    7. Re:Furthermore by Anonymous Coward · · Score: 0

      That's not true. Plenty of businesses are sensitive to bait-and-switch tactics, and will refuse a bid if they think it is too low. Also, if the bid is too low, they may reject it on the belief that the programmer is too inexperienced or is offering a lower-quality solution.

    8. Re:Furthermore by SuperKendall · · Score: 1

      Is the F-35 a real world object? How about those road tunnels in Boston?

      Well that escalated quickly. I don't see how you can make the leap to software being like budgets because building some physical things also goes wrong at times.

      The thing you are not grasping here is that with software, EVERY PROJECT is going to be as far off estimates as both of the things you mentioned.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    9. Re:Furthermore by kaladorn · · Score: 1

      One of the reasons clients come to software companies is because they DO NOT understand software. Thus, they want things that they would ask for in other business areas or engineering areas where concrete schedules and tasks (such as building buildings) are not particularly new.

      Educating your customer is difficult but having done so, you reap some significant rewards. Also having an uneducated customer can sometimes be worse for your team than no customer at all (I've been on the sorts of projects that broke project teams and lead to significant talent outflow).

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    10. Re:Furthermore by kaladorn · · Score: 1

      This is a great way to do things. It's just hard to get some clients to understand that.

      --
      -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
    11. Re:Furthermore by Hognoxious · · Score: 1

      No it isn't. Whether it's software or spacecraft, some projects are sufficiently similar to stuff that's been done before that you totally can produce reasonable estimates.

      And don't presume to tell me what I do or don't grasp, you pompous arrogant ass.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  22. Its about state of mind and matching that to tasks by Anonymous Coward · · Score: 0

    I use an internal schedule. Some days I want to work on nasty low-level code, other days I want to do more maintenance and infrastructure work like producing build scripts or automated testing... Some days I'm ready to type code from the instant I walk in to the minute I leave and the creativity is flowing like a river. Some days I have no creativity and really just want a straight-line task with no deep thought process.

    I come in and properly gauge my state of mind and decide accordingly. This is how I've done it and I'm a rather respected developer with people asking how I don't get burned out and how I'm able to also work on my own projects at home....

    It all boils down to the fact that I don't do anything I don't want to do. Thus I'm always happy, passionate, and never burned out. The thing is I rarely have a day where I want to do nothing, I always want to do *something*, but what that is changes and cannot be predicted or scheduled without forcing me to debug on a day when I'm ready to write 5,000 lines of well thought out code, or forcing me to write lots of code on a day when I had a sweet idea for automating half the QA tests....

    That is how software development works. I keep myself running at 9/10ths by never letting someone else direct my work for the day. As soon as you mis-match my state of mind I'm more like 6/10ths and frankly producing "average" work at that point. The above-average genius stuff comes when I'm just left alone. That's how you get your money worth out of me....

  23. There are formulas for this. by MrKaos · · Score: 3, Informative

    There are *several* formulas to do an estimate and several more to tell you if your estimates are on track.

    If you understand why estimates are required, you are a business person, if you understand why they are so difficult you are a developer. Managing estimates is a 'Project Management' task and a good PM will keep the pressure of the team by also managing the stakeholder expectations, which is what we are really talking about here.

    Complex estimates are closer to the contract and simple task estimates are closer to the metal. If anyone asks for an 'accurate estimate', run - they are an oxymoron who won't de-scope so that deliverables are met. To me it is an immediate sign of project failure.

    Estimates are just a tool that are a balancing act for getting the budget required to do something. Good estimates are achievable by iterating three simple questions pessimistic, realistic and optimistic estimation for a smaller task of a large project. After that there are several other formula to determine if you are ahead, behind or on schedule. Ahead or on schedule - great, behind - de-scope. What the final product looks like is a function of the contract that determines the critical path and managing the expectations to get there. Estimations on a small project however are usually a waste of time.

    The last thing you want to do is go back to an accounting department or client for more budget because the estimates are way off anymore than having no estimate at all and asking for a big bucket of money that won't get approved and no developers will ever get employed to do that project.

    Using 120 characters to discuss such a complex subject, that can't possibly hope to encapsulate the arguments required to understand it, is pointless.

    --
    My ism, it's full of beliefs.
  24. Unbiased, my ass by Anonymous Coward · · Score: 0

    That's about the most biased summary I've ever read.

    1. Re:Unbiased, my ass by Anonymous Coward · · Score: 0

      It's not even a summary, it's just ripped wholesale from Isaacs's blog article.

  25. I've seen it work by Anonymous Coward · · Score: 0

    I know Woody, I've seen the environment NoEstimates was born from, it is awesome. That said most corp cultures have zero chance of ever getting to that level of trust and most dev teams are way too dysfunctional to be able to build that level of trust. Which is why when you put pressure on NoEstimate proponents they will state that it is about "starting a conversation" about estimates.

  26. "My God, it's full of waterfalls!" by plopez · · Score: 1

    In reading these comments the phrase "Giving estimates without a detailed design is bad" pops up in one form or another. Basically that is asking for a waterfall. I am somewhat uneasy how often it has appeared even in this day and age. Here are my observations on the topic:

    1) Forget good requirements, no one has them. No one knows what exactly the software will do at the beginning of the process. One thing I am certain of is that in about 18 months, if you are competent and lucky, you will start to have a good piece of software.

    2) Instead think of "Initial Requirements". That the best you can do. Customer has a problem to solve, start solving the problem.

    3) As you solve the problem new requirements appear. This is due to two factors, the customer does not know what they do not know until an analysis is done, analysis is often the biggest pay off of a software project in my opinion[1], and the customer starts to see possibilities. Once you give customers new capabilities they often use those ideas to springboard more features. Often too software requires a review of business process which shed light on how a business is *actually* run, not how management *thinks* it is run. This will cause requirements shift.

    4) Work more on your customers rhythm, not yours. Don't roll out major changes in December if your client is a retailer for example.

    5) Keep the customer happy by giving them continual improvements in functionality. Lots of little releases to throw them a bone and to get feedback since requirements always will shift. Stay close to the end user and listen to them.

    6) Good software is a living breathing thing. Expect to live with it for decades and continually improve it. It is never really done.

    The core of Agile gets some of this right. Though I am worried about a natural impedance when projects become very globally distributed and in terms of Agile scaling.

    [1]Anecdote. I was working on a database development project for a mid-sized company with 2 main offices in two cities 300km apart. I began by learning the business processes and by diagramming them out. The principals of the company were flabbergasted when I showed them my diagram. The two offices were doing things very differently. We spent the next 2 months realigning core business processes before writing any code. It was actually fun.

    --
    putting the 'B' in LGBTQ+
    1. Re:"My God, it's full of waterfalls!" by dcollins · · Score: 1

      " Often too software requires a review of business process which shed light on how a business is *actually* run, not how management *thinks* it is run. This will cause requirements shift."

      That's a great line, and your anecdote [1] is awesome. Thanks for sharing.

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    2. Re:"My God, it's full of waterfalls!" by ThePhilips · · Score: 1

      Forget good requirements, no one has them.

      ....

      It is never really done.

      ... and the loop is closed.

      Though on global scale, IME, another problem is that the former is relatively well accepted, but the later should be never mentioned to the customer. Or to your sales. Or to your PM. Or to your colleagues.

      Most people need the certainty about the results. Because result is something concrete, while the process is something distant. Because most people spend to little time understanding the whole development process and their role in it.

      P.S.

      Lots of little releases to throw them a bone and to get feedback

      Not all customers are OK with that. For business-critical software, installing new (even minor) release and testing could be in itself medium/major project. For example, if deployment of a new release could take a month, it doesn't make sense to have a monthly release schedule. Some customers also see the too many point releases as an attempt to shift the review and/or testing burden onto them. (And I have seen that abused in real life. En lie with submarine major architectural changes in minor releases, and later demanding money from the customer to rollback, because, duh, you should have caught earlier that the architecture was changing not the way you liked it! you have all the 123 point releases which show the whole transition in fine detail!)

      --
      All hope abandon ye who enter here.
    3. Re:"My God, it's full of waterfalls!" by Anonymous Coward · · Score: 0

      Re: anecdote. I don't believe you. Why the fucking would psychopathic cocaine-snorting gaslighting assholes ever admit that the business isn't working the way they think it is?

  27. Payer vs. payee by Tony+Isaac · · Score: 1

    Those who are paying the bills want estimates. Those who are getting the money want a blank check. It's that simple!

    There are ways to create good estimates, but it does require discipline and training. Steve McConnell wrote an excellent book on the subject. Unfortunately, many software developers aren't well trained in this art. This is a serious failing in many of our computer science degree programs.

    1. Re:Payer vs. payee by wisnoskij · · Score: 1

      No, everyone wants estimates. No one wants or is willing to start a software project they do not have some idea how much work they will need to do to finish it. And if you are unable to estimate the time it will take to do, you are equally unable to program it. I would probably not write a single line of code if I could not tell a 30 minutes project from a 500 million man hours one.

      --
      Troll is not a replacement for I disagree.
    2. Re:Payer vs. payee by Tony+Isaac · · Score: 1

      If only all programmers were as conscientious as you!

    3. Re:Payer vs. payee by phantomfive · · Score: 1

      Estimation is such a crucial skill, too. If you can't do it, you can't make good design decisions. Imagine this scenario:

      You are adding a feature to your project. Should you:
      A) Spend time integrating a library into your project
      B) Spend time writing the code to do that feature.

      If you don't know how long B will take, you can't possibly make the right decision. Estimation is just one part of the skill involved here, in addition you'll need to know how the library will affect the long-term stability of your project, how likely it is to be supported in the future, how you'll be able to handle if it is no longer supported in the future, etc.

      --
      "First they came for the slanderers and i said nothing."
  28. Estimates are useful if used correctly by joe_frisch · · Score: 3, Interesting

    Estimates are useless as a measure of how well an engineer is performing. How far he is ahead or behind schedule only indicates the extent to which he was able to get away with padding his estimate in the first place.

    That said, estimates ARE very valuable when you have a complex set of interlocking projects and resources that can be tasked in different places. This is especially true if external pressure require that a project be done on an exact date.

    To take an extreme example, if the launch window for Europa is at a known date, the spacecraft firmware must be fully tested and installed by that date. Working backwards that says when the first version must be ready. The estimate helps decide what resources should be applied, and later it lets you know if you are so far behind that you need to change the launch date to the next window (over a year away). That affects budget etc.

    At SLAC we have complex projects that require the work of lots of people to all come together. This results in very rigid schedules - There is typically a 2 month window for major upgrades, if you miss it, you wait a year. If someone working for me doesn't like doing estimates, I basically say "we need a guess. I can guess or you can, but since you are doing the work, your guess will be better than mine".

  29. Re:#YouAreCows by BonThomme · · Score: 1

    #Moo

  30. In the #ESTIMATES Camp by Ronin+Developer · · Score: 4, Interesting

    I have worked in the industry for 20+ years and here are my observations - granted, I have worked in smaller companies (i.e 25-4000) and startups.

    Estimates work as a means to determine the work effort for a given set of features. They are not to be used for setting schedules and deadlines by themselves. They are to be used for budgeting and cost planning. And, they are not to be done without a detailed design meeting the agreed upon requirements.

    Unless your client is very rich and/or stupid or you have a large surplus of venture capital in your startup, you better be concerned with the work effort and time to have your product in a usable state. When you can tell a client that a project is going to take time X and cost Y and meet those values, you gain credibility and trust. In the digital advertising world, those with credibility and trust become the agency of record (AOR). And, the client will stick with you as their AOR until you royally screw up and fail to deliver what was promised, when promised and for the agreed upon price.

    You DON'T ask a developer how long something will take - they invariably will underestimate the work effort. Instead, at least until you have measured delivery rates for your team members, you use industry standards. You can ask the developer and then compare their estimates with the actual time and effort. When their estimates start matching up, you can ask them estimate their own assigned work. It can be a good learning experience for them.

    Some projects don't require estimates. We had projects that fit a template model based earlier work. We knew how long it took, on average, to fill the various fields of the template. Throw in the project management, QA and deployment components and its pretty easy to do.

    When people claim Agile isn't compatible with estimates, it's probably because the team isn't concerned about documentation or planning. They tell you that the system has too many variables and they don't have time or resources to keep the design up to date. I call BS. If you can't do it, then add someone to the team who can. There are great tools for doing design work and capturing requirements at all phases of a project - use them.

    Even with Agile, you should layout out a basic design or framework in the early stages of the project. Then, you can determine how long other features will take and what their dependencies are before you attempt to implement them and emptying the client's wallet. Then, you base the number of sprints based on that information. Since you are supposed to have a working product at the end of each sprint, you should be able to tell the client what features will be in each deliverable and cost. If they want to change the requirements or add new features or change functionality, you still have to plan how long those features will take and in which sprint you will deliver a product that meets those changes.

    1. Re:In the #ESTIMATES Camp by originofstorms · · Score: 2

      Then, you base the number of sprints based on that information.

      I think your brain is hardwired to the waterfall method, and you're thinking of Agile as a series of smaller waterfalls, one after the other. The whole point of Agile is admitting that you don't know where you're going to end up. You try to figure out how to test your basic assumptions as soon as possible -- no, really, as soon as possible, maybe even without writing a single line of code -- then iterate based on what you discover.

    2. Re:In the #ESTIMATES Camp by Anonymous Coward · · Score: 0

      When people claim Agile isn't compatible with estimates, it's probably because the team isn't concerned about documentation or planning. They tell you that the system has too many variables and they don't have time or resources to keep the design up to date. I call BS. If you can't do it, then add someone to the team who can. There are great tools for doing design work and capturing requirements at all phases of a project - use them.

      The problem is that, as soon as you start planning and documenting - at least to the level that you're alluding to - you're no longer doing Agile, you're much closer to the older waterfall method of software development.

  31. Estimating is easy by EmperorOfCanada · · Score: 1

    All I need to do is to look to see where a project lay in the realm of my experience and knowledge. I can tell you that if you want me to make hello world in a language I know well on a platform that I know well that it should be under 5 minutes from beginning to end. But if you want me to program an image recongintion system that can tell if a sparrow is content or agitated on a VAX/VMS. Then I will give you an estimate of maybe 5 years before I can even give you a proper estimate having gathered up the experts on sparrows, VAX, and image recognition.

    All other projects generally lay on a line between infinite and 5 minutes.

    But much more importantly my real estimates on real projects will largely not depend upon the projects, the code, the specs, or pretty much anything technological but will have a multiplier based upon the company and its culture. If the company is clearly prepared to play games with the contract then the project will slow way down to make sure that every damn checkbox is checked and arguable in court. If the company has a civil war going on and the project is going to be a pawn then the multiplier goes way up. If their is no clear manager of the project and the bosses wife becomes involved with turning a project to make a point of sale system into a dietary recommendation system for her stupid diet beliefs then the project may, again, have hit infinite time.

    Where most projects that I have seen blew up was when there was a failure to properly investigate the real project. Maybe someone asked to build a medical system that would do 100 features but failed to identify 1000 other critical features that made the 100 feature system completely useless. Or even worse 1000 features were ladled on after it began and the people running the project were too wimpy to resist.

    Also projects can become bogged down in stupid minutia. One project I was working on was a massive invoice system where one marketing guy kept changing the look of the invoice by pixels. Day after day after day he would move things tiny amounts. The project couldn't proceed without his approval and it turned into a demoralizing nightmare. Then to put icing on the cake the problem was that the PDF samples he was printing were coming out differently on the various printers he was using. Thus the changes requested were only possible to achieve if he consistently used the same printer.

    Thus this last one was a failure to create some contractual mechanism to prevent this stupidity not a failure in the original estimates which were generous in their margins.

    Then you get projects that have entirely outside forces. The project was never meant to succeed. This could be on the part of political desire of the client. Or it could be fraudulent hearts in the consultants. All together many projects are doomed before the contract is drawn up so the only viable estimate would be one written in blood using magical symbols.

    But to wholesale say, estimating is bad is wrong. Bad estimating is bad. But too many people get caught up in functionality points and whatnot and miss the fact that they are about to throw their entire project into a war zone. But that with a careful analysis the war zone can be calculated into a multiplier and the risks mitigated.

  32. Give them the Software Developers Union answer: by Anonymous Coward · · Score: 0

    "You want an estimate? I've got your estimate right here: I estimate 8 hours/day, 40 hours/week, until the Union rep tells me I'm going back on strike."

  33. Obligatory Agile Manifesto by Anonymous Coward · · Score: 0

    This is what really happens is most enterprises: http://www.halfarsedagilemanifesto.org/

  34. choices by Tom · · Score: 3, Insightful

    As they saying goes: Fast, cheap, good - pick any two.

    You can usually solve one problem by another. If you see you can't hold the deadline, you can throw more manpower at it (not cheap anymore) or compromise on quality. If you see the budget runs out, you can put the project into idle times (not fast anymore) or compromise on quality.

    Sadly, quality is the part that management, customers, clients and developers understand the least. Everyone understands deadlines - either you are done on that day or you are not. Everyone understands money and to convert developer man-hours into money is not so difficult. But quality is tricky. If it runs, ship - because management, customers, etc. they see if it is running, but not what's going on under the hood. And developers too often don't understand that quality is subject to combinatorial explosion - shortcuts don't add up, they multiply.

    But because it's the least-understood part of the equation, and compromises matter so much but are not easily visible as long as the core operation functions, software in generally is so absolutely shoddy.

    --
    Assorted stuff I do sometimes: Lemuria.org
  35. clarity of expectations by Tom · · Score: 1

    I've been looking into building a house recently, and it taught me something about software development:

    To understand what I would get for how much money, I went to a "park" of houses. 20 or so houses of different styles and sizes, with price tags. So by spending a few hours walking through them all, I could get a pretty good understanding of what I would get for which price. From that point, I can start an informed discussion with a company asking for the house I want, based on what I saw, with an idea of what my expectations will mean in cost.

    I have never seen something like that in software. If I want to have a software written or even just a website made, where can I go to check out examples with price tags? It seems to me that everybody keeps the final, real prices a secret. They are not showing you that this website with these functions and this design cost $x to create, and that software tool with these features cost $y.

    The industry is based on estimated costs, not real costs.

    --
    Assorted stuff I do sometimes: Lemuria.org
    1. Re:clarity of expectations by Entrope · · Score: 1

      There's a lot less unpredictability in building a house than in writing a program.

      There is easily an order-of-magnitude difference in how productive different software developers within a typical organization are, and probably almost as much difference between software development organizations. Building contractors do not have that level of variability.

      Hourly rates are probably also an order of magnitude different between some little town in Flyover County and San Jose.

      On top of both of those, what infrastructure are you assuming for the software projects, and what performance, reliability and security requirements do you have for your software? Any of those variables can radically change what a cost-effective development approach would be.

      Finally, most custom software projects involve a lot more novelty than a house. Just about anybody can figure out how many square feet of marble are needed for a countertop, but it is quite hard to estimate (within a factor of two or three) how much effort it will take to develop a feature that the developers have never tried before and that the customer can't thoroughly explain.

    2. Re:clarity of expectations by Tom · · Score: 1

      There's a lot less unpredictability in building a house than in writing a program.

      That depends a lot on what software we are talking about. And it is also a consequence of the imaturity of software development. In the early stages of everything, it's hit-and-miss, trial-and-error with little predictability, see the first airplanes. But, as a matter of fact, predictability is one of the main factors that you use to measure maturity.

      On top of both of those, what infrastructure are you assuming for the software projects, and what performance, reliability and security requirements do you have for your software? Any of those variables can radically change what a cost-effective development approach would be.

      No difference to building a house at all, except for labels. Of course what you need in quality, or maybe earthquake resistance, or if it rains a lot or almost never, how much isolation you need for cold winters and hot summers, all these things matter, which is why you figure them into the total cost.

      Finally, most custom software projects involve a lot more novelty than a house.

      A lot of software is not half as custom as the customer thinks and the developer makes him believe.

      but it is quite hard to estimate (within a factor of two or three) how much effort it will take to develop a feature that the developers have never tried before and that the customer can't thoroughly explain.

      Strangely, architects also build buildings for the first time sometimes. Not family houses, but high profile buildings. And yes, there are sometimes budget overruns. But the whole thing rarely collapses on itself.

      --
      Assorted stuff I do sometimes: Lemuria.org
  36. Re:The other real problem by Anonymous Coward · · Score: 0

    Of course, this conversation would never happen if the requirements were on some fucking paper and the customer wasn't a gaslighting psychopathic cocaine-snorting asshole.

  37. And replace them with what? by nut · · Score: 1

    Has anyone ever told these people that someone somewhere up the line has to pay for them to f*** about? I'd like to build you a house. I don't know yet how big it's going to be, because I haven't designed it yet. I don't know how long it's going to take to build it. I want you to pay me an indeterminate sum of money for it... And I want you to pay for it before you get it. In fact I want you to start paying me now, and keep paying every month until it's done. I'll tell you when it's done. Who wants to buy my house?

    --
    Never trust a man in a blue trench coat, Never drive a car when you're dead
  38. You Want Some Money? - Be A Good Boy by Anonymous Coward · · Score: 0

    You want some money? Huh? Huh? You want some?

    Well do what I say, now.

    Who's a good boy? You're a good boy.

    Here you go. Have a little money.

    ====

    Whether you like it or not, this is your life. Now the question is, which side of this converstation are you on? Do you have the money? No? Then be a good boy.

  39. The problem is the variance, not the average by sjbe · · Score: 1

    Industrial engineer here. The problem with most schedules and by extension most estimates isn't the estimate itself. It is the failure to take into account the variability of the estimate. If you ask me how long a task will take for something that is a non-trivial task and you give me a point answer (like "14 days") then you are almost certainly wrong. The only question is how badly are you wrong. But if you tell me 14 days with a standard deviation of 4 days then the answer might have some credibility. Any answer without error bars is probably useless.

    My first job out of college was doing statistical production simulations. Everybody in management wants a single answer for how long something will take. Problem is that if I give them a point answer I'm doing them a disservice because my answer will be wrong. Fortunately finance people actually do know how to deal with a standard deviation if you press them to be bothered because they have to do it for expected return calculations.

    When I'm scheduling anything I care a LOT more about the variation than I do the averages, particularly if the averages are certified wild-ass-guesses.

    1. Re:The problem is the variance, not the average by Anonymous Coward · · Score: 0

      That's great.. Ok. How about, "This software project will take anywhere between 6 months and 6 years."

      The problem here is that management will always want to screw that estimation "gap" down to virtually nothing. If you say, "between 6 to 10 weeks", they'll ask if it's closer to 6 weeks or 10. Then they'll say 6 weeks anyway and expect it done by then.

      The only way to do this is to calculate the "deviation" as you say, but then only provide management with the upper end of that spread. In fact, add a little more on as well, so a "between 6 and 10 weeks" becomes simply "12 weeks". And then you stick to your guns. Rigidly.

  40. Not useful for budgeting by sjbe · · Score: 1

    As they saying goes: Fast, cheap, good - pick any two.

    Not a useful saying for budgeting. HOW fast are we talking about? HOW good? HOW cheap? Fast/good/cheap are all relative values and can mean hugely different things depending on the scope and difficulty of the project.

    1. Re:Not useful for budgeting by Tom · · Score: 2

      Not a useful saying for budgeting.

      Aphorisms are never good for hard numbers. They are good for making a point in a concise way.

      --
      Assorted stuff I do sometimes: Lemuria.org
  41. Getting better at estimating by sjbe · · Score: 1

    If bricklayers often got wrong by 3-4x the number of bricks needed for a project something would be changed. But that happens every day in software and we just all carry on as if it doesn't matter.

    Then software developers need to get better at estimating. I fully understand that it is considerably more complex than counting bricks but at the end of the day it doesn't really matter much. The only proper solution is to learn how to provide accurate assessments of resources required to do a project. It's no different in manufacturing, construction or any other complex field. I spend much of my time quoting work for complicated manufacturing assemblies, some of which I have very little experience with. I have to estimate the amount of time it will take our staff and allow for variation in productivity. If I overestimate the amount of work we risk not getting the job. If I underestimate the amount of work, we lose money and can be out of business very quickly. It's not really so different than with software.

    Now if you are being asked to estimate the cost of a project where the scope of work is undetermined and/or not fixed to within reasonable bounds then you are probably screwed. When we get asked to do this we turn the work down unless they are willing to sign an open ended time-and-materials contract. Never had one of them do that yet...

    1. Re:Getting better at estimating by SuperKendall · · Score: 1

      Then software developers need to get better at estimating.

      They are, this is as good as it gets. Remember these are all examples of estimates from people 20-40 years in professional development or more.

      What you do not realize s that IT IS NOT POSSIBLE to get better, because of the variability of EVERYTHING.

      The only proper solution is to learn how to provide accurate assessments

      Incorrect. The Proper solution is to accept reality and work around the FACT that you cannot get reasonable estimates for building software. Everything must be tailored around this fact, just as we design everything to take gravity into account rather than proclaiming gravity should just man-up and reverse on demand.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    2. Re:Getting better at estimating by JesseMcDonald · · Score: 1

      It's no different in manufacturing, construction or any other complex field.

      Unless you're doing something extraordinarily boring, like porting existing software to a new (but well-understood) platform with few, if any, unknowns, software development isn't like manufacturing or construction—it's research and development. The analogue to manufacturing or construction would be software deployment, which actually does tend to meet predictable cost and schedule targets. But when has R&D ever been known to follow a fixed schedule?

      --
      "The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
    3. Re:Getting better at estimating by sjbe · · Score: 1

      Unless you're doing something extraordinarily boring, like porting existing software to a new (but well-understood) platform with few, if any, unknowns, software development isn't like manufacturing or construction—it's research and development.

      Well since I've done both software development AND manufacturing I'm going to have to disagree with you. Software development is quite a lot like low volume custom manufacturing for a complex product which is actually the kind of manufacturing my company does. Most of my time is actually spent engineering and specifying the product. Then we build it and typically spend some amount of time debugging. There invariably are errors in specification and frequently changes made to the product along the way. We have to build test equipment and we often have to revise the product based on those tests. It really is a lot like software development in a lot of important ways. Hell we even have the problems like throwing more people at it when it is late making it later.

    4. Re:Getting better at estimating by JesseMcDonald · · Score: 1

      Software development is quite a lot like low volume custom manufacturing for a complex product which is actually the kind of manufacturing my company does. Most of my time is actually spent engineering and specifying the product....

      You may call it "manufacturing", but what you describe sounds like R&D to me, with manufacturing as the final step. That's a bit like referring to the entire process of specifying, designing, writing, and deploying a new software package as "software deployment".

      --
      "The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
    5. Re:Getting better at estimating by Anonymous Coward · · Score: 0

      You may call it "manufacturing", but what you describe sounds like R&D to me, with manufacturing as the final step. That's a bit like referring to the entire process of specifying, designing, writing, and deploying a new software package as "software deployment".

      There's a difference between "I need a piece that fits into this machine, made of a material strong enough to withstand X, Y, Z forces and A, B, C temperatures and vibration," and "Find me a cure for cancer."

      Both are "R&D" as you term them, but one is a lot less well-specified than the other. Do you see what the major difference is between the two, though? The first has actually been bounded by quite a few parameters and restrictions. The second hasn't been bounded at all.

      In general, Software is a LOT more like "build me a widget meeting these specifications" than it is "find me a cure for cancer." If you're so clueless that you don't even know what questions to ask, then you should probably just go choke on a cock and die.

  42. I don't know how you can calculate ROI without by Anonymous Coward · · Score: 0

    some estimate on cost and on return. Also without some idea of how long something should take it could take forever. And then there is budgeting. You have X amount of money and N things to do and you only do the things you can afford to do so you need estimates for that. The major reason why things take longer and take more money is that people don't want to believe the truth or people want to get the project they are sponsoring to get done so it is in everyone interest to understate the cost and the time.

  43. Re:#YouAreCows by Anonymous Coward · · Score: 0

    Cowposter is hands down the best commenter on Slashdot.

  44. Push Back, Grow Up, or Get Out by r-diddly · · Score: 1
    Dunning-Kruger "I could manage this team better"
    +
    youthfully idealistic "life would be so much cooler without deadlines, schedules, goals, budgets, money, time, calendars, clocks, prices etc... but let's keep the paychecks please"
    =
    #NoEstimates

    There are shitty managers, but only when you've a) communicated what you (think you) know to them, and b) appreciated everything that goes into their decisions, can you say for sure whether you have a shitty manager. Managing is a thing, just like programming is a thing. But if you're pretty sure you can manage yourself better, start a startup.

  45. What difference does it make? by Anonymous Coward · · Score: 0

    Development will take however long it takes and the QA cycle will pay the price.

  46. Estimates depend on specifications by sjbe · · Score: 1

    What you do not realize s that IT IS NOT POSSIBLE to get better, because of the variability of EVERYTHING.

    Very little in this world exists without variability. You might end up with a pretty wide standard deviation at the end of the day but I don't buy for a second the argument that there is no room for improvement provided the project demands are reasonable ones.

    The Proper solution is to accept reality and work around the FACT that you cannot get reasonable estimates for building software.

    There are circumstances when providing an estimate for building software is impossible but it is demonstrably not true that it is universally impossible to estimate time required to build software. If software development were truly random as you claim then it would be impossible to manage and it clearly isn't. Pretending that you can never estimate development time for software is preposterous. As long as you are willing to put error bars (possibly large ones) on your estimate then many projects can be estimated. Estimates are rarely exact (that's why they're called estimates) but they absolutely can be useful. If you have adequate and firm specifications early on then you should be able to provide a reasonable estimate of time to completion in many cases. If you don't have adequate and firm specifications then you probably are correct that any estimates that follow will be nothing more than guesses with a high probability of being wildly wrong.

  47. I'm mostly on the #noestimates side by booch · · Score: 1

    I'm a big proponent of Agile (mostly XP, mostly anti-Scrum) and have contributed some to the #noestimates "movement".

    I don't really mean that nobody should ever estimate anything. I mean that I've never seen useful (fine-grained) estimates anywhere. Here are some of the problems with estimates that I've seen frequently:

    1. We're not good at estimating how long things will take. We're usually optimistic about how quickly we can get things done, and almost always miss thinking about things that will take more time. I've never seen a case where a project is completed more quickly than estimated. I've only rarely seen fine-grained (story-level) tasks completed more quickly than estimated.
    2. Management asks for estimates and then treats them as deadlines. The team then learns to inflate their estimates. Then management learns to reduce the estimates they're given. Given fudge factors in each direction, the estimate no longer has much reliability. Even if you're using story points, the point inflation/deflation leads to less consistency and therefore reduced reliability.
    3. Estimates that are given are negotiated down, or simply reduced. This leads to the question why you'd ask for an estimate and not take the answer provided. If you're not going to listen to the answer, why are you asking the question? This is probably the craziest one on the list -- given my first point, increasing an estimate would make sense. Reducing the estimates is just magical wishful thinking.
    4. Plans change and work is added, but the deadline (presumably based on the estimates) is not changed to correspond with the extra work involved. So again, you're not actually even using the estimates that were given.
    5. Management dictates deadlines arbitrarily, without speaking to the people who will be doing the work. Spending time estimating how long each task will take when the deadline is already set is completely pointless.
    6. Almost every deadline is complete bullshit, based on nothing. Often the excuse is that marketing needs to know when something will come out, so that they can let people know about it. Why they need to know the exact release date way in advance, I've never been able to figure out. Many people intuitively know that the deadlines are bullshit, and will likely be allowed to slip. The only exception to bullshit deadlines I've come across are regulatory deadlines.
    7. Estimation at a fine-grained level isn't necessary. Many Agile teams estimate using story points, and determine a conversion from story points to time based on previous empirical data. This is fine, except that the time spent estimating the story is wasted time -- counting the number of stories almost always gives the same predictive power. Teams tend to get better at breaking up stories over time, so that they're more consistent in size, so this becomes more likely over time.
    8. The ultimate purpose of an estimate is to evaluate whether the proposed work will be profitable, and therefore worth doing. Or to compare the ROI (return on investment) between alternative projects. But to know that, you'll have to know what value that work will provide. I don't believe I've ever seen that done -- at least not at a fine-grained level. Usually by the time you're asked to estimate, the project has already gotten approval to proceed.

    I'll note that most of these pit management against the team, instead of working together toward a common cause. Most of the practices also lead to seriously demoralizing the team. And most of the time, the estimates aren't really even taken into account very much.

    My advice is to first understand the value of a project before you consider estimating the costs. The estimation at this point will be very rough, so make sure that you have a very wide margin between the expected value and the rough estimate of the cost. If you're pretty certain of the expected value, I'd probably want to make sure I could still be profitable even if it took 3 or 4 times as long to complete a

    --
    Software sucks. Open Source sucks less.
  48. Estimates by jgotts · · Score: 1

    Over my 25+ years of programming, being able to estimate my time was the last and hardest thing for me to learn how to do.

    No matter how much you've mastered computer science and how many clever encryption algorithms you're capable of writing, estimating how much time your work will take is a completely separate ability having nothing to do with your actual programming and/or mathematical skills.

    It is possible for every programmer to learn how to do. It's not something you'll figure out in a week or a year or ten years. I promise you that being able to deliver your software on time, every time, will make you the most beloved programmer at your company.

    The key is to, instead of jumping right into the coding, spend several days understanding exactly what work you need to do. Learn to be realistic about your abilities. Learn how to communicate with non-programmers so they understand exactly what they're getting. Keep explaining until it's clear that they understand what you're writing for them, and that's exactly what you're writing for them.

    When people throw changes at you, warn them that you'll have to start from scratch with understanding exactly the new work that needs to be done, think about the time those changes will take knowing that you may need to discard work you've already done, and continue to be realistic about your abilities. Make sure you get approval for the revised completion time before starting any work. Do not jump right into coding the changes.

    If your employer doesn't allow you do to this, quit and go work somewhere else. There is an oversupply of programming work.

    Time estimates are something that all professionals do. When you finish your work on time, you are acting professionally. When you reject estimates you look like a rank amateur and I'd never hire you.