Slashdot Mirror


New Analyst Report Calls Agile a Scam, Says It's An Easy Out For Lazy Devs

msmoriarty writes "We recently got a copy of a new Voke analyst report on Agile, and the firm basically blasts the movement from top to bottom. Some highlights: 'The Agile movement is designed to sell services. ... Out of over 200 survey participants, we received only four detailed comments describing success with Agile.' 'Survey participants report that developers use the guise of Agile to avoid planning and to avoid creating documentation required for future maintenance. ... Be aware that the Agile movement might very well just be either a developer rebellion against unwanted tasks and schedules or just an opportunity to sell Agile services including certification and training.' So did the analysts just talk to the wrong 200 people?"

491 comments

  1. You get what you pay/wait for by elrous0 · · Score: 5, Insightful

    Beware of hucksters selling a system that will give you everything you dream of, and fast and cheap to boot.

    And be even more wary of those who promise a way to outsource everything on the cheap without taking any hit on quality.

    There is no secret formula. It takes hard work, time, and skill to produce quality work. That's the only trick.

    --
    SJW: Someone who has run out of real oppression, and has to fake it.
    1. Re:You get what you pay/wait for by NReitzel · · Score: 4, Insightful

      Yep. Fast. Cheap. Good.

      Pick two.

      --

      Don't take life too seriously; it isn't permanent.

    2. Re:You get what you pay/wait for by Anonymous Coward · · Score: 5, Insightful

      Not to mention the fact that the provider wants you to subscribe to their services at $999 per year, and even if you opt for the 3 month (free) trial, you don't get access to the report unless you purchase a "bundle" for $199... These are troll! and the fact that Slashdot has referenced them in such a provocative article is unconscionable!

    3. Re:You get what you pay/wait for by multi+io · · Score: 4, Funny

      Yep. Fast. Cheap. Good.

      Pick two.

      I think it would be hard to be slow and cheap.

    4. Re:You get what you pay/wait for by Gaygirlie · · Score: 4, Funny

      Oh, I could point you to PLENTY of examples.

    5. Re:You get what you pay/wait for by PPH · · Score: 5, Funny

      Beware of hucksters selling a system that will give you everything you dream of, and fast and cheap to boot.

      Already this thread has gone off topic into politics.

      --
      Have gnu, will travel.
    6. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Yep, thanks for taking it there. /sarc

    7. Re:You get what you pay/wait for by dkleinsc · · Score: 5, Interesting

      The one thing where I think agile might help is in reducing the impact of this scenario (which I watched really happen):
      1. Marketing team presents a design of a web page to the development team, saying "This is exactly what we want".
      2. Development team works night and day to make that web page completely functional, conforming perfectly to marketing team's every whim (burning out developers in the process).
      3. Development team presents the design to marketing team, on time. Marketing team promptly announces that they hate it, ignoring all protests involving a side-by-side comparison between what the page does and what they asked for.

      With more frequent iterations, there's a chance that the difference between what the marketing team asked for and what they actually wanted will be evident sooner.

      For the most part, though, the basic deal with software developers is: 1. Hire competent developers. 2. Give them clear instructions about what you need. 3. Trust that they will do their best to get what you need done as quickly as they reasonably can.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    8. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      1 GB of unduplicated space costs something like 6 cents on consumer level (1 TB disks can be found for as little as $60). Cloud storage is fault-proof (relatively), so your stuff isn't lost if one disk breaks (or your NAS blows up). At 10 cents/GB, cloud storage profit margins are probably pretty slim, even if the providers get HDDs cheaper than the average consumer.

    9. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      cheap per time unit, presumably

    10. Re:You get what you pay/wait for by jythie · · Score: 3, Interesting

      True, but this is what splits 'iterative' or 'spiral' development from 'agile'. Actually, this kinda gets into the murky waters of 'what does person X actually mean when they say 'agile'?'......

      I think the real problems come from pure forms of agile, or the agile services sector. Like any technique it tends to work well when hybridized with others in order to best suit the situation, and sucks in its pure inflexible form.

    11. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      It's very easy to be slow and cheap. It just won't be any good.

    12. Re:You get what you pay/wait for by Ryanrule · · Score: 2

      In software development, pick one.

    13. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      uh...."cheap" refers to the number of people hire and what you spend on their salaries. If you have a too-small team of bottom-tier talent, you will get low quality software. Also, it will take them longer to do work than a more experienced developer would take.

      "fast" refers to the deadlines. Do you want the feature in a day, or are you willing to wait a week? If you always shoot for aggressive deadlines, your team will not have enough time to to QA, and the resultant software will be buggy, perform badly, and have an incomprehensible interface.

      "good" refers to the quality (usability, performance, few bugs). Quality is a product of time and talent.

      So....if you hire cheap entry-level devs only, and give them aggressive deadlines, your software will be utter crap. If you hire top-tier talent and give them as much time as they say they need, your software will be awesome but it will cost a fortune to make. If you want those (cheap) entry-level devs to make high quality (good) software, you will have to give them a damn long time to make their mistakes, find them, and correct them.

    14. Re:You get what you pay/wait for by Jeremiah+Cornelius · · Score: 1

      What? Like rail transport? Container ships? :-)
      I am the SCRUM MASTER! Don't make me PROVE it!

      --
      "Flyin' in just a sweet place,
      Never been known to fail..."
    15. Re:You get what you pay/wait for by DCheesi · · Score: 5, Insightful

      The iterative development model is really the best thing to come out of Agile, IMHO. Multiple sprint cycles allow Marketing to shift their priorities without it turning into feature creep, since they're forced to decide what to cut from each cycle. And as in your example, it allows for change feedback once they've actually used the feature. All the rest of Agile can be tossed aside, but this orderly iteration is by far the best method I've seen for dealing with Marketing requirements issues.

      ...So of course it's the one thing that's expressly forbidden in the new formal development process imposed by upper management :-/

    16. Re:You get what you pay/wait for by Briareos · · Score: 1

      I'll take "Yep" and "Good".

      What do I win?

      np: School Of Seven Bells - Scavenger (Ghostory)

      --

      "I'm not anti-anything, I'm anti-everything, it fits better." - Sole

    17. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      ...the fact that Slashdot has referenced them in such a provocative article is unconscionable!

      Obviously you are not 'results oriented'. POV is everything

    18. Re:You get what you pay/wait for by petes_PoV · · Score: 4, Insightful

      "This is exactly what we want".

      The example cited is just a textbook failure to consult properly. Every client *knows* exactly what they want - until you ask them "what about ...." in which case they'll think again, or challenge their conflicting desires: "you can't have it easy to use AND infinitely flexible". Repeat that loop until the end of time and you STILL won't get a hard set of requirements - let alone a sensible or possible set.

      Every experienced designer knows that the customer always lies. They might not know they're lying (or they may well do) but they will NOT tell you the truth, simply because they don't know it yet. The job of a designer is not to write down all the wishes, hopes and dreams that exit the mouth of the client, it's to present them with a list of what's possible, what's necessary and what can be done within the constraints (time, money, skills) that exist.

      In the end it doesn't matter what methodologies you use. Good, talented, motivated developers will get the job done no matter what processes or obstacles you put in their way. Lazy, stupid, demotivated or confused developers will never finish the work

      --
      politicians are like babies' nappies: they should both be changed regularly and for the same reasons
    19. Re:You get what you pay/wait for by Anonymous Coward · · Score: 1

      Like any technique it tends to work well when hybridized with others in order to best suit the situation, and sucks in its pure inflexible form.

      I thought it was funny how well this statement applies to political and economic systems, as well.

    20. Re:You get what you pay/wait for by dmomo · · Score: 1

      By planning, writing specs, and creating documentation, you are not necessarily throwing away the ability to develop in iterations.

      The onus here is on Project management to translate Marketing's designs into wire frames and requirements so a prototype can be created. If Marketing cannot see through the fast version that has yet to get any bells and whistles, the issue is with Marketing or perhaps the Project Managers.

    21. Re:You get what you pay/wait for by MacDork · · Score: 1

      Yes. This. The problem is marketing has no business designing software in the first place. They don't know their asses from a hole in the ground. They request UI designs that we as developers KNOW are slow, confusing, and/or doomed to fail. We tell them so, and they persist in their "vision."

      Oh hai Marketings, you want a image gallery? I see your mockup. You didn't include pagination. What should that look like? Oh, Marketing doesn't *want* pagination. FAIL.

      We don't let the passengers design the flight control panel. Why do we let marketing design web applications?

    22. Re:You get what you pay/wait for by JWSmythe · · Score: 5, Funny

          Well sir, I have a nice Pentium 100 to sell you. And I have a team of developers ready to do your work. For only $20, they'll do any project. Don't ask how long it will take, I'm sure we* can have something** to show you by FY2015***.

          * "we" only indicates anyone who the work may or may not have been farmed out to.
          ** "something" may only be a photocopy of the printout of your original request.
          *** FY2015 is not a promised date, it simply indicates an arbitrary date in the future.

      --
      Serious? Seriousness is well above my pay grade.
    23. Re:You get what you pay/wait for by Anonymous Coward · · Score: 1

      IT resourcing is the scam :) IT projects can be summed up in one line: If the project goes live, the vendor needs another job.

    24. Re:You get what you pay/wait for by dfetter · · Score: 5, Insightful

      Yep. Fast. Cheap. Good.

      Pick two.

      That's actually the optimistic perspective. Given skill, experience and good will, you could pick up to two. Frequently, the most you could have is one, or in sadly common cases, zero.

      --
      What part of "A well regulated militia" do you not understand?
    25. Re:You get what you pay/wait for by JWSmythe · · Score: 1

          You outlined exactly why I won't touch development again. It doesn't matter what system you use to establish the flow. Development can make exactly what was requested, and regardless, they will want something different. The more people that are involved, the more changes will be requested, frequently in direct conflict with each other.

          At some point, someone has to give in, and as you noted in step 2, this burns out the developers. So devs quit, get fired, or gracefully move over to another project, and now there's a new team of devs to repeat the process with.

          I've gone through this with iterations of only a day or less. Programming all day and night to modify the previous weeks work to match the newly defined spec, and you still end up worse off than where you started.

      --
      Serious? Seriousness is well above my pay grade.
    26. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Even more quickly than Hitler did with the Nazi's. Seriously, can we just stay on topic?

    27. Re:You get what you pay/wait for by The+Mister+Purple · · Score: 1

      I second that.

      --
      "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Feynman
    28. Re:You get what you pay/wait for by biodata · · Score: 3, Informative

      We were doing the iterative development model explicitly in the mid 90s. Do you think this model really came from something called 'Agile' or the other way round?

      --
      Korma: Good
    29. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Iterative development is decades older than agile

    30. Re:You get what you pay/wait for by mcmonkey · · Score: 5, Funny

      Yep. Fast. Cheap. Good.

      Pick two.

      I've heard that many times before, and I have to disagree.

      Where I work, we didn't pick two.

      Our projects take twice as long as they should, cost three times as much as they should, and quality in the crapper.

      Who says you can't have it all?

    31. Re:You get what you pay/wait for by macson_g · · Score: 3, Funny

      Yep. Fast. Cheap. Good. Pick two.

      My choice: Yep & Good

    32. Re:You get what you pay/wait for by turbidostato · · Score: 5, Interesting

      "There is no secret formula. It takes hard work, time, and skill to produce quality work. That's the only trick."

      Exactly. But even then, there are ways and ways to reach to that.

      "Agile" (in its various incarnations, but I'm specifically talking about Scrum) is not a project management methodology but a people expectations' management methodology. Most people have this wrong.

      And it is a kind of people expectations' management methodology that leans *a lot* on giving power to the people that do the work -the pigs.

      Just paying attention at the two observations above is the difference between a successful and a failed "agile" implantation:

      1) "Chickens" that "forget" that agile is about empowering pigs: a lot of observations about that have already been cited here (i.e. "we do agile", which in fact means "we set your goals for each fortnight in stone and you'd better acomplish them by living in a permanent sprint or you are fired").

      2) "Pigs" that are not up to the challenge: the Sturgeon's revelation works on every scenario but its results are even more wherever you depend on people more than in processes. With Scrum you are letting programers work like artisans or craftsmen (which, due our current state of the art is what they are no matter how much we'd want it to be consider an engineering); but once they are considered artisans, the difference between good and bad artisans is the more acute. And most (as in 90% of them per Sturgeon) are not up to the challenge. Here is where goes those "programmers want agile because it's the way they find to scape from whatever they don't like". It works the other way too: agile is most demanding for programmers but it increases demands for the business guys too: they forcibily need to understand what they are asking for and they won't be able to hide their responsibility pushing it towards the freakoids: *you* had the responsiblity to choose what was the best for the business and you failed; you can't hide the fact that it was *you* the one that wanted the "selling ice to the skimos" feature first.

      3) And then, there are the "cargo cult guys". You find this kind very easy: they say "we are doing scrum" but then you learn that they interviewed the customer once on the kick-off meeting and they won't see him again till six months down the road (but, of course, they have their morning stand up meetings, their sprints, their cards, their pomodoros... even an internal manager -the one that sets the goals for next milestone in stone, acting as "internal customer" in lieu of the real one...).

      So, just like always, you either take the work to stablish a high quality, commited, well imbricated team -and then methodologies doesn't mean so much, or you use the methodology in vogue to hide your lack of abilities and/or lack or commitment. And, just like always, it is the ones in command those that really have the greatest portion on the success of a project -and even a greater portion on its failure. But, hey, since they are in command they are in the best position too to make the successes to be theirs and the failures everybody else's.

    33. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      You haven't had work done by HCL?

    34. Re:You get what you pay/wait for by turbidostato · · Score: 4, Interesting

      "Every experienced designer knows [...] The job of a designer is not to write down all the wishes, hopes and dreams that exit the mouth of the client, it's to present them with a list of what's possible, what's necessary and what can be done within the constraints (time, money, skills) that exist."

      Right.

      "In the end it doesn't matter what methodologies you use."

      Wrong. They may matter more or less, but they *do* matter. For instance, your approach to an "experienced designer" lacks a critical observation that the agile processes take into consideration even if the "experienced designer" forgets about it: the customer won't tell what they want because he doesn't know yet. Well, the designer won't get to what the customer really needs because he doesn't know it yet either: the iterative process with strong feedback between developers and customers with no people in the middle copes for the fact that neither the askers nor the doers know what's needed yet but by means of the strong feedback they maximize the chances to discover it on their way or, at least, to weight the highest responsibility to the ones that have the most chances and/or the most stakes to do it right (business to business and technology to techies) on a tighted loop.

      So in the end: methodologies *do* matter. People *do* matter even more. Near, but not exactly the same thing you said.

    35. Re:You get what you pay/wait for by turbidostato · · Score: 1

      "If Marketing cannot see through the fast version that has yet to get any bells and whistles, the issue is with Marketing or perhaps the Project Managers."

      Which is a pretty good way to deflect blame but adds nothing to the odds of the project to succeed.

      Any other valuable suggestion, Mr dmomo?

    36. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      ignoring all protests involving a side-by-side comparison between what the page does and what they asked for

      The developers delivered on the specification, and on time.

      If the marketing group got the specification wrong, it's their fault.

      Two cases:

      1: Upper management understand whose fault it is, and acts accordingly. In this case, consider staying with the company.

      2: Upper management doesn't understand the importance of delivering on the specification, and blames the developers. In this case, your job is a dead end, and you should leave ASAP.

    37. Re:You get what you pay/wait for by GodfatherofSoul · · Score: 1

      That's not what your mama said. Burn!

      --
      I swear to God...I swear to God! That is NOT how you treat your human!
    38. Re:You get what you pay/wait for by greg1104 · · Score: 2

      Like most software methdology, iterative development dates back to the 50's. All of these "new" software approaches are just different mash-ups of existing development techniques; it's inappropriate to credit any of them with real innovation.

    39. Re:You get what you pay/wait for by murpup · · Score: 1

      Your second example of "top tier talent and give them as much time as they want" is not illustrative of the rule. The rule says pick two. Your example only picks one - it picks good, but with expensive and slow. What your example should say is "if you want really kick-ass software, you need to hire top tier talent who are really expensive, and lots of them, because they are the only ones who can do it fast"

    40. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      I can't decide. Do you have an agile methodology to pick them?

    41. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      THIS. Thank you.

    42. Re:You get what you pay/wait for by Pieroxy · · Score: 1

      You don't have it all, you have none !

      Same at my place of work. I'm sharpening my resume as we speak.

    43. Re:You get what you pay/wait for by Guspaz · · Score: 1

      If I want to print a large volume of material, it will take a certain amount of time. If I want to get it faster than that, I need to pay extra for rush service.

    44. Re:You get what you pay/wait for by Jane+Q.+Public · · Score: 0

      "These are troll! and the fact that Slashdot has referenced them in such a provocative article is unconscionable!"

      Mod up.

      This is nothing but a self-serving "report" from a company that is trying to spread FUD for profit.

      Agile is a proven methodology. In the old "waterfall" software industry, the famous "standard" was 7 lines of code per day per programmer.

      Thanks largely to Agile methodologies, you can get up to as many as 1000 lines of code per day (though that's a bit on the high side), with even fewer bugs than the old 7-lines-per-day methods thanks in part to thorough, continuing testing being built-in to the process.

      I call that a huge success.

      Keep in mind that one or another form of Agile (arguably XP falls in that category) have been around for 20 years or more. Companies would not use it if it did not provide benefit.

    45. Re:You get what you pay/wait for by Guspaz · · Score: 4, Interesting

      I have. It didn't save money, because of the enormous amount of rework involved. It was a huge disaster that thankfully put the senior management off outsourcing for good.

      They didn't do it to save money anyhow, they did it because a big customer wanted a new product, and we didn't have the development resources to pull it off. They hired an Indian outsourcing firm get the extra development resources required. It was a nightmare, both for those of us on the local side of the dev team working directly with them, and for the management, whose decision came back to bite them. Even years later, we're still finding bits of facepalm sprinkled in the code of that project...

    46. Re:You get what you pay/wait for by Guspaz · · Score: 1

      And if you throw enough money at the problem, you get bumped to the top of the queue, which gets you the "good and fast", but not cheap.

    47. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      I don't know about where you live - but I wouldn't describe rail transport as cheap...

    48. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      It is for freight. Not so much for passengers (in the US at least).

    49. Re:You get what you pay/wait for by jbolden · · Score: 1

      He's saying $.12 / gb / mo. You are talking about one $.06 one time cost. Obviously if it were a one time fee no one would object.

    50. Re:You get what you pay/wait for by TheRealMindChild · · Score: 1

      Not if you are good.

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    51. Re:You get what you pay/wait for by AuMatar · · Score: 1

      One good developer who already works for you doing this in his free time at work. Cheap (already paid for), slow (1 dev part time), probably high quality (good dev).

      --
      I still have more fans than freaks. WTF is wrong with you people?
    52. Re:You get what you pay/wait for by KingMotley · · Score: 1

      That depends. If he's a programmer, and his bosses are paying him well, don't expect much, and give him as much time to do it as he wants, then HE does have it all, so long as they can keep finding business.

    53. Re:You get what you pay/wait for by KingMotley · · Score: 4, Insightful

      As for as I'm concerned, Agile isn't a proven methodology. Not as far as being able to produce all the claims it makes for every project. In fact, I can say that it's proven to be false, time and time again.

      That said, there are SOME projects that work well in an agile environment, and it works well in SOME environments using SOME teams. And on the other hand, there are SOME environments where it just doesn't fit at all, and SOME projects don't lend themselves very well to it, and SOME teams it's a hindrance.

      I call that a huge success.

      I call that one tool in a shed, not the golden swiss army/ginsu blade that does everything.

      Companies would not use it if it did not provide benefit.

      Companies use it MAINLY because they've hired program managers that are familiar with it, typically younger ones that want change. Change is good, as long as it provides a benefit. The company typically doesn't care so long as the work gets done in a reasonable amount of time.

    54. Re:You get what you pay/wait for by hawguy · · Score: 5, Insightful

      Agile is a proven methodology. In the old "waterfall" software industry, the famous "standard" was 7 lines of code per day per programmer.

      Thanks largely to Agile methodologies, you can get up to as many as 1000 lines of code per day (though that's a bit on the high side), with even fewer bugs than the old 7-lines-per-day methods thanks in part to thorough, continuing testing being built-in to the process.

      Using "waterfall" you could also get 1000 lines of code in a single day from a coder too - but whether the project is done using Agile or Waterfall, if you take the total project time (including requirements analysis, documentation, unit and system tests), the average LoC/day is much lower. And of course, LoC is completely meaningless - when using a modern library or framework a single line of code can replace what would have taken a thousand lines or code 5 or 10 years ago.

      In my experience, Agile projects tend to run longer than they would have under waterfall, but the end product is usually closer to what the customer needs - few customers are willing to put in the time to spec out an entire project at the beginning (and are unwilling to freeze their business process during the project) and it takes too long to work changes through the waterfall process, but small changes can easily be rolled into the next iteration of an Agile process. (but some managers overestime the agility of Agile development and think that a major change that requires rearchitecting major pieces of the project can be incorporated into the next iteration)

    55. Re:You get what you pay/wait for by RealGene · · Score: 1

      I prefer "Better, Faster, Cheaper - Pick two."

      --
      Mission: To provide products that consume time and energy as entertainingly as permitted by the laws of thermodynamics.
    56. Re:You get what you pay/wait for by KingMotley · · Score: 1

      Probably one of the most insightful posts on the subject I've seen. Well done!

    57. Re:You get what you pay/wait for by next_ghost · · Score: 2

      Development can make exactly what was requested, and regardless, they will want something different.

      The main cause of this problem is that what the client wants and what he needs are two completely separate things. Pay no attention to what the client says he wants. Make him teach you the process as it is done at the moment without the software and then design the software around what you've learned. Chances are the process itself will need some serious rethinking.

    58. Re:You get what you pay/wait for by AVee · · Score: 4, Interesting

      Not to mention the fact that the provider wants you to subscribe to their services at $999 per year, and even if you opt for the 3 month (free) trial, you don't get access to the report unless you purchase a "bundle" for $199... These are troll! and the fact that Slashdot has referenced them in such a provocative article is unconscionable!

      A report claiming Agile is just a scam to sell services will set you back $199,-. You just have to appreciate the irony there...

    59. Re:You get what you pay/wait for by next_ghost · · Score: 1

      1: Upper management understand whose fault it is, and acts accordingly. In this case, consider staying with the company.

      It's the management's fault because they didn't have a software analyst write the specification. Marketers are not qualified for this job.

    60. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Build it using interns.

    61. Re:You get what you pay/wait for by dkleinsc · · Score: 1

      I actually wasn't on the team that had this happen to them, but it was the second situation, and I was part of an exodus that occurred over the year following that mess.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    62. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Hmm - I agree with the first half of your comment, and disagree with the second half.

      Yes, it is extremely difficult to get clients to properly describe their requirements for large projects. And of course it isn't usually "one client", but non-it people from multiple different departments who each know only one piece of the overall puzzle, who usually are busy with other work at the same time, and who often are careful about what they commit to so they don't end up carrying the can for what in hindsight appears to be an incorrect (and potentially expensive) decision. In short, "consulting properly" is often actually impossible, which is why the waterfall method fails so often.

      Add in the factors that (a) businesses evolve while software is being specced and written, and (b) people's view of the possibilities of a new system change when they first get to play with it, and it is a miracle that *any* waterfall project ever worked.

      This doesn't mean that a general requrements phase isn't worthwhile - just that there is a threshold below which it is pointless to go. This threshold is certainly *way* above the level at which it is possible to set a price and delivery date for any project.

      So the only sane way to develop is:
      * gather general requirements
      * do system-level architectural design
      * iteratively select "the next important feature" to properly spec and develop, where the feature size is small enough to have all the major business stakeholders involved in spec and test without them getting bored and wandering off to work on their "real business".
      * "deliver" the feature so the business can get business value out of it (or where that is not possible, at least let them play with it and confirm that it is of release quality and will provide business value as soon as required related components are in place).
      * use the experience of this cycle in the select/spec/deliver stages of the next cycle.

      And that's pretty much the "agile" philosophy.

      Throwing the most talented developers in the world at a project won't help if the end goal is not clear, or changes. Putting thumbscrews on the client's staff won't guarantee stable and correct requirements.

      Yep, explicit project completion dates go out the window. But the old approach of delivering the *wrong* solution *on time* is worse; agile at worst provides *real business benefit*, whenever the project funding stops.

      Yep, fixed project pricing goes out the window. But the business does know that what it has when the budget is spent is something of *production quality*, and contains *the set of features that they selected as being the most important*.

    63. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      I think it would be hard to be slow and cheap.

      Your mom begs to differ.

    64. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Iterative development didn't come out of Agile. Agile borrowed it. It has been around nearly as long as waterfall.

    65. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      If PROPER requirements are gathered UP FRONT and SIGNED OFF by the Marketing team and a good presentation design document is created and SIGNED OFF on by the Marketing team they they have nothing to bitch about. Simple. For the first time I'm working on a HUGE project that is a full rewrite of a processing system - they decided to use Agile. What a FRIGGEN failure this project is turning out to be. Requirements change with every iteration and sometimes HOURLY. So development never realyl gets anywhere. Daily scrums are a joke. I'm NOT a fan of Agile that is for sure! Stick with things like SEI-CMM or the like - Agile is a piece of garbage!

    66. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Yep. Fast. Cheap. Good.

      Pick two.

      I can pick all three if I go to a more productive supplier. You're just spinning excuses.

    67. Re:You get what you pay/wait for by Altrag · · Score: 2

      Something slow and expensive, most likely.

    68. Re:You get what you pay/wait for by Anonymous Coward · · Score: 1

      The iterative development model is really the best thing to come out of Agile, IMHO. Multiple sprint cycles allow Marketing to shift their priorities without it turning into feature creep,/

      There's the problem with agile. It requires a lot of work from the stakeholders, in this case, Marketing. They don't want to be involved in each iteration. They want to give you a statement up front and get something two weeks later that looks like what they think they want. They don't want to be bothered with iterations or postmortems.

      Too often agile is simply used as a way for the customer and BA to avoid their part in the development process. "We gave you a story, what else do you need?" One line describing an entire system is not a story, nor is it agile. It's lazy.

      In my opinion, agile has become a way for everyone BUT the developer to be lazy. Despite which methodology you use, the developer still has to code it.

    69. Re:You get what you pay/wait for by Altrag · · Score: 1

      Not really. A single programmer can usually do as good if not better a job than a team of programmers, for example. It just takes her a lot longer (the slow part.)

      However, it generally won't take him as long as the multiplied rate of the team because she won't have nearly as much of the coordination overhead. So its still "cheap" (in comparison, which might not necessarily be cheap in absolute numbers.)

      Plus, this quip also tends to apply to everything in life, not just software. You can find much more clear-cut examples in other areas where the time scale between "slow" and "fast" is more obvious.

      Something like shipping for example. Basic mail is relatively cheap, but also relatively slow, but you can pay more to get faster service if you have more money than time. (In this case, the quality metric becomes hard to compare -- nobody wants to lose their mail regardless of how they send it.. but if you really want to play that metric as well, you can pay even more for shipping insurance and extra-detailed tracking and whatnot as well.)

    70. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      "Good, talented, motivated developers will get the job done no matter what processes or obstacles you put in their way. Lazy, stupid, demotivated or confused developers will never finish the work"

      AC kinda...objects. I get the job done no matter what, as long as it is actually technically possible and lawful.

      Management routinely requests things to the contrary. By technically impossible, I don't mean hard, I don't mean "I don't know how to do it". I mean they do things like want a 500billion record database to run on a $1000 piece of hardware, and return any queried subset of that data to a user browser in under 2.5 seconds. Can't. Work. Period. Maybe some day in the future, but you can't do it today.

      Illegal? Yes, they ask for illegal things constantly. And they're too damned incompetent to know it and try to argue. They do stupid things like claim "We see google maps all over the internet--obviously anyone can use them. Now put it inside our private CRM software and..." It isn't that they want a map, it's that they demand /google/ maps without paying for it. And then there's the software licensing violations -- constant, nonstop. I don't mean 'just' a mismatched OEM license with windows, or maybe some out of sync IDE when a developer moved on. I mean really egregious linkage breaches. The type of people that say "I know the GPL means free, so of course we can use it in this project. Why are you even asking?" And then there's the classical one that lured me in... "Yeah, we're going to open source this project the moment we announce and release it, but not until it's ready because we don't want to alienate consumers" (I liked that idea a lot actually). Except... they never did. And they never revisited *all* of the libraries used inside it that are very live-free-or-die.

      Look, I'm a damned decent dev. I'm talented. I am no longer motivated there. And your assessment of lazy, stupid and demotivated is bullshit. Good developers *are* lazy. They hate writing code. They hate doing things more than once. We would rather write a thousand line shell script than do the same job twice. I have coworkers freak out when they see I have script-generating-scripts for some of the admin bullshit I do.

      But you've gotta understand, if the actual design didn't go in, and the specifications are or aren't fixed -- when I "get the job done" -- it may be very incomplete. If you come up with some "requiremen" from a post-it note buried behind your corkboard from a project design iteration a decade ago, and bring it to me one week before release -- I may just incorporate it. But don't be surprised if the person that maintains it thinks I was the worst programmer ever. If you do this repeatedly, I *will* hack your codebase into spaghetti as I find spots to put it in with three hours before deadline.

      And because you're a manager, and somewhat control my job, I will keep doing this as long as I can. And your codebase will get worse and worse, and buggier and buggier. And this isn't my fault or my problem. You will be advised every time there are consequences, and what it would take to do it right. Over the course of three or four years, you will notice that things I used to be able to do quickly will begin to take longer.

      I am completely capable of writing good code. I am *not* capable of consistently writing such good code when things emerge at the last minute. And then the bad things add up like plaque in an artery... and sooner or later SHTF.

      Believe me, I'll laugh after handing the codebase off to the next dev I've trained--and most of them will quit three months after me if they have any choice. Because I *am* a good, talented, no-longer-motivated, and *very* lazy developer.

      So.. here's the deal. You can work with the clients, give them a dream list... the possible. You can guide them and help them select ... the necessary. You can focus them through the constraints and guide them through the best path with you

    71. Re:You get what you pay/wait for by Jake+Griffin · · Score: 1

      The company I work for employs Agile and Scrum methodologies along with some Extreme Programming mixed in, and I would argue that we achieve all three. I am a part of a team of 6 developers and here is how I believe we achieve all three:

      Fast - By only working on the highest priority items, we get the most value out as soon as possible, and are able to switch gears on a weekly basis if the company's direction changes. With a waterfall approach (the most common I think), if the plan changed halfway through, you'd have to scrap everything you've done so far and restart (or risk taking on some serious technical debt).

      Cheap - Because we are only completing the highest priority items, we get the most value in the least amount of time. And less time spent means less cost. When we get down to the lower priority items, the product owner can decide on a whim that we don't really need to complete features XYZ, because what we have already completed gives us 90% of the business value for 50% of the cost.

      Good - Because our development cycle is so short (1 week), we are always working on things that are fresh in our mind. Also, when we're only focused on one feature at a time, we can really make sure that feature is done right, instead of worrying about how 60 different features are going to fit together (which can lead to some serious over-development and result in more technical debt). Paired programming also helps here, because we have a sort of built in QA as we develop from the person sitting next to us.

      The feedback we have received from the company is that we are a marvelous improvement over the previous team, and all six developers have been with the company for less than 2 years. The shared knowledge that is achieved through paired programming has really helped us to excel above the company's expectations. I have some references to some great Agile/Scrum coaches if anyone is interested. Hit me up at Jake{dot}Griffin{at}gmail{dot}com if you're interested.

      --
      SIG FAULT: Post index out of bounds.
    72. Re:You get what you pay/wait for by ghostdoc · · Score: 1

      We don't let the passengers design the flight control panel. Why do we let marketing design web applications?

      Partly because developers can be really bad at designing web applications too. We tend to think of how the site is constructed, not how it's used, and design nice, orderly, awkward, unfriendly interfaces.

      --
      Business/App ideas are like arseholes: everyone's got one, they're mostly shit, but very rarely they contain a diamond
    73. Re:You get what you pay/wait for by TheRealMindChild · · Score: 0, Troll

      It just takes her a lot longer (the slow part.)

      I'm assuming you are female, being that the default for an unknown gender (when one is used) is masculine.

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    74. Re:You get what you pay/wait for by TheRealMindChild · · Score: 1

      So, what am I supposed to do with these three wishes?

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    75. Re:You get what you pay/wait for by Belial6 · · Score: 1

      It seems that if you opt for slow and expensive, you always end up with crap.

    76. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      > Yep. Fast. Cheap. Good.

      I'll pick "Yep." and "Fast."

    77. Re:You get what you pay/wait for by frosty_tsm · · Score: 1

      Yep. Fast. Cheap. Good.

      Pick two.

      That's actually the optimistic perspective. Given skill, experience and good will, you could pick up to two. Frequently, the most you could have is one, or in sadly common cases, zero.

      I was going to say the same thing.

    78. Re:You get what you pay/wait for by Jane+Q.+Public · · Score: 1

      "... and it works well in SOME environments using SOME teams..."

      Well, of course. Did anybody here try to say that it works all the time, for everybody?

      "I call that one tool in a shed, not the golden swiss army/ginsu blade that does everything."

      Again, did I even imply that it did everything for everybody?

      But a report like this, that appears to imply it does little for anybody, appears to be, just as I said, FUD.

      "Companies use it MAINLY because they've hired program managers that are familiar with it, typically younger ones that want change. Change is good, as long as it provides a benefit. The company typically doesn't care so long as the work gets done in a reasonable amount of time."

      Again: companies would not use it -- especially so often -- if it did not provide benefit. It has been around far too long to be a fad.

    79. Re:You get what you pay/wait for by Jane+Q.+Public · · Score: 0

      "Using "waterfall" you could also get 1000 lines of code in a single day from a coder too..."

      Repeat: the oft-quoted "average" in a large waterfall project has often been reported at 7 usable (i.e., non-comment) lines of code a day.

      The average for Agile is commonly reported to be somewhere around 300 to 500 lines. That's a pretty significant difference.

      "(but some managers overestime the agility of Agile development and think that a major change that requires rearchitecting major pieces of the project can be incorporated into the next iteration)"

      I agree, but that's a problem with the manager, not with the process.

    80. Re:You get what you pay/wait for by MisterSquid · · Score: 1

      The options you're probably thinking of are "slow", "long", and "hard".

      --
      blog
    81. Re:You get what you pay/wait for by patchmaster · · Score: 1

      Fast - If the plan changes halfway through Agile development, how does that NOT result in the same discarding of work and starting over? In my experience it's very uncommon for non-Agile projects to change so drastically halfway through that you have to scrap everything done so far. Has it happened? I'm sure it has. But I'm sure something similar has happened to Agile projects as well.

      Cheap - Your conclusion is only valid if priority and value are directly related. Due to the various priorities of different departments, I've not found this to be at all the case. The marketing guys might think it's imperative and of the highest priority that the product use whatever the latest designer colors might be. Does this add value? Not in my book.

      Good - I fail to see how short development time necessarily leads to "good". As far as I can see, all it does is lead to doing things in bite-sized pieces. I'm not saying that's a bad idea, but it's been my experience that on any project of real substance it can be very difficult to break everything up into chunks small enough to complete in a week (or even two). We've tried this several times at my company and have always failed. Even with a two-week cycle it was very difficult to break things up into sufficiently small pieces.

      I would also suggest that non-Agile development in no way insists on you juggling 60 features at once and not submitting any of them until they're all complete.

      You obviously like the Agile approach, and that's great, but some realism in the implied criticism of other approaches would also be a good thing. The non-Agile developers aren't all dunderheads who do everything in the dumbest of all possible ways.

    82. Re:You get what you pay/wait for by MacDork · · Score: 1

      developers can be really bad at designing web applications

      If that's the case, they aren't very good developers. I *know* 500 thumbs are going to be a ridiculous amount of bandwidth. Marketing doesn't.

      We tend to think of how the site is constructed, not how it's used, and design nice, orderly, awkward, unfriendly interfaces.

      That's user interface design. Which, BTW, marketing ALSO has no fscking clue about. Marketing should be doing *marketing* and that's it.

    83. Re:You get what you pay/wait for by dynamo · · Score: 1

      1. Have a great idea. Let's say software, for example.
      2. Working on it yourself in your off time for a year or two.
      3. Really take your time to try to perfect it.
      You'll understand all too well.

    84. Re:You get what you pay/wait for by JoeMerchant · · Score: 1

      I don't know what the report is calling Agile, but the flavor of Agile I believe in mostly consists of development code that always works, it does not preclude documentation, planning, architecture, or rework. The only thing my brand of Agile lacks are multi-day periods where there is no new visible progress because "the code's all ripped up for rework and we won't be ready to test/demo for a few weeks." (Though, to be fair, architecture revisions can occasionally trigger one of these "no visible progress" periods.)

      If you could actually get an outsource team to work in that fashion, and could get management's attention on a regular enough basis to give them feedback, it could work. In my experience, outsource teams are anything but agile, and management generally only pays attention at T-40 hours and counting for contract delivery.

    85. Re:You get what you pay/wait for by JoeMerchant · · Score: 1

      Fast, Cheap and Good: you can always get one if you try for it, two takes skill, all three is a lottery win.

    86. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      How is that worthy of commenting on? It's as useless as this one.

    87. Re:You get what you pay/wait for by crutchy · · Score: 1

      I develop using the extreme methodology because it works.

      The main and deciding reason why is because clients and end-users never know what they want at the beginning, which is the critical flaw in waterfall design. It's the critical flaw in waterfall design of anything (not just software), but agile couldn't really ever suit development of say a jet airliner (though companies do try). You can offer a client or end-user something that you and they think they want, but when they start using it they will ALWAYS find something wrong with it. If you can't fix what's wrong, you've already fucked up by not meeting the needs of your client, but how could you since their needs are continually evolving. The main problem with waterfall is the lack of flexibility.

      You can buy some huge does-everything package (take SAP for common example) and then spend the next 10 years trying to change your company and procedures to suit how it works. On the other hand, extreme programming takes and existing system and improves it incrementally with lots of user input and allowance for changing priorities. It allows change to fit the company as opposed to forcing the company to fit it.

      Those who argue the other way will always come up with seemingly good reasons for companies changing to suit packages like SAP, but at the end of the day, every company is different, and companies would only be in a position to purchase a package like SAP if they had done pretty well for themselves already and knew a thing or two about making money in their operating industries. Who is SAP to tell any successful company how to operate their business?

      Agile and extreme are the future, not by design or choice, but by evolution and market force. Companies are getting sick of pigeon-holing software like SAP that doesn't work out of the box as they claim in their fancy sales presentations (amongst many and varied other false claims required to make the sale). Companies employ agile programmers to come in and fix problems created by these monstrosities (interfacing their previous working solutions into things like SAP). Waterfall programmers can whinge all they want, but they are a dying breed in their death throws and will of course say all sorts of predictable shit to get themselves out of the holes they've dug over the years. If you can't hack the agile world, go flip burgers or something.

    88. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      The iterative development model is really the best thing to come out of Agile, IMHO.

      The iterative process is great, but there has to be a meta-algorithm surrounding the scope cutting and re-inclusion in the iterations. At some point, the scope, or some compromise of the scope, has to get into the product. I've seen agile projects were the team just doesn't get that. They deliver things no one wants or can use.

      That said, technology is changing so much that speed is absolutely everything. If it doesn't get out the door quickly, you needn't have bothered. Old spec-it-to-death methods are doomed - not agile methods.

    89. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      You combine two horseshit buzzword methodologies and you get, at best, a clusterfuck. On the plus side, you're at +5 buzzword compliance!

    90. Re:You get what you pay/wait for by sycodon · · Score: 1

      AT&T DSL service.

      AT&T Data services (for phones).

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    91. Re:You get what you pay/wait for by IICV · · Score: 2

      ... few customers are willing to put in the time to spec out an entire project at the beginning (and are unwilling to freeze their business process during the project) ...

      Actually, even if they spec out exactly what they think they want and you implement it perfectly, on delivery you're still going to realize that 90% of the time what they said they wanted in the spec isn't what they needed.

      Asking someone to spec out an application sight unseen is essentially asking them to commit the planning fallacy, except for feature estimation instead of time estimation. Humans seem to be largely incapable of making detailed plans more than a few "units" in advance, no matter whether or not those units are time, feature or cost based.

      That's why Agile projects can "take longer" than equivalent Waterfall projects - if the client had somehow managed to spec out exactly what they really needed in the first place for the Waterfall project, I bet you it would have ended up taking about as long as the Agile version; the Waterfall project was only "completed" faster because nobody could foresee some of the features that would end up being required.

      Further, there's a whole heck of a lot less risk with the Agile project; if some feature isn't quite what you wanted, you'll find out in a couple of weeks, not a several months.

    92. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      I'd really appreciate it if you would (could?) support your assertion of 1000 lines of code per day. Something with a bit of substance? A peer reviewed paper perhaps? A published article with methods and metrics to support the claim? I'd wager you cannot, at least not in any way that would satisfy ordinary academic / scientific inquiry.

      In my opinion, unsubstantiated claims such as yours are part of the problem. Folks who don't know better may actually take you at your word. When the inevitable happens, those folks will become rabidly anti-Agile. Those folks who do know better, skip the whole honeymoon phase. With a bit of luck, they only condemn you for your hubris. Usually, they'll just condemn Agile.

      I say this not as an Agile skeptic, but rather as a practitioner with 30+ years developing software, 14 years of that using Agile methods.

      <sarcasm>Thanks for helping</sarcasm>

    93. Re:You get what you pay/wait for by GrumpySteen · · Score: 1

      Shipping options generally work that way. The slower the shipping method, the cheaper it is.

    94. Re:You get what you pay/wait for by JWSmythe · · Score: 1

            As I've observed from the mechanics themselves, pushing them to complete something in less time than they are comfortable with, can and will lead to errors. It could be something trivial, like forgetting to put your tire valve stem covers back on. It could also be something catastrophic, like not double checking the lug nuts were tightened down properly.

          Sure you'll get fast. You might get good, if they don't overlook something that they'd normally do because you were rushing them.

          I just fixed a friends car, who had a break fluid leak. It was discernible, he had to add brake fluid daily. The cursory check saw no problems at the wheels nor master cylinder, so they said there was nothing to worry about. They saw nothing wet, and no fluid on the ground.

          I took my time, and followed the whole system through. Half way down the frame rail, there was a pinhole leak, which only manifested when he pumped the brakes.

          Don't rush perfection, especially if your life depends on it. For a car, brakes are kind of important. For IT, it could mean that they missed a hole that could allow buffer overflows, SQL injection, or all kinds of dumb mistakes that simply shouldn't happen.

      --
      Serious? Seriousness is well above my pay grade.
    95. Re:You get what you pay/wait for by hawguy · · Score: 2

      "Using "waterfall" you could also get 1000 lines of code in a single day from a coder too..."

      Repeat: the oft-quoted "average" in a large waterfall project has often been reported at 7 usable (i.e., non-comment) lines of code a day.

      The average for Agile is commonly reported to be somewhere around 300 to 500 lines. That's a pretty significant difference.

      I'm going to have to call bullshit on those numbers. Unless you're saying that an Agile project is bloated with unnecessary lines of code because a developer continuously rewrites code over and over. I'm sure you can find the stats to back up 7 LoC for a Waterfall project and several hundrend LoC/day for an Agile project, but I can't believe it's an apples-to-apples comparison for an equivalent project.

      If those numbers were true a project that would have taken 60 months under the Waterfall methodology would take a month or two under Agile (assuming the same number of resources were assigned to the project). I haven't heard anyone claiming that a project could be completed 40 to 70 times faster under Agile.

      "(but some managers overestime the agility of Agile development and think that a major change that requires rearchitecting major pieces of the project can be incorporated into the next iteration)"

      I agree, but that's a problem with the manager, not with the process.

      Well, sometimes the adaptability of Agile is oversold. It's not a weakness with the process, but it is sometimes presented as a magic bullet that will let a project adapt to changing requirements, and not everyone understands that a fundamental change in the requirements may require a major overhaul of the project. Whereas waterfall makes that assumption explicit - what you write down is what you're going to get.

    96. Re:You get what you pay/wait for by tiraid · · Score: 1

      I think it would be hard to be slow and cheap.

      I am the only software developer at the start-up I work at. Development is slow because it is only me; but it is also cheap, because it is only me. Hiring another 5 devs would increase velocity and cost.

    97. Re:You get what you pay/wait for by tiraid · · Score: 1

      Yep. Fast. Cheap. Good.

      Pick two.

      I had a boss that just didn't get this, so I started saying it as: Slow. Expensive. Bad. Pick one.

    98. Re:You get what you pay/wait for by Nadaka · · Score: 1

      In my experience, agile is great for developing internal tools. You get stuff you can use early, and it improves over time.

      And much less great for developing client products. If the client is aware that the design is in flux, they will insist on changing the requirements at every possible opportunity.

      Its big drain is in the amount of time required to track and manage the daily tasks and the pressure to increase the accuracy of estimates. Spending an hour a day reporting progress and estimating the time it will take to complete tomorrows tasks is an hour I can't be doing something productive.

    99. Re:You get what you pay/wait for by mpfife · · Score: 1

      | In my experience, Agile projects tend to run longer than they would have under waterfall, but the end product is usually closer to what the customer needs

      Great analysis - I would agree.

      The other pitfall I've seen of people claiming to be 'agile' is that it's a keyword for "You're about to give your life and soul to this startup". I think a fair number of places claim to be running an Agile process, but in reality use it as a keyword for busting your hump as hard as they can. And run as fast as you can if you ever see an ad looking for someone that wants to hire you for "a fast-paced, dynamic, agile environment".

    100. Re:You get what you pay/wait for by patchmaster · · Score: 1

      I don't really have a problem with Agile development techniques. I have a problem with people who preach about them with religious fervor, always trying to convince others that Agile is the one true development methodology and all others are pretenders.

      It's my feeling that Agile techniques probably work well for certain situations and problems, but they don't always work in every situation. As you point out, Using Agile methodology when building a jet airplane is probably not the best way to go. Which is not to say some aspects of Agile couldn't be put to good use even with that scenario.

      One thing has become clear to me from years of reading Slashdot -- there are many different development environments. Anyone who thinks the techniques used in their little corner of the development world will be universally applicable is sadly deluded. This was recently revisited in the article questioning why people are still using C. The answer is that for some problem sets C falls somewhere between adequate and best language for the job. For other problem sets C is far from the best choice.

      The same applies with Agile. In some situations it works very well. In others, not so much.

    101. Re:You get what you pay/wait for by localman · · Score: 1

      I'm all for rapid development, but any time you're measuring coding productivity in "lines of code" you've already lost.

    102. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      No! No! No! You both are approaching system/feature design incorrectly. You don't ask the client/expert user what they want; that path leads to madness and failure. All changes are about solving a problem. First ask what are the pain points. Then observe how those pain points affect their lives / the bottom line. THEN you, as the analyst/designer, come up with a solution to the problem and run the client/expert user through it until they get it. The difference between a useless designer/analyst and a god walking amongst men, is how you are able to get your client/expert user to truely understand both their problem and your solution. This works 100% of the time. I have worked with the most retarded individuals to actual geniuses so I know that it works for everyone - the trick is in the communication techniques employed.

      That will be $10,000 for the lesson and you will think it a bargain.

    103. Re:You get what you pay/wait for by Assmasher · · Score: 1

      Yes, the triangle I call it. I always find a way to bring this up once we start talking about 'possibilities.'

      It's my mantra - "Fast, cheap, good - pick any two."

      Cheers!

      --
      Loading...
    104. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Agreed. My knee jerk reaction is, "If scrum/agile isn't working, your are doing it wrong." Which really isn't hitting the nail on the head very well.

      Cargo cult won't cut it and the biggest hurdle is getting management on board. The biggest issue I had at a previous employer with scrum was management insisting on changing course mid sprint, "You're agile right? You should be able to change immediately." Of course that kills any metrics for that sprint. Sprints ran fine when upper management was away (the team finished what was committed to), however when they were around it was impossible as you can't plan for those kinds of interruptions short of planning on getting little to nothing on the backlog done. We already were working around having our two most senior devs on the project having more than half their time eaten up by non dev "work" (i.e. what could be committed to for a sprint was much smaller than it could have been).

      In my own business I no longer run scrums due to the team size (me and another dev). I still hold the basics in place. I let the other dev do what he needs. He get's some guidance on what to work on then is left to his own for a week or more to do it. With good people you can do that. Good developers are self motivated and you get the best out of them by getting out of the way. Any form of micromanagement kills productivity. I can't understand why people manage in the way the do. You hired someone because you thought they were good. Let them prove that to you. It's more likely they will if you let them rather than micromanaging them into failure.

    105. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Besides the iterative development model, there's another thing I like about it.

      At least in scrum (I haven't tried XP or others), there's a retrospective every so often. You list what your team is good at and what it isn't. Then, you try to define a few improvements.
      This can be very small, but it can really improve your teams workflow.

    106. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      This is your boss speaking. You are fired.

    107. Re:You get what you pay/wait for by Aighearach · · Score: 1

      It's all just programming, mofo, do you speak it?

    108. Re:You get what you pay/wait for by turgid · · Score: 1

      Why should the engineers take the blame for everything, even other peoples' failings?

      It is everyone's responsibility to speak up when they see something that is wrong or needs fixing, but if stubborn, pig-headed PHBs and MBAs won't see the error of their ways, why should anyone else take the blame?

      Everyone working on a project must take responsibility, especially those in positions of privilege and power.

    109. Re:You get what you pay/wait for by ghostdoc · · Score: 1

      Depends on the skillset that you include in 'developer'. I know I suck at interface design, but I'm clearly a developer and I've been doing that successfully for 25+ years so I can't be that bad at it. I am colourblind which doesn't help things though ;)

      There are people out there who specialise in interface design. In an ideal world we'd get them to design all our interfaces. Just like in an ideal world the customer would be able to describe their requirements accurately and completely, and not change them during the development project... ...sorry, had to take a breather there, nearly died laughing. Or crying, one of the two.

      --
      Business/App ideas are like arseholes: everyone's got one, they're mostly shit, but very rarely they contain a diamond
    110. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Yep. Fast. Cheap. Good.

      Pick two.

      I've heard that many times before, and I have to disagree.

      Where I work, we didn't pick two.

      Our projects take twice as long as they should, cost three times as much as they should, and quality in the crapper.

      Who says you can't have it all?

      Would that be Slow. Expensive. Poor.

    111. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Yep. Fast. Cheap. Good.

      Pick two.

      I've heard that many times before, and I have to disagree.

      Where I work, we didn't pick two.

      Our projects take twice as long as they should, cost three times as much as they should, and quality in the crapper.

      Who says you can't have it all?

      just means your estimation is off, and you not setting the correct expectations

    112. Re:You get what you pay/wait for by KingMotley · · Score: 1, Informative

      Really? Because I find that our internal tools would be a bad choice. First, for internal tools, we typically aren't trying to manage customer expectations, and we all know pretty well at the start what the tools objective is. Meeting about it daily is usually a waste of time. But then again, that's our place, yours may be different.

    113. Re:You get what you pay/wait for by ljw1001 · · Score: 1

      Agile is a proven methodology. In the old "waterfall" software industry, the famous "standard" was 7 lines of code per day per programmer. Thanks largely to Agile methodologies, you can get up to as many as 1000 lines of code per day (though that's a bit on the high side), with even fewer bugs than the old 7-lines-per-day methods thanks in part to thorough, continuing testing being built-in to the process. I call that a huge success.

      I call that an unsubstantiated claim. Also, total nonsense.

    114. Re:You get what you pay/wait for by LongearedBat · · Score: 1

      There's something I don't understand about this...

      You'd think with all the talent and hard employee filtering processes, they would be pretty skilled and able developers.

      So how come so many businesses have such extremely disappointing experiences with outsourcing to India?

    115. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      What if I pick Yep and Cheap?

    116. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Usps ground

    117. Re:You get what you pay/wait for by mcmonkey · · Score: 1

      We've managed to hit the triumvirate of slow, expensive, and shoddy not through lax oversight of my work (though I am a programmer) but through out sourcing and off shoring.

      Management decided to send almost all technical work outside which, even if the individual programmers make less, costs more overall due to the redundant layers of managements between us and the consulting company.

      This also assures all projects run longer than needed because, while we use off the shelf software, we customize the heck of it and use it for off-label purposes so even with programers who are familiar with the software, project estimates are 3 to 4 times longer than similar projects done in house before they laid off most of our programmers.

      The results are crap for many reasons. One is while we do have big names in software--Oracle, SAP, Microsoft--we also rely on many less known, niche products, and no one thought to take that in to account when selecting our off shore "partner." So instead of someone in house who knows the software and our configuration making changes, updates are done by someone half a world away who has never heard of the software and has no history with our system. Oh, and we're so far behind the niche vendor's upgrade cycle that there is no available training for the versions we run.

      But the main reason we run slow, expensive, and shoddy is our IS projects are run by MBAs with no software or development experience. I survived the lay offs to be the technical expert to keep an eye on the consultants and contractors, but as I've tried to make clear, if they don't include me in requirements gathering with the users, and I'm not in on the design or construction, and they don't include me in the test cycle, then I don't know what it's supposed to do, how it's supposed to do it, or how well it performs, so I'm not much of an expert.

      No, I am not paid well. Yes, my resume is in order and I am looking.

      The bright side of lay-offs is, no matter what management thinks of me, everyone I've worked with as a peer or in my user community thinks I'm a superstar, and now I have this network of people who now work at all the major employers in the area, so there's no shortage of interest.

    118. Re:You get what you pay/wait for by Mycroft_514 · · Score: 1

      Here here. Agile is nothing more than a rehash of what we called prototyping back in the late 80s / early 90s. You didn't think there was anything new under the sun did you?

      The big problerm with Agile, the way it is practiced, is that you push 3 times as much rework on your DBAs and other support personal. Tell me - who costs more - a DBA or a developer?

      Agile proponenets never facter in the higher costs of the support staff, since they are "already there". But what does it cost to extend your support staff when they are overloaded? Where do you get those scarce people as well?

    119. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Man, you describe our experience exactly, up to present day. Indian programmers are some of the stupidest, unintelligent, hacks I have ever had to work with. The thing that drove us crazy the most? Ask them a question like "Is it A or is it B?" and they will respond with "Yes". Seriously. Stupidest, most untalented, under-educated group of "scientists" ever.

    120. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Yep. Fast. Cheap. Good.

      Pick two.

      That's actually the optimistic perspective. Given skill, experience and good will, you could pick up to two. Frequently, the most you could have is one, or in sadly common cases, zero.

      And the chance to chuckle. Or weep.

    121. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      There essentially are multiple rewrites built into the methodology. The first version of any bit of code is written in the simplest testable way. It is deliberately written as though extensibility and code reuse aren't required because for this iteration, they aren't. As opportunities for code reuse and needs for extensibility arise, code is repeatedly refactored, but tests are supposed to make refactoring less risky.

      I wonder whether they count the original code lines plus the rewritten lines plus the tests, and I wonder how that accounting compares to the waterfall accounting. Counting tests would almost double the count of final lines of code. Counting each line of original code plus its multiple rewrites would multiply the count many times.

    122. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      We've turned that around at out place, to make it:

      * Slow, Expensive or Wrong - pick at least one!

    123. Re:You get what you pay/wait for by Jake+Griffin · · Score: 1

      I didn't mean to come across as knocking other approaches. The core of my point was that in my situation, with my team, agile works well. And to address the questions you posed:

      Fast - By change of direction, I meant for the REST of the project, not work that was already completed. You can change directions on a weekly basis with agile (if your situation supports it, as someone else suggested, this won't work for the design of an airplane for example).

      Cheap - My team tends to use the words priority and value interchangably. The highest priority task is the one that brings the most value to the business as a whole (which can, admittedly, be difficult to judge the "highest" sometimes, but we do our best and people seem happy).

      Good - Short development time means we don't have to go back to the research and designing we did 3 months ago to remind ourselves what we're doing. The research and design is done in very small chunks and is usually from the past week. Yeah, some things take more than our one week time to complete, but we have SOMETHING done each week that is measurable, predictable, and best of all, sustainable.

      --
      SIG FAULT: Post index out of bounds.
    124. Re:You get what you pay/wait for by Jake+Griffin · · Score: 1

      Oh, and also, I was basing my comments on previous experience. I have worked using a waterfall model in the past, and in my experience it wasn't usually executed well, or didn't work as well as the team I am a part of now. So no, I don't know the best way to do things, but I do know what has and has not worked for me.

      --
      SIG FAULT: Post index out of bounds.
    125. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Then yep.
      And that one's even free.

    126. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      This is the result of choosing only Yep.

    127. Re:You get what you pay/wait for by crutchy · · Score: 1

      who costs more?

      consultants performing pointless system investigations in ever ultimately futile attempts to pigeon hole a company's infomation system in such a way as to fit a commercially available system in an also futile attempt to remove programmers from the picture altogether.
      also, dba's are generally cheaper than software engineers and programmers, so putting more workload on them is economically sensible if it improves development efficiency. having said that if you employ programmers with half a brain the db design would be no different regardless of which development methodology you use. anyone who needs to make a flowchart to normalise data isn't qualified to design a database in the first place.

      if an organisation needs to extend support staff for agile projects, it is likely that they would also be required for waterfall. waterfall projects don't result in a simpler design, it just takes longer for waterfall to produce an outcome that most likely no longer meets all the needs of the organisation anyway.

      the op is also right about agile not being new. i was programming that way long before i heard the term, but its a catchy name that can be used in marketing guff, and it also makes it easy to describe in conversation. agile is merely unplanned development by people that know what they are doing, which necessarily excludes CS graduates that cheated their way through exams and think that they know what they are doing just because their garbage compiles without errors. its also different from the philosophical types that have to analyze the organisation to the nth degree before they type a single line of code because they are so afraid of getting it wrong if they have nothing to back up every design choice. experienced agile programmers rarely need to document their decisions because reasons for them are usually obvious. agile programming also encompases the ability to recover from a fuck up without too much effort (it needn't even be a fuck up - it may just as well be a complete change of requirements by the client), so justification of an agile fuck up doesn't require the same amount of effort as trying to justify fucking up 6 months of fruitless planning and proposal preparation.

      agile programming is also likely to face more stringent financial monitoring, because the bean counters can directly track tangible costs versus practical benefits. costs of agile development aren't represented by some abstract thumbsucked figures on a tender document that will no doubt be blown out anyway.

    128. Re:You get what you pay/wait for by Kergan · · Score: 1

      If it can make you feel better, try hiring one directly... I tried that a few times, and found it was even worse than outsourcing a specific task to a pre-existing team.

      The single worst I hired mentioned he had a few personal projects and he wanted to start his own business someday. I figured I'd encourage the guy by offering him, at his option, to work 4 days per week instead of 5. He picked the full time option, as the pay was slightly higher.

      Having hired a few other Indians before him, I didn't worry too much about his pathetic productivity for the first couple of days. Until I saw him bidding on a job on E-lance.

      When I confronted him with it, he revealed that he occupied a day job at the outsourcing branch of a major US company. Aka he had two full time jobs and occupied them both by completing tasks on his own account.

    129. Re:You get what you pay/wait for by Unipuma · · Score: 1

      If you look into where Agile came from, you will see that it is a collection of best practices and insights gathered since the 60s. Agile is just a collection of common sense, nothing more, nothing less.

      Everyone implementing it as a 'thou shallt...' way of working, does not understand agile.

      Key focus is:
      - release early and often, so you get good feedback
      - TALK to your customer (and to your teammates), don't assume some email of document captures what they mean
      - improve your process if you find somthing isn't working, don't just continue with rituals and procedures because someone said so.

      Yes, this asks of a certain mindset from both team and customer. But if they didn't have that mindset to begin with, no matter what method you use, you will fail.

    130. Re:You get what you pay/wait for by Jane+Q.+Public · · Score: 1

      "I'm going to have to call bullshit on those numbers."

      As I said, they are commonly reported. I'm not vouching for their veracity... maybe the people reporting them are exaggerating. How should I know?

      But the 7 LOC number (or some say 10) is a famous one and you can find many sources for it... it's hardly in dispute.

      As for the other number, as I say maybe they are exaggerating, but I think there's good evidence for it. Sunday and Monday of last week I personally averaged more than 1000 lines per day. And that's not comments and whatnot either... that's actual lines of code.

    131. Re:You get what you pay/wait for by ultranova · · Score: 1

      I *know* 500 thumbs are going to be a ridiculous amount of bandwidth.

      You could simply do like this Greasemonkey script and attach new thumbnails at the bottom of the page when the user scrolls down.

      That's user interface design. Which, BTW, marketing ALSO has no fscking clue about. Marketing should be doing *marketing* and that's it.

      You mean like deciding what the marketing materials, such as company website and its photo gallery, should look and feel like?

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    132. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      Yes but with Agile developers tend to jump into the code day 1 without thinking about arhcitecture/design, so they end up with code that stinks.

    133. Re:You get what you pay/wait for by Thuktun · · Score: 1

      If the client is aware that the design is in flux, they will insist on changing the requirements at every possible opportunity.

      In my experience, clients do not need this excuse to constantly change requirements.

    134. Re:You get what you pay/wait for by Anonymous Coward · · Score: 0

      I see you haven't met the XP cult members...

    135. Re:You get what you pay/wait for by kelfink · · Score: 1

      I'll choose Pick Two. Then I can go back for the others.

    136. Re:You get what you pay/wait for by turbidostato · · Score: 1

      "Why should the engineers take the blame for everything, even other peoples' failings?"

      All I talked about was deflecting blame, as in "make sure it doesn't falls on me", not that it effectively will fall on me and even less if it would be a deserved on undeserved blame.

      "It is everyone's responsibility to speak up"

      Then it's everyone's responsibility to be sure they are doing all at their reach and proportion to maximize the project's odds to success, which brings the situation back to square one: saying "the issue is with Marketing or perhaps the Project Managers" is maybe a good way to deflect blame away but adds zilch to the project's success odds so, any other suggestion?

      "if stubborn, pig-headed PHBs and MBAs won't see the error of their ways, why should anyone else take the blame?"

      Because the world is a filthy unfair place and those on a position of power, specially if they are of the stubborn and pig-headed kind, will use their power to deflect away blame making the tryings of their minions not only not conducive to rise the odds for the project to success but moot at deflecting blame away from themselves because power is a much better weapon for this?

    137. Re:You get what you pay/wait for by turgid · · Score: 1

      We engineers should refuse to put up with this. I know it's not always possible to find a new job, but we must vote with our feet wherever possible.

      In my experience, businesses run by people like that are usually on their way down anyway.

  2. I disagree .... by Anonymous Coward · · Score: 0

    While Agile shouldn't replace good practice of project management, when working on smaller scale issues, products, features, in my (humble yet practical) experience Agile has proven very rewarding and efficient. But I can only imagine it mixed with more traditional project management tools/practices.

    1. Re:I disagree .... by Anonymous Coward · · Score: 0

      [addition from the same author] what is a scam though is those so claimed consultants who come in promising miracles ...

    2. Re:I disagree .... by Anonymous Coward · · Score: 0

      While Agile shouldn't replace good practice of project management

      Which means Agile, at best, is only as good as any other methodology with less documentation.

      Honestly, Agile is a crock. I've never bought into it because I've always seen it for what it is - just a hipster's counter culture movement to project planning.

    3. Re:I disagree .... by Immerman · · Score: 3, Insightful

      Oh, I don't know - given N methodologies of approximately equal effectiveness, it seems to me the one that the workers find most enjoyable/rewarding is highly preferable as it will allow you attract better people and/or pay them less.

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
    4. Re:I disagree .... by The+Mister+Purple · · Score: 1

      I agree. One of the reasons waterfall-type project management is hard to reconcile with software development is that waterfall is great for physical projects, where making radical design changes made when the object under construction is 75% done cause a massive (and, more importantly, obvious) waste of resources. For example: it's hard to revise the foundation of a building when there are 10 stories of ironwork already completed above it without tearing everything down. With software, the cost of revision, while it can be significant, is less of a factor. Thus, iterative development makes sense for software, because the physical limitations are lessened or eliminated.

      Use waterfall methodology with a software product today, and you're releasing a product that might be a year or two behind the times, while your more agile competitors, who are only a quarter behind, have something more up to date.

      Mind you, both products might suck.

      --
      "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Feynman
    5. Re:I disagree .... by The+Mister+Purple · · Score: 1

      Mind you, both products will probably suck.

      FTFM

      --
      "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Feynman
    6. Re:I disagree .... by Anonymous Coward · · Score: 0

      In 1970, Royce presented Waterfall (though not by that name) as an example of what not to do ... a flawed, broken, process. Remind me why we have to continuously relearn this?

  3. Who are these people again? by JDG1980 · · Score: 5, Insightful

    I'd never heard of Voke before today. What is this company? What credentials do their analysts have, that we should care what they say? (I don't mean academic credentials, I mean proven real-world success.) What are they trying to sell?

    There needs to be more skepticism about statements coming from random "consultants", think tanks, etc.

    1. Re:Who are these people again? by neiljt · · Score: 3, Insightful

      There needs to be skepticism. Doesn't really matter who suggests it.

    2. Re:Who are these people again? by ahem · · Score: 5, Insightful

      I took a look at their website. Seems like two ex-Gartners striking out on their own to build their own Gartner.

      To that end, it certainly casts the alarmist report titles in the class of "generate buzz/subscriptions".

      Both of the bios of the principals are fully buzzword compliant, not to mention cromulent.

      --
      Not A Sig
    3. Re:Who are these people again? by dkleinsc · · Score: 5, Insightful

      What are they trying to sell?

      Seems like the service they're intending to sell is a believable reason for manager A to blame the failure of a software project on manager B. In large companies, that's extremely valuable.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    4. Re:Who are these people again? by RabidReindeer · · Score: 3, Funny

      I took a look at their website. Seems like two ex-Gartners striking out on their own to build their own Gartner.

      Dogbert & Ratbert?

    5. Re:Who are these people again? by greg1104 · · Score: 4, Insightful

      I don't know why this is modded Funny when it's the most Insightful description of the report yet.

    6. Re:Who are these people again? by Anonymous Coward · · Score: 0

      More like Bob the Dinosaur.

    7. Re:Who are these people again? by Anonymous Coward · · Score: 0

      Who decides whether or not analysts' credentials, in the form of "real-world success," are adequate enough to be reported?

  4. Developer rebellion? by Nursie · · Score: 5, Interesting

    It was forced on us by "hip and trendy" managers who saw it as a way to get more frequent status reports (i.e. pretty much daily) and try to get more work out of people (it's agile! Crunch time is every sprint!).

    Not that I hate working that way, I like the morning meetings when they're conducted correctly, but it's not a panacea. Neither is it really anything new AFAICT, it's just waterfall with shorter iterations.

    1. Re:Developer rebellion? by Anonymous Coward · · Score: 5, Interesting

      That is so true that it's waterfall with shorter iterations. The process can still fail miserably if you don't have someone steering the process towards the deliverable goals. Also, just because you finished a piece of shitty code and decided to move on can still spell disaster for a project. One of the assumptions in Agile is that at almost any point you could go back and recode a significant amount of the work once you realize that you've been going down the wrong design path. Sounds nice on paper but in reality I doubt that ever happens. You rarely get a chance to redesign major code elements once they start getting leveraged and established throughout the codebase.

    2. Re:Developer rebellion? by Vanderhoth · · Score: 5, Interesting

      ^ This is exactly what happened in my department. No training or understanding of the processes involved. We were told by our managers, who heard it used as some buzz word then read an article or something on it, we were going to use it.

      After five years of practice and putting my own money up for training I finally have somewhat of a handle on it, and it works great in some situations. Specifically when a project is really short and only has maybe one or two cycles before it's complete.

      The worst thing I find about Agile is scope creep. We were told we need to manage client expectations, which wouldn't be a problem except we're not allowed to say no, or that we can't do something, and we're not allowed to discuss cost. What I've ended up doing is putting all the request I get in a database then I let the client pick the most important features at the beginning of each cycle. After two or three cycles the clients usually forget about the, "oh, you know what would be really neat!!" features, or they confront me with, "Why hasn't such'n'such been done yet I asked for it two months ago", in which case I tell them it's in the queue. When projects go over budget we leave it to the managers to deal with. After all we're not allowed to discuss cost.

    3. Re:Developer rebellion? by modmans2ndcoming · · Score: 1

      Waterfall is the basis of all engineering....the difference is you can not use it in its classic sense in a software engineering project. Iterative is the modification you are talking about and yes...it takes smaller chunks and applies the waterfall to each...what separates basic iterative from Agile is the methodologies used to decide what belongs in the iterations.

    4. Re:Developer rebellion? by modmans2ndcoming · · Score: 1

      That is actually a really cool way to make the customer feel like they are in control... they can request many changes, and choose the priority for the next release....not bad.

    5. Re:Developer rebellion? by mwvdlee · · Score: 3, Insightful

      I've seen this in practice, it works really bad.
      The problem is that "really cool new features" pretty much always win from all but the most annoying bugs.
      If you rely on a feature that only a minority uses and that feature is bugridden, a customer-controller priority system will ensure that it'll never get fixed.
      Unless they make an exception for bugs (bugs have priority over everything else), it won't work.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    6. Re:Developer rebellion? by Anonymous Coward · · Score: 0

      You are doing it wrong.

      What do you mean by managers getting more frequent status reports in agile? In my experience agile removes the need for status reports. If a manager needs a status report they can just have a look at the backlog or listen to what is going on in a daily scrum. Also at the end of each sprint they get to see demo of what is working. During the sprints the team doesn't need to do any status reporting other than marking their tasks as done. In one team that I was in we actually could stop making stupid power point status reports that no one reads because of Scrum.

      Also some time ago I worked in a team that used Scrum or actually managers had forced them to use Scrum. They were basically using Scrum terms, but doing everything wrong. The team didn't perform that well and of course they partly blamed agile/scrum. I have had great experiences of Scrum in other teams that are more experienced and know what they are doing.

      This quote actually quite nicely proves that they are not doing Agile correctly:

      Survey participants report that developers use the guise of Agile to avoid planning and to avoid creating documentation required for future maintenance

    7. Re:Developer rebellion? by cmat · · Score: 2

      In fact, the customer really must always be in control... of the features. As developers, we are good at what, how, when and where. It is however, the "why" that will hang us ever time. And the "why" is driven by and only by the stakeholders of the software being developed (i.e. typically the "client" or "customer"). So they must (imho) ALWAYS have control over the features, and be given input as to how their choice of features impacts the other variables: cost and delivery time (which we are supposed to be the experts in providing them).

      I don't think it makes any difference on the development methodology used, but this one golden rule will, must always be obeyed in successful projects: the clients choose the features, the developers provide the estimates and recommendations on implementation and delivery time. Then the client is free to make an informed decision based on what's the most important features for them at the time frame that developers feel is achievable.

      --
      -- Humans, because the hardware IS the software.
    8. Re:Developer rebellion? by Anonymous Coward · · Score: 1

      I once asked my boss to prioritize the requests I had for a project. He said all the requests were priority 1.

    9. Re:Developer rebellion? by donscarletti · · Score: 1

      If I had asked people what they wanted, they would have said faster horses - Henry Ford

      One can make an effort to understand the business practices and requirements of the client well enough to give them what they need, rather that what they ask for. It's a riskier proposition because you can't just throw it back saying "well, this is what you said", but if you really want to make a something more efficient, especially if it is internal and will impact you in the future, you've got to tackle the whys with the what, whens, wheres and hows and deliver the solution that is needed, rather than what someone with questionable understanding of the problem has asked for.

      --
      When Argumentum ad Hominem falls short, try Argumentum ad Matrem
    10. Re:Developer rebellion? by Kjella · · Score: 1

      The worst thing I find about Agile is scope creep. We were told we need to manage client expectations, which wouldn't be a problem except we're not allowed to say no, or that we can't do something, and we're not allowed to discuss cost. What I've ended up doing is putting all the request I get in a database then I let the client pick the most important features at the beginning of each cycle. After two or three cycles the clients usually forget about the, "oh, you know what would be really neat!!" features, or they confront me with, "Why hasn't such'n'such been done yet I asked for it two months ago", in which case I tell them it's in the queue. When projects go over budget we leave it to the managers to deal with. After all we're not allowed to discuss cost.

      Well, part of agile is that managers have the permission to change priorities (but only between sprints, not during sprints), but they can't put infinite work into a sprint - if something gets prioritized up everything else is prioritized down. And strictly speaking you shouldn't speak costs but you should speak hours - estimated with planning poker or something like that. Here's roughly how I've understood it should happen:

      1. The product backlog should contain all the tasks the project should do. Tasks that are far out are coarser and have less secure estimates, but that list is the best estimate on the total scope.
      2. Any pet features the manager has wanted should go in the product backlog, that's the only place where he's allowed to add items.
      3. Before each sprint, the team detail and estimate sprint tasks from the product backlog that might go into the next sprint, for a small feature this may be a 1:1 but for a large feature there's typically many sprint tasks to one product task.
      4. The manager and the scrum master go over the product/sprint items and decide which should go into the next sprint, the sprint is timeboxed and the estimates are given so it's almost like ordering a la carte, you can only get X items from the menu.
      5. You can at any time see the scope creep from hours spent + product backlog. Typically you create a burndown chart which shows how many sprints it would take to complete the project given the current backlog and the current velocity (hours delivered/sprint).

      --
      Live today, because you never know what tomorrow brings
    11. Re:Developer rebellion? by Surt · · Score: 1

      Shorter iterations is kind of the primary point. The idea being that project failure will become visible earlier, opening up more options in the response to the failure.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    12. Re:Developer rebellion? by Surt · · Score: 1

      What you've ended up doing is exactly what agile recommends: all work is in a single priority queue, and the customer gets to determine the priority every sprint. Work comes out of the queue at the rate reality dictates, but the customer can always decide what is most important to them to get next.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    13. Re:Developer rebellion? by Surt · · Score: 1

      Why is that the wrong outcome. From what you are saying, they are maximizing customer satisfaction overall. Yes, you, the minority customer, are dissatisfied. But someone has to be in this scenario. Why should they choose to make more customers dissatisfied?

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    14. Re:Developer rebellion? by Surt · · Score: 1

      Agile would say that someone with a theory of a better solution would propose it during the customer feedback cycle, and let the customer decide if that better solution is actually what they want.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    15. Re:Developer rebellion? by Surt · · Score: 3, Interesting

      You asked wrong. You don't ask for the priorities, you ask for the order he'd like them resolved in.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    16. Re:Developer rebellion? by foniksonik · · Score: 1

      If you didnt get your stakeholders to practice agile (go to backlog meetings at least) then it won't work. They also have to participate. They should set business value (1-10 works) and provide clarity on what needs to be built. At the end of a sprint they see the work and add refinements to the backlog.

      --
      A fool throws a stone into a well and a thousand sages can not remove it.
    17. Re:Developer rebellion? by dcollins · · Score: 1

      Counterargument: Why bother taking that risk for a custom one-off project for a single client? If you've already got the development contract, then there seems to be little upside in doing something unexpectedly revolutionary (and as you say, "it's a riskier proposition").

      Now, if you're making a product for mass-market consumers, who will make a purchase decision at a time much later than design/development -- like a Ford automobile, or Google or Facebook or entertainment media -- then that's a different story.

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    18. Re:Developer rebellion? by mothlos · · Score: 2

      This isn't a problem with Agile as much as it is a problem with organizational management. It seems that every new idea is simply a way to rebrand management's desires for more work and more control over the process. I can't tell you how many stories I have heard (omitting my personal experience) of shops which implemented structural paradigm 'X' (e.g. Agile, ITIL, Six Sigma) only to cherry-pick and misimplement and then later call the paradigm a failure when in reality the paradigm wasn't even attempted in anything like a reasonable way.

      That said, Agile doesn't solve every problem and for many projects it isn't particularly appropriate. Agile works best when stakeholders are not dependable and you, developing something fairly straightforward, and your team has sufficient maturity and buy-in. That said, Agile does encourage practices which are applicable in almost every project, particularly writing smaller functions which work and saving optimization for later.

    19. Re:Developer rebellion? by Decameron81 · · Score: 4, Insightful

      Agile works, as long as everyone involved has the balls to stand up for their own part of the process. If the client requests a feature that requires a big chunk of code to be rewritten / refactored, you just have to make sure you're upfront about it, and make it clear of how much effort and time will be required in the process.

      The basic thing to keep in mind if that your boss, or the client don't trust your effort / time estimations, agile won't work.

      And as a final note: the way to make sure you can trust someone is to hire the right people - have a good screening process when you hire.

      --
      diegoT
    20. Re:Developer rebellion? by hey! · · Score: 1

      Well, agile's been around for something like a decade, so it can hardly be seen as trendy any longer.

      "Agile" is an umbrella term that covers many "best practices" that cover interlocking areas of concern. Unit testing is one example that actually involves more up-front work. The reason automated testing is "agile" is that it is a safety net that allows programmers (or pair programming teams) to work with greater autonomy from each other. It allows you to catch any unexpected results of aggressive changes. This doesn't mean much if you don't have source code control, and notice how it adds considerable value to automated source control over seat-of-the-pants "I'll just save this version with a different name" management of old code.

      This is also an example of how trying to just be "a little agile" it doesn't work. If you don't add unit testing and source control together, you may add only half of the conceptual and labor burden, but you get a lot less than half the benefit. This is why so many people don't see the point of "agile". They did implemented individual, agile-ish practices, but they've never really grasped the point of agile, which is to gain those precious nuggets of time when you can concentrate on a specific, identifiable problem without having to worry about interruptions (the boss walking in mid-morning and reodering your day's schedule) or unintended consequences (will this break what everyone else is doing?).

      Neither is it really anything new AFAICT, it's just waterfall with shorter iterations.

      And you don't think that's something new? Were you expecting magic? You have to set goals, and unless your project is utterly trivial you have to adapt it to evolving needs.

      Having managed developers before and after "agile", I think Scrum-style sprints are the greatest thing that ever happened to managing software development. It doesn't *prevent* you from having year-long or even multi-year plans, it just provides a formal framework in which you can balance the need to get something identifiable done with the need to respond to new knowledge. That knowledge is not always imposed upon you externally by management. Sometimes you discover a risk or problem that could invalidate a lot of future work if you don't address it right away.

      try to get more work out of people (it's agile! Crunch time is every sprint!).

      If it's crunch time every sprint, it's not necessarily the managers who are at fault. It might be you. Are you honest in the estimates of what you can do, or do you tell the manager what he wants to hear? If a quality job on a target can't be done in the time they ask you to do it, are you assertive about that? Do you manage your own time so you can go home on time at the end of the sprint? I don't currently manage a team, but when I did I was a stickler for that. In an unexpected emergency, or if the muse was on you, I'd let you stay late but I'd make take comp time immediately. Why? Because as a manager I prefer repeatable, predictable processes to heroic displays of individual dedication. Those are needed occasionally, but they represent a failure of planning, and I don't believe in developing habits that paper over failure.

      Now if a manager tells you to do something quicker than you think can reasonably be done, that's just bad management. Management should be based on reality, not wishful thinking.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    21. Re:Developer rebellion? by Immerman · · Score: 4, Insightful

      I've come to the decision that good up-front design is important at an architectural level - get a good, well though out "skeleton" in place and you can flesh it out all higgledy-piggledy while being confident that any major rewrites will be of a limited scope. Overall code and data structure, APIs between large modules, that sort of thing. Time spent on quality large-scale design up front tends to pay for itself many times over in the long haul since you can make sweeping changes at low cost. On the other hand any halfway-decent programmer is also at least an adequate designer - when you start designing the details of every module or function up front you're probably just wasting a lot of time, and it sucks all the creative joy out of actually programming. What fun is writing code when the only room for creativity is minor implementation details? If your design is detailed enough to be read as extra-high-level pseudo-code all that's left is the tedium of actually writing the corresponding code, and you've demoted your programmers to the position of sentient pre-compiler.

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
    22. Re:Developer rebellion? by Anonymous Coward · · Score: 0

      If you're not allowed to discuss cost then of course it won't work so well. You meet with the customer between each sprint to discuss what will happen in the next sprint and the next sprint is of a fixed length. What features can fit into the next sprint depends on how much time each feature will take to implement, which is another way of saying that it depends on cost. If the customer is choosing features without being told what they cost then the customer is not making an informed decision and will choose a very useful feature that takes a year to implement over an almost-as-useful feature that takes an afternoon to implement. I can see how that goes wrong for a longer project.

      Maybe you can make up some kind of system of stars and say that each features takes so many stars and there is a fixed number of stars in a sprint. Stars still correspond to cost, but not in as obvious a way as hours do and perhaps marketing and your manager would be OK with it that way?

    23. Re:Developer rebellion? by The+Mister+Purple · · Score: 1

      call the paradigm a failure when in reality the paradigm wasn't even attempted in anything like a reasonable way.

      While this is an accurate statement that I heartily agree with, I am amused by the resemblance to the defense of communism offered by more than a few of the trustafarian/hipster types I've had the "pleasure" of working with in the past.

      --
      "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Feynman
    24. Re:Developer rebellion? by Anonymous Coward · · Score: 0

      The customer is unlikely to appreciate the impact of technical debt the way the programmers who are deep into the code do, so managing technical debt is not something the customer is likely to be very good at. At the same time, the customer is much more likely to be good at saying which features are more important for the customer. So you make a system where the customer chooses the features to work on and the developers choose how to manage the technical debt which includes many kinds of bug fixes. The bugs where the code isn't doing what the programmer intended is technical debt - developers rule over when to fix these bugs (probably as-soon-as-possible). The bugs where the code is doing what the programmer intended but the customer thinks the program should be doing something else is not technical debt - the customer rules over when to fix these bugs (maybe now, maybe never).

    25. Re:Developer rebellion? by turbidostato · · Score: 1

      "If you rely on a feature that only a minority uses and that feature is bugridden, a customer-controller priority system will ensure that it'll never get fixed."

      And the problem is?

      It's the customer's money, not yours, and it's the customer's customers, not yours. If your customer's POV is "fuck my customer base bugged by #876" why should you dare to tell or act otherwise? If you think you can lead your customer's business better than him you might try to start a business competing against him instead of one servicing him, don't you think so?

    26. Re:Developer rebellion? by turbidostato · · Score: 1

      "If I had asked people what they wanted, they would have said faster horses - Henry Ford

      One can make an effort to understand the business practices and requirements of the client well enough to give them what they need, rather that what they ask for. "

      The Henry Ford anecdote might have a different reading that you might think. Henry Ford's on faster horses survived not because of what he said but because of what he didn't say: "...but still, by offering something my prospective customers didn't think they wanted or needed, I did a lot of money in the end".

      *That* is the important part. Apply it to software development: you can offer your opinion to your customer about why he should prioritize A over B and you might the right or wrong and you might convince your customer or not. But good luck trying to make money in the software developing-for-hire market by telling your customers "you wanted A but I produced B instead".

    27. Re:Developer rebellion? by turbidostato · · Score: 2

      "You asked wrong. You don't ask for the priorities, you ask for the order he'd like them resolved in."

      "all of them by the end of this week, or yesterday, whatever is sooner".

      There.

    28. Re:Developer rebellion? by overnight_failure · · Score: 2

      If you think it's waterfall with shorter iterations you may be missing the point. I'd also say 'agile' covers many different methodologies so your generalisation isn't really applicable.

    29. Re:Developer rebellion? by Anonymous Coward · · Score: 0

      Sounds nice on paper but in reality I doubt that ever happens. You rarely get a chance to redesign major code elements once they start getting leveraged and established throughout the codebase.

      Strong coupling is a separate problem and independent of the process.

    30. Re:Developer rebellion? by turbidostato · · Score: 1

      "And strictly speaking you shouldn't speak costs but you should speak hours"

      For what you say so are talking about a specific incarnation of "agile", namely Scrum.

      Well, being nitpicky, you shouldn't talk about hours either*1, but about "percieved difficulty", whatever that means (it is a "perception" an expert-in-the-field will do when confronted to having to do the thing and that's the best we can have: that's why you have the fibonacci cards instead of simply allowing the developers say "I think this will take me 20 hours").

      Another point is that, at least on a mature team, you don't need nor should say what fits in the next sprint, because it is a calculated value: "sumatory of the difficulty points on the N first task on backlog / team speed" will automatically tell you what to expect to be done by next sprint end*2. The burndown chart is the tool both the pigs and the chickens have to learn to do better predictions over time.

      *1 And it makes sense: number of hours X cost per hour will automatically tell you a money figure. You are not expected to talk about money, despite of the fact that money is and should be the most important consideration for the customer, because you can't and shouldn't talk about hours either.

      *2 On a side note, being clear about the fact that the sprint goals are strictly a calculated value helps against "the mythical man-month" problem: a manager feels a project is under goals/overbudgeted and feels the temptation of adding new resources late in the project. Question: how much will it help to make the project evolution faster? Answer (in Scrum): who knows? we don't know how much this new guy will increase the team's speed, if at all. Again, about 1, if you fail at understanding that card points are not hours, the output of a new developer on the team would be obvious (and wrong): adding a new member to the team adds 40 hours a week more and so, you can perfectly can calculate the new burndown chart. Only it doesn't work that way, does it?

    31. Re:Developer rebellion? by CyberLife · · Score: 2

      One of the assumptions in Agile is that at almost any point you could go back and recode a significant amount of the work once you realize that you've been going down the wrong design path. Sounds nice on paper but in reality I doubt that ever happens.

      Happens in my company all the time, but it requires competent management and lots of discipline. The software design has to support such changes, as does the work environment. If you've got a jumble of spaghetti and a boss who just wants it done, you've got management problems. No system is going to be very effective.

    32. Re:Developer rebellion? by Anonymous Coward · · Score: 0

      How do you propose a change to the new version of the ORM without really being able to explain the reasons (to non-programmers)? Isn't this what used-car salesmen do when selling undercoating?

    33. Re:Developer rebellion? by Anonymous Coward · · Score: 0

      "The worst thing I find about Agile is scope creep."

      AMEN! Not just scope creep - which happens every iteration - but constantly changing requirements - every iteration. How the hell can you build a product when you never get final requirements to work from.

    34. Re:Developer rebellion? by Surt · · Score: 1

      Yep. Nothing in here really disagrees with my claims, which were related to the customer facing bugs described by the GP.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    35. Re:Developer rebellion? by Surt · · Score: 1

      Then he failed to answer the question of order. Now you face a decision: push back now while he can still get something he wants, or push back later when you've done some of the work and discover he got none of his actual top priorities. It's going to be tempting to go with the first option (delays pain), but with experience you'll discover that the second yields less total pain.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    36. Re:Developer rebellion? by Surt · · Score: 1

      I'd say one of the following:

      Making a change to the ORM will make required features possible.
      Making a change to the ORM will allow us to deliver features faster in the future.
      Making a change to the ORM will improve reliability.
      Making a change to the ORM will improve performance.

      Lots of very simplified options. Use the one that is closest to the truth. If none of them are true, question whether there is really a benefit to the ORM change.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    37. Re:Developer rebellion? by Anonymous Coward · · Score: 0

      Managing scope creep is part of Agile. You plan each iteration (if you're using scrum) with the amount of work the developers can finish in that time period, so the product owner is forced to select which features they really want. If the product people are correctly involved in the process, then it becomes much more transparent to them that changes or additions to the backlog will cause other work to be delayed.

    38. Re:Developer rebellion? by modmans2ndcoming · · Score: 1

      Bug fixes do not take precedence over features and the two should not be mixed.

    39. Re:Developer rebellion? by asdf7890 · · Score: 3, Interesting

      The basic thing to keep in mind if that your boss, or the client don't trust your effort / time estimations, agile won't work.

      Herein lies one of my problems with what my people are calling Agile (everyone I talk to seems to have a slightly different, sometimes wildly different, idea of exactly what "agile" means - ATM it seems to me to be "what we've always done to an extent, but more formalized and with responsibility more evenly spread"). Our company/group is going through a very fast change at the moment (most of it for the better: resource for things we've been begging for resource for for years, better coordination/sharing between parts of the group, commitment to proper planning, and just general investment from up high to refresh+grow our people and equipment) and "agile" is one the BigThings.

      I'm liking parts of it, but some of it grates (the terminology for a start: the next person who calls me a "scrum master" is getting rugby tackled or, if I'm having a bad day, pushed down the stairs).

      One of the issues I'm having is that people are trusting my estimates too much IMO which pushes me out of my comfort zone quite a bit as I know that tracking and estimating time is very much not my forté. Though I think part of the problem is one step above my line manager, where there are a couple of people taking estimates too literally which seems to me to go against the methodology they are asking us to follow: they ask for a ball-park estimate, but then expect a detailed report if things take more or less time than that "guess" (and preparing that report, or just having meetings about it, eats into the next period's hours for someone). As it happens I've surprised myself by being fairly close to the mark most of the time thus far, when estimating my ability to get X done in a given timeframe, and other peoples' abilities to do the same, and including "coordination time", but I fully expect at some point soon there will be a massive underestimate (there have been some underestimates already, but some overestimates too and they've more-or-less cancelled out and where they didn't I pulled extra hours and made them look like they did) and excrement will be introduced to the air circulation device...

      One of the things I'm not getting out of the change that I've been nagging about wanting for years is time to adequately document work so that later maintenance is less arduous. Tasks like that are considered and get the own "card", but those work items don't seem to gather any priority.

      Though as I've expressed my concerns more than once I'm filing it under "things I can say 'I told you so' about when the time comes" for the time being. Having said that, the things that look much more positive in the future as a result of the investment/expansion/improvement are outweighing my concerns at the moment - I'll take a long look at the situation again when I can see where some more of the many balls that are up int he air right now are likely to land.

    40. Re:Developer rebellion? by complete+loony · · Score: 2

      I thought that one of the points of agile / scrum, is that you only give an estimate in hours when you have broken down a piece of work into smaller tasks, each of which should only take a day at most to complete. ie, when you have almost finished designing the solution and now just have to implement it.

      Are you giving estimates in hours before that process has been completed? Is your task breakdown insufficiently detailed? Do some of your tasks have big unknowns?

      At the time a task goes over, or the discovery of an unknown or additional piece of work that your task breakdown didn't cover. Create a new task, give it an estimate, and quickly document why it was required. Before the next iteration, review all of these extra tasks and try to learn something from them.

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
    41. Re:Developer rebellion? by DNS-and-BIND · · Score: 1

      You don't need that accent on the "e" of "forte". You're thinking of the Italian word forté, which means loud. The English word forte, meaning something you're good at, derived from the French word fort, in the sense of fortification. It's pronounced "fort", the Italian word is pronounced "for-tay". The more you know!

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    42. Re:Developer rebellion? by Anonymous Coward · · Score: 0

      My experience has been one where the customer does not want to give any input except to tell you at the beginning what they want. When you are through they tend to look at it and claim the whole thing needs to be done over and this won't do. Why? The color of the button on the side has to be changed! Thats right. And the font you used for the interface looks like a competitor's! You tell them yes since the customer is always right and make those "completely done over" changes that take maybe 30 seconds and tell them to look at it again and they say they'll get to it after lunch and then when they don't do it then you deploy it and it works and they don't bother to critique it again since they have forgotten about it. Run on sentence maybe but I will bet you more than HALF of business is done like that today. I get the feeling that most of these projects are done because somebody's supervisor delegated the matter to an underling who really does not have time to pay attention to it and thinks that its really not their job. I have to make several phone calls before somebody in the company decides to pay me.

    43. Re:Developer rebellion? by Nursie · · Score: 1

      Unit testing is one example...

      If you don't add unit testing and source control together....

      WOW. You think unit testing and *source control* are properties of an Agile workflow?

      No, they are the properties of a competent engineer or engineering team and have been since long before agile.

      And you don't think that's something new?

      Nope.

      Having managed developers before and after "agile"

      Given your comments on source control, you shouldn't be managing anything.

    44. Re:Developer rebellion? by pijokela · · Score: 2

      Your situation is probably very common - good luck. Just a f

      - It's a real problem if you estimate all the stories/use cases/features. The team is supposed to do that so that they can commit to doing the work in the estimated time. Maybe you should stop doing estimates at all? That would force someone else to do them.
      - If you're the lead designer (and while scrum does not have that role the team usually has someone the others trust), you are not the scrum master. This is important. Go ahead with the tackling, or better yet, point out that you just cannot be the scrum master. IMHO it's better to make a project manager or junior dev the scrum master.
      - Do not make estimates in hours or days. Make estimates in points. Pick out some example features and decide that feature X is 5 points and feature Y is 10 points. Then estimate all the other features with points. Now, all your devs are not as productive, but hopefully they can agree that Y = 2 * X in size. After some sprints you will know how many points you get done in a sprint and it will provide you with quite accurate calendar estimates.

      So, the short version is: you are not doing agile, but maybe it'll work great for you guys? Good luck.

    45. Re:Developer rebellion? by Anonymous Coward · · Score: 0

      In my experience the scrum team must allow each developer to spend a few days on general maintenance during each sprint. The developer can spend this time fixing random small bugs that he happens to encounter or rewriting small pieces of code.

      If you don't do this then you end up with technical debt. The problem is that a typical small bug can be fixed in 2-3 hours, but in order to place it in the priority queue you need to spend at least 1 man hour documenting and prioritizing and remembering everything afterwards. So my experience is that all the paperwork discourages developers from fixing bugs.

    46. Re:Developer rebellion? by asdf7890 · · Score: 1

      Maybe I'm loud about the things I'm good at!

    47. Re:Developer rebellion? by hey! · · Score: 1

      WOW. You think unit testing and *source control* are properties of an Agile workflow?

      Wow. You think you can have Agile workflow without them?

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    48. Re:Developer rebellion? by complete+loony · · Score: 1

      Another thought; You know your estimates are inaccurate right? Are you attempting to report the potential accuracy of your estimate? Or are you reducing the problem to a single number?

      Your estimate should include some measure of the risks involved, and some measure of your past accuracy in estimation. If you think a particular problem will take 40 hours to solve, tell management that it could be between 30 and 55. Let them know just how inaccurate your ball park estimate is.

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
    49. Re:Developer rebellion? by Anonymous Coward · · Score: 0

      Long term estimations are always filled with lack of proper analysis. This is something which is taken into account anyway.
      But a product owner has no feel how much work a specific story might be.
      That is an estimate the team can make. It is *not* mean to be an accurate estimate.
      Have 30 stories to be 'categorized', and only 'estimate' them relatively (3-5-8-13-20-20+ points). This will give the product owner some feel of how long it'll take. Of course, when actually estimating one of these stories (because they've been fleshed out properly according to your definition of ready), the actual estimate might differ vastly. People know this, and are aware that it cuts both ways. As you've noticed, sometimes you've overestimated, sometimes you've underestimated, but on the whole, it's pretty ok.

      If you feel that documentation is not part of the job, that's something for your team and your product owner to decide. If your team will also do the support, then they will feel it's important that it's properly documented. Hence, it is part of the definition of done. If it's not done, it's not shipped. Even if it's only documentation. Sure, it'll impact the speed with which things are finished. But that's not important. Important is that the speed is constant, so that upper management can see that the project will be late and act upon it, and not that the speed is varying wildly.

      As for scrum master, be aware, that the only tasks the scrum master has is communicate external issues and be critical about the progress made. It can be anybody in the team. Or outside the team. Rotate it if you want to share the experience.

    50. Re:Developer rebellion? by Nursie · · Score: 1

      No, I don't think you can have anything you can remotely call a development process without them, that's what I think.

      Sorry if it wasn't clear, but the moron I was responding too seems to think that these items are unique to an agile way of working. That is incorrect.

    51. Re:Developer rebellion? by Nursie · · Score: 1

      And now I look at the comment history it turns out to be the same moron, what d'you know.

      I repeat, if you were managing developers "before agile" that weren't already using these things then you and they were incompetent. Not agile or waterfall, not old or new way of doing things, but simply incompetent.

    52. Re:Developer rebellion? by Anonymous Coward · · Score: 0

      Same here. The key phrase heard often was "We want to be like Google."

      They totally ignored the fact that we're a manufacturing company and not a software company.

    53. Re:Developer rebellion? by Money+for+Nothin' · · Score: 1

      This. I would shower you with mod points, if I could.

      As a professional developer since the early 2000s, I've been saying the exact same things about agile processes ever since I was introduced to them. I've come to like TDD (if it's taken as a guideline rather than an ideology in which perfect code-coverage is achieved), if it's combined with heavy, Waterfall-like requirements analysis up-front, and a reasonable amount of documentation.

      But on the whole, everything else seems to be a management trick to try to screw devs into longer hours for no extra pay, and into producing more-frequent status reports, more-fragile/less-error-handling software, with a shorter time-to-delivery.

      After seeing dozens of projects numbering in the double-digits this way (a few of which I've participated in), across almost as many organizations, I'm convinced that most of agile methodology -- in practice, if not in ideal -- is bullshit snake-oil sold to senior management to try to make junior management look "proactive" and up-to-date on the latest tech and management trends. These junior managers are complicit with consulting firms selling their business process services to convert clients to using agile methodology (I was once such a consultant paid partly to spread the gospel). But frankly, this is the standard relationship seen between consulting firms and their clients: clients buy-into the idea that the unearned perception of competence propounded by the consultancy, and believe (wrongly, in a significant percentage of cases) that the consultancy's employees are more-competent than their own... "A fool and his money are soon parted".

      The best I can say about Agile is that I believe at the time it was created (back around 2000), by Martin Fowler, Kent Beck, etc., it may have been a clever way to stanch the offshoring trend of the time, by claiming that close face-to-face interaction between project stakeholders (devs, managers, BAs, end-users, etc.) was critical to project success. I've found this is actually very, very true -- but this is frankly a very, very old management lesson. That, and I don't think Waterfall (which I've also spent lots of time doing) is the right methodology, either. The least-bad methodology really depends on the purpose and reliability requirements of the software project...

    54. Re:Developer rebellion? by hey! · · Score: 1

      And now I look at the comment history it turns out to be the same moron, what d'you know.

      Maybe that should tell you something about your reading comprehension skills.

      *Nothing* about agile is unique to agile. It's an umbrella term for a set of best practices that have been proven to work well together. A little thought will show that all those practices *had* to exist before the term existed to be included in the term.

      You are confusing "Agile" with "Scrum".

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    55. Re:Developer rebellion? by jemtallon · · Score: 1

      Oh good - so none were high priority and you could take your time on any of them

  5. Requirements do change by Anonymous Coward · · Score: 1

    All the planning in the world can not assist with political changes in a business. Requirements are a moving target and agile is the best method formal framework available for integrating those new requirements into the workflow.

    Traditional waterfall does not provide such flexibility and having to repeat analyses due to changes is both time consuming and a waste of financial resources.

    I delivered some of the largest systems available using this framework and it works well. It all depends on the people involved.

    1. Re:Requirements do change by dgatwood · · Score: 5, Insightful

      All the planning in the world can not assist with political changes in a business. Requirements are a moving target and agile is the best method formal framework available for integrating those new requirements into the workflow.

      Maybe, maybe not. If the requirements really are constantly changing, Agile poses a very real risk of never producing a working product. At some point, you have to step back and say, "Okay, we're never going to have a working building if we can't decide whether we're building a house or an office building." At some point, you simply must stop doing the agile stuff to just beat on the project for an arbitrarily long period of time until you have something that is functional for some fixed set of goals, and worry about dealing with the fallout later.

      Also, Agile tends to assume that everything can be broken down into subtasks that take only a single iteration to complete. In practice, this is not always the case, particularly with complex software.

      Finally, Agile has a tendency to fail in its goal of producing software that is actually usable by its intended consumer. Because the design work is done iteratively, it is very easy to go off on tangents and iterate on some part of the design, while failing to design the whole. This problem can also plague the architecture underneath if you aren't careful.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    2. Re:Requirements do change by SpzToid · · Score: 3, Informative

      Thank you for describing Agile so I could understand it better, however I try to see The Point, aside from causing me deadline stress with regularity.

      I always try to point folks to this wikipedia page that describes RUP; especially the graphic. In fact I have found on every single project whenever I have any say on the matter, all the stakeholders adore planning based off of this instructional page-as-a-plan. I wish I could say this happened to me a lot.

      Usually discussing the graphic in an important stage is enough to set the pace of the project, in my experience on more informal projects.

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

      --
      You can't be ahead of the curve, if you're stuck in a loop.
    3. Re:Requirements do change by mwvdlee · · Score: 1

      It is my understanding that ever with things like Agile, you still have overarching phases. You still need to have an overal design, you still need to test the product as a whole, you still need an architecture. It's more about subdivision than simply splitting a task.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    4. Re:Requirements do change by ninetyninebottles · · Score: 1

      Maybe, maybe not. If the requirements really are constantly changing, Agile poses a very real risk of never producing a working product.

      I'm not really sure that is any worse than not producing the product needed.

      At some point, you simply must stop doing the agile stuff to just beat on the project for an arbitrarily long period of time until you have something that is functional for some fixed set of goals, and worry about dealing with the fallout later.

      If the goals are never firmed up, all projects fail, even if you abandon Agile. In my experience, Agile is just a good way to make it very, very visible to all the stakeholders that this is what is going on so they can do something about it. When managers are constantly telling you to change things, they often don't understand the costs. With Agile, everyone sees the forecast for completion growing or shrinking as they change it each iteration.

      Also, Agile tends to assume that everything can be broken down into subtasks that take only a single iteration to complete. In practice, this is not always the case, particularly with complex software.

      It does? I agree breaking things up into too many subtasks can be a common failing of agile implementations, but I see things estimated at 2+ iterations all the time.

      Finally, Agile has a tendency to fail in its goal of producing software that is actually usable by its intended consumer. Because the design work is done iteratively, it is very easy to go off on tangents and iterate on some part of the design, while failing to design the whole.

      I've seen this and I've worked in situations where all the design has to go through the designers before the developers, so when a customer requests a change in scope or purpose, they have to write a card for the UI specialists to design that change and write cards for the developers to implement it. This works fairly well in most cases and prevents the problems you're talking about.

      This problem can also plague the architecture underneath if you aren't careful.

      Agreed, this requires a significant number of competent engineers in a team and developers that remember to include architectural refactors into estimates by default. It also requires a culture of building solid, maintainable code and not relying on your fellow coders to go back in and fix your lousy hacks. (I've seen that happen as well, but the team was also collectively in charge of hiring and firing, so offending coders did not last.)

    5. Re:Requirements do change by Ryanrule · · Score: 1

      If the requirements are moving target, the project is as good as dead.

    6. Re:Requirements do change by Brain-Fu · · Score: 1

      Finally, Agile has a tendency to fail in its goal of producing software that is actually usable by its intended consumer.

      That is *exactly* why you are supposed to be demoing the software to the client on a daily basis. If you aren't doing that, your failure is not the fault of agile, but of your misimplementation of it.

      Agile is built on a different philosophy than waterfall, and those who cannot grasp those underpinnings will *always* do agile wrong. They will then blame agile for their own failures.

      Agile *is* wrong for some environments. But it is a perfect fit for others....assuming it is done right.

    7. Re:Requirements do change by Surt · · Score: 1

      Agile should pose zero risk of never having a working project after the end of the first sprint, at which point you should have a working product, which you will refine with additional features over time.

      And looking at it more realistically, if your requirements are changing that drastically, you have something wrong with your process other than agile. The real problem is likely with your product managers, who are doing a poor job of defining the product with your customers.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    8. Re:Requirements do change by Kjella · · Score: 1

      Maybe, maybe not. If the requirements really are constantly changing, Agile poses a very real risk of never producing a working product. At some point, you have to step back and say, "Okay, we're never going to have a working building if we can't decide whether we're building a house or an office building." At some point, you simply must stop doing the agile stuff to just beat on the project for an arbitrarily long period of time until you have something that is functional for some fixed set of goals, and worry about dealing with the fallout later.

      Well if your requirements are that chaotic, you'll have at least as many problems in waterfall. Agile is a bit more "what do you need the most", so maybe say dry walls, electricity and plumbing. Agile is the "we can retrofit this" concept, if you want downlights we can add that circuit later. If the bathroom needs to be handicap friendly, we can redo the floor plan later. If you want to put in a jacuzzi, we can fit that later. Waterfall is the "let's think this through" concept, maybe we can do all this electricity, plumbing and floor plan once and do it right. Particularly if you have to redo a perfectly good paint job because you had to redo the floor plan or tear up the foundation to lay new pipes. Neither is a miracle cure, if you can get it mostly right the first time do that but if not then you just have to start somewhere rather than wait every detail to be done.

      --
      Live today, because you never know what tomorrow brings
    9. Re:Requirements do change by xedired · · Score: 1

      If the requirements really are constantly changing, Agile poses a very real risk of never producing a working product. At some point, you have to step back and say, "Okay, we're never going to have a working building if we can't decide whether we're building a house or an office building." At some point, you simply must stop doing the agile stuff to just beat on the project for an arbitrarily long period of time until you have something that is functional for some fixed set of goals, and worry about dealing with the fallout later.

      I don't see it the same way. One the one hand, if the requirements keep changing, developers must change direction, too. What's the point of delivering something that no one wants anymore? If your goal is to deliver functionality that the market no longer wants, then your business will go out of business. Fast.

      But this "contract" between developers and the business team is not one-way. The business development team _must_ define good requirements. Typically this means delivering _small_ features and getting customer feedback frequently. But if the business team tells the development organization to "build Rome" and then two weeks later they tell you to build Toronto and then two weeks after that they tell you "No no no, build Rio," of course the developers will fail. Rome wasn't built in a day, and big software is not either.

      Also, Agile tends to assume that everything can be broken down into subtasks that take only a single iteration to complete. In practice, this is not always the case, particularly with complex software.

      I disagree. Is managing complexity not the point of software engineering? To break complex components into smaller components and then "assemble" systems? You can't deliver Rome in a day, but you can deliver a road, or an aqueduct, or a market place. The _cumulative_ result of all the iterations is the ultimate goal, but for one iteration, you deliverable is much smaller.

      Finally, Agile has a tendency to fail in its goal of producing software that is actually usable by its intended consumer. Because the design work is done iteratively, it is very easy to go off on tangents and iterate on some part of the design, while failing to design the whole.

      Again, I disagree. Because you are iterating, it should be _difficult_ to go off on tangents. When you are done with your (short) iteration, you ask yourself, "What should I work on next?" A sane organization will choose to work on the most urgent task. A sane organization will not choose to work on a tangent.

    10. Re:Requirements do change by Anonymous Coward · · Score: 0

      Agile should pose zero risk of never having a working project after the end of the first sprint, at which point you should have a working product, which you will refine with additional features over time.

      While true, "working" (from a programmer's point of view) is not the same as "useful", "competitive", or "practical". Too often I hear people, including developers, make this claim when promoting the use of agile in modestly complex systems.

      Suppose your project is to build a cool new distributed file system targeted at high performance hierarchical enterprise storage based on a few clever innovative ideas about how to look at the problem differently. At the end of the first sprint, as agreed to at the beginning of that sprint, you have mkfs, mount, creat (but not yet even a generalized open), and a limited fsck working as long as only one thread on one system is accessing the filesystem. Clearly this "works" from the standpoint of meeting the objective of the sprint, but it's completely useless for any real work.

      The problem with doing all this in three weeks is that four weeks was required to design and review the overall project from a high level standpoint but what you get instead is a bunch of code that has to be "reopened" to add concurrency control and the notion of deleted blocks etc. Iterating sprint to sprint with a religious fervor to adhere to "agile" just won't get you to a stable and functional end product as quickly (perhaps never) as more methodical long term planning, architecture, and design would.

      In a mature system where features are fairly independent (functionally and internally) of each other and small enough to complete in a sprint, agile seems to work better. For example, it probably is okay to sell/expose the product of an intermediate sprint that added the ability for users to specify multiple credit cards for one purchase, to check the UPS tracking directly from the vendor's web page, and to inform the "you may also be interested in..." algorithm that no, they are NOT interested in a particular suggested product. The fact that a subsequent sprint may add the ability for users to specify the font on their gift cards and the ability to cancel an open order without calling customer service doesn't significantly impact the implementation of the features in the first sprint nor is the first sprint's product useless without the content of the subsequent sprint.

    11. Re:Requirements do change by emddudley · · Score: 1

      If the requirements really are constantly changing, Agile poses a very real risk of never producing a working product. At some point, you have to step back and say, "Okay, we're never going to have a working building if we can't decide whether we're building a house or an office building."

      This is true. In After the Gold Rush Steve McConnell makes the point that "Software Isn't Soft" (p. 19):

      As software systems have become more complex ... [the] notion that software is easy to change has become on of the most pernicious ideas in software development. Several studies have found that requirements changes—attempts to take advantage of software's supposed softness—are among the most common sources of cost and schedule overruns.

      Flexibility costs money up front. Limiting flexibility saves money up front, but typically costs disproportionately more money later. The difficult engineering judgement is weighing the known present need against the possible future need.

    12. Re:Requirements do change by Anonymous Coward · · Score: 0

      Agile is like libertarianism: failures are always blamed on not 'doing it' right. Saying agile requires a working build or 'daily demos' is a non-answer.

    13. Re:Requirements do change by CyberLife · · Score: 1

      Your entire post reeks of bad management. Anyone who initiates a project without basic boundaries is a moron. Anyone who cannot decompose tasks is unqualified to lead. Anyone who allows things to go off on tangents should be fired. It's that simple.

    14. Re:Requirements do change by dgatwood · · Score: 1

      Well if your requirements are that chaotic, you'll have at least as many problems in waterfall.

      No, you won't, because the waterfall model requires you to put everyone in a room and not let them leave until they have agreed to a set of requirements that they can live with. And anything that didn't get hammered out at that initial meeting, unless it really is absolutely a show-stopper, becomes a "we'll take a look at it for version 2.0" feature.

      Neither is a miracle cure, if you can get it mostly right the first time do that but if not then you just have to start somewhere rather than wait every detail to be done.

      No, if you can't get it mostly right the first time, then your software architect skills are not up to the task of writing that particular piece of software. Thus, the right way to approach the problem is to hire a software architect who can get it mostly right the first time.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    15. Re:Requirements do change by vux984 · · Score: 1

      Suppose your project is to build a cool new distributed file system targeted at high performance hierarchical enterprise storage based on a few clever innovative ideas about how to look at the problem differently.

      I don't really think your example is applicable, the requirements for the file system are going to be pretty well defined up front. There'd be no reason whatsoever for constantly showing up with a new version, and then revising it.

      Even if you were doing something "agile-like" you wouldn't tackle it the same way you'd tackle automating business processes -- which are never well defined, and difficult to communicate.

    16. Re:Requirements do change by dgatwood · · Score: 1

      One the one hand, if the requirements keep changing, developers must change direction, too. What's the point of delivering something that no one wants anymore? If your goal is to deliver functionality that the market no longer wants, then your business will go out of business. Fast.

      I think the core problem is not that the basic requirements change, but rather that some key aspects of development, such as UI design, are black holes. The requirement is a usable UI. However, if allowed to do so, the details will change at such a rate that they suck all the developer time away from everything else. "Ooh, could we make it mauve instead?" And maybe we should put this button over there instead of over here. If you don't nail down the design ahead of time and get proper buy-in from all the stakeholders, you're screwed. Iterative design results in design-by-committee unholiness—a product that satisfies no one and takes ten times as long to build.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    17. Re:Requirements do change by thaig · · Score: 1

      Getting everyone in a room can still lead to the wrong design. Situations change over time and no matter how good you try to be up front you can be faced with situations that demand change and make your original design useless. I certainly have. It is often the case that there isn't anyone in the world who knows all the details or that "everyone" is 1000s of people and beyond that there are just mountains moving in your business and you have to move with them.

      Scrum makes you manage your work regularly, see early when it's going wrong, adapt to get back on track. It gets your whole team involved and you end up with solutions that were thought up by your more junior team members or people working on a totally different bit of code.

      Architects are useless in waterfall because they can be long gone by the time it becomes clear that their architecture is a total fuck up.

      --
      This is all just my personal opinion.
    18. Re:Requirements do change by Kjella · · Score: 1

      No, you won't, because the waterfall model requires you to put everyone in a room and not let them leave until they have agreed to a set of requirements that they can live with.

      That only works on the absolutely tiniest of projects. My usual impression that the big wig with the sign-off power is far too busy and important to be on your project. You get appointed some kind of representative, who is supposed to gather requirements from the users - or usually just a representative subset of them, compile it, hopefully do some kind of QA and present it for the big wig to sign. At best possibly the one person on your team has some grasp of the total solution to be delivered, but the coverage is spotty and the requirements are ambiguous, conflicting, don't contain things they think are implicit or obvious or just not detailed enough.

      That you could in theory hammer out into a very detailed and implementable spec, but what you also get is feature bloat because if it's not in the spec it's out so you try to include every feature that might be nice to have or that you might possibly need. But I suppose all of that would be fine if eventually it delivered well, the problem is most IT projects fail. And they fail not because of these bells and whistles but because they fail to deliver the core functionality and value. To use a car analogy, it's like spending a ton of money on interior decoration only to find the engine design is a bust and the car will never roll off the production line or the world changed between when your SUV design started and it was delivered.

      Of course those that profess the waterfall method tend to say that with enough planning you should never have a failure, if you just do the paper exercise well enough you should know up front whether it'll be a success or not. Agile is saying the only true proof is to deliver, so you start with what is supposed to give most business value and you either succeed and expand or fail and fail early. If I'm going for a drive I haven't planned every turn of the wheel, acceleration and breaking up front. I know the direction I'm going, probably the route unless there's a detour but the details are worked out as I go.

      --
      Live today, because you never know what tomorrow brings
  6. The wrong 200 people? by Anonymous Coward · · Score: 0

    Shouldn't it be the wrong 196 people?

  7. use your Brain cells... if you got some left by fluffythedestroyer · · Score: 2

    If devs and other people that use Agile don't documents their work for future use and maintenance I think it's clear that its a failure right at the start...Anyone with a brain cell will know that.

    1. Re:use your Brain cells... if you got some left by modmans2ndcoming · · Score: 1

      yeah...they miss the part where you are suppose to design tests, document what feature is being tested and build against those test and comment the crap out of your code so you can run a nice utility to generate documentation automatically for you.

    2. Re:use your Brain cells... if you got some left by CyberLife · · Score: 1

      API-documentation comments can be a good thing. General commenting within the code itself, not so much. If one's codebase requires such comments to understand it, they've got problems.

    3. Re:use your Brain cells... if you got some left by Zero__Kelvin · · Score: 1

      "General commenting within the code itself, not so much. If one's codebase requires such comments to understand it, they've got problems."

      I can't agree with that at all. Sparse, well placed comments are invaluable so long as they aren't describing what the code is doing when that should be obvious from reading the code. There is plenty of additional information that can be very useful. History of the code. How it was in one repository up until version x and then switched over to git ;-)

      Often times a design decision is made that is not intuitively obvious, and it is important to remember a lesson learned. These are just a few very valid reasons to comment, but DoItRight(tm)

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  8. Right people, right results by QuietLagoon · · Score: 4, Interesting

    The poll results correlate well with my experiences. I've still not seen a well-functioning agile implementation that has been working for more than three to five years. Once maintenance is required for the undocumented code, and the developers who worked on it have left, the problems with agile start snowballing.

    1. Re:Right people, right results by Anonymous Coward · · Score: 1

      It works well with a small team and low budget where the final design is in flux. Software development is a learning process and agile can give you solid learning cycles when you have a tight feedback loop between the users & developers. Where I've seen it fall apart most is on large teams that are spread out around the globe - which is more and more common. If the team isn't physically and socially "close", agile can be counter-productive. Make no mistake though, waterfall has built-in costs that add little value to the development cycle but can pay dividends on systems with a long life and frequent updates & maintenance. Teams need to be willing to adapt to whatever processes is needed for their problem/project.

    2. Re:Right people, right results by Anonymous Coward · · Score: 0

      Where's the tests?

      The article also goes on about that there's no documentation, no process etc. From my experience agile projects are better documented via tests than other projects via "documentation". And because of this maintenance is easier in the long run.

      Agile is not an excuse to lower quality and neglect software engineering.

    3. Re:Right people, right results by Anonymous Coward · · Score: 1

      Even the part about being spread out across the globe doesn't have to apply. I work on a team that is in England, Poland and the US and I communicate with these co-workers much better than all other teams that I've worked on before. We do Scrumban and it works very well! I agree about the size of the team though, smaller is better. Many large companies like to throw people at a problem. Throw fewer, more competent people at a problem who are well motivated.

    4. Re:Right people, right results by Gorobei · · Score: 3, Informative

      Where's the tests?

      The article also goes on about that there's no documentation, no process etc. From my experience agile projects are better documented via tests than other projects via "documentation". And because of this maintenance is easier in the long run.

      Agile is not an excuse to lower quality and neglect software engineering.

      Exactly right. Tests are requirements are documentation.

      Want a new feature? Add a test.
      Want to report a bug? Add a test.
      Want to understand the system? Read the tests.

      My current project has >1K devs, and >1M LOC. The doc is under a hundred pages, and that is mostly "how-to" stuff. There are also hours of "why we did X" videos to explain the design. Almost no comments in the code: if the code is unclear or poor, we just reject it: no one is allowed to use comments to explain how something works.

      One critical module (approx 20K LOC) has >1K tests. Its release cycle is essentially daily, numerous devs in various teams have contributed to it, and it almost never breaks. The test pack is what allows it to be agile and replace >1M LOC of legacy system code.

    5. Re:Right people, right results by Brain-Fu · · Score: 1

      Just make test case documentation, code comments, code-reviews, and whatever documentation you need be key deliverables of your sprints. Also, if you can't hold a developer for five years, then you have a morale problem that will cause such pain no matter what process you use. Or maybe you have a bias for cheap entry-level developers over experienced ones, which will also ruin all your code no matter what process you use.

      Agile might not be right for your environment, but from what you say, it sounds like you are doing agile wrong.

      My experience with agile has been the exact opposite of yours.

    6. Re:Right people, right results by Surt · · Score: 2

      I'm currently in my personal year 8 with a company that has been doing agile for the last 11. We've had most of the original team leave at this point, so that there are only a couple of people left more senior than I am.
      Undocumented code isn't a fault of agile, that's a fault of the team. Documentation should be part of your work product, and it should be scheduled right along with the other work, or an acceptance criterion for the other work.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    7. Re:Right people, right results by Anonymous Coward · · Score: 0

      However, some projects are just too big to NOT put very large teams on and using only an agile methodology just isn't going to work on such projects. Imagine if the US had used agile with three week sprints to try to put the first man on the moon. NASA would have killed a lot of astronauts, spent a lot of money, and probably still have not gotten into orbit around the moon.

      Would you want to work on the 200th floor of a building that was built "agile" -- for example, the foundation was poured before the weight of the building was known because in the first four week sprint something had to be "working" at the end and engineers speculated that probably the building would be built of titanium but when the sprint where the first floor was being built came along, it was decided to use concrete all the way up?

    8. Re:Right people, right results by Anonymous Coward · · Score: 0

      Amusing, as I was a developer on a system built from scratch decades ago where the first release had about 1M LOC built by a team of about 30 developers using primitive tools (by today's standards) and using classic "modified waterfall" with requirements specs, architecture specs, and sometimes another lower level of design specs - all formally reviewed. We were not religious about the process and certainly some things were implemented (and remain in the system today) with an abbreviated process. That system is in use in mission critical situations by many of the largest enterprises in the world and has evolved over the decades (I assume it's probably as much as 10M LOC now, but don't know) and obviously has many more developers working on it now.

      Interestingly, some features were omitted from the first release because we discovered early in the DESIGN phase that they were just too much work -- before wasting time incrementally doing the "easy stuff" in the first sprint only to discover in sprint 20 that we had horribly difficult to solve problems left and we just couldn't solve those in a rational timeframe.

      Unless by >1M LOC, you could have also have said >10M LOC, your example doesn't seem to speak very well for agile.

    9. Re:Right people, right results by Gorobei · · Score: 1

      Unless by >1M LOC, you could have also have said >10M LOC, your example doesn't seem to speak very well for agile.

      My last two projects were 50M LOC and >10M LOC. Both agile.

      My current project is only a couple of million lines of code because it is young. I am planning for 20M LOC by 2016.

    10. Re:Right people, right results by The+Mister+Purple · · Score: 1

      I agree partially, but uncommented code is classic "they can't fire me because nobody can understand this but me" prima donna behavior (even if from a group). Comments tend to stay with the code, everything outside the code (videos, emails, test documentation) can get detached and lost much more easily.

      --
      "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Feynman
    11. Re:Right people, right results by Anonymous Coward · · Score: 0

      My current project has 5 devs and 700K LOC. Why on earth would you need 250X as many developers for a project just slightly larger than than the one I am working on?

    12. Re:Right people, right results by Gorobei · · Score: 1

      Agreed. That's why my group implemented a rather brutal "it must be done so that an average person can understand it" policy. We reject code for spelling mistakes, bad idioms, pointless design pattern layers, etc.

      Of course, you need senior management buy-in to do this kind of thing: you have to able to fire managers who don't get the "code produced by programmers is just like text produced by lawyers" kind of thing.

      I wish I had a dollar for every screwup who tried to justify her project with "but it works!" Sorry, I don't care. It's a complete mess. You lose, clear out your desk. We will rewrite.

    13. Re:Right people, right results by fermion · · Score: 1

      It kind of reminds me of prototyping. I have been in situations where the prototyped system, often done Ina RAD has never been reimplimented for production. Prototyping is important, and underused. Specifications change as a project develop and the process and minimum deliverables are better understood. What funding agents seem to be looking for is a way to skip prototyping, which is dangerous as specifications evolve quickly at the early stage, or build a prototype that can be quickly converted to a scalable production product. This may be possible if money is put in earlybtobsuport future development. Of course that money could be wasted if the prototype is not viable. Which is today Agile is probably a perfectly good process, but maybe it should not be sold as a way to save money, but to get a product running quickly with additional costs incurred later

      --
      "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
    14. Re:Right people, right results by Anonymous Coward · · Score: 1

      Almost no comments in the code: if the code is unclear or poor, we just reject it: no one is allowed to use comments to explain how something works.

      There is no way for code to be as clear as plain English (and the occasional bit of ASCII-Art). Either it is too verbose, and mundane details mask the structure (COBOL...), or it's the other way around.

    15. Re:Right people, right results by Gorobei · · Score: 1

      5 devs, 700K LOC seems reasonable.

      1. I expect 20M LOC within three years, 5x30=150
      2. No way we can hire a perfect A-team at this size, so, 3 to 1 and try to get some talent we can nurture: 150x3=450
      3. We are aiming to replace 100M+ LOC, so need people with expertise in the current systems (say 600 people.)
      4. Chuck in a few PMs, auditors, HR, etc: that's another 100.

      Welcome to big project hell.

    16. Re:Right people, right results by Gorobei · · Score: 1

      There is no way for plain English to be as clear as code. Code does what it says it does. English says what it wants or thinks should happen.

      Seriously, it's the difference between having sexing with someone and reading a story about having sex with someone.

    17. Re:Right people, right results by Anonymous Coward · · Score: 0

      I don't see how failing to create proper documentation has anything to do with agile. That sounds more like a business decision where someone decided the cost of creating documentation was more than the value, which it may be in many cases since quality documentation is expensive. I work in an agile environment and we frequently have stories such as "create docs for x" or "update docs for y". I have seen many projects with useless or even incorrect documentation, which is far worse than no documentation in my opinion.

    18. Re:Right people, right results by Anonymous Coward · · Score: 0

      I've been with the company for 14 years. We/they have been using Agile for a few years longer than that. It has served us well while developing industrial systems with embedded processors and custom hardware.

    19. Re:Right people, right results by dkf · · Score: 1

      There is no way for plain English to be as clear as code. Code does what it says it does. English says what it wants or thinks should happen.

      But keeping track of what you think should happen is important too. Code does what it says it does, but that's all it does. Documentation serves a different purpose.

      Mind you, the best documentation I ever saw was a comment in the code that said that the algorithm implemented was documented in an academic paper from about 20 years previously (well, it said exactly what the paper was). It didn't say anything else, just pointed to the definitive explanation of what was going on and why to choose it. I suppose that for something newer I'd expect a URL or DOI; it's still conceptually the same thing.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    20. Re:Right people, right results by purpledinoz · · Score: 1

      My experience is, no matter what process you use, bad developers and management will result in a disaster. A group of great developers and management will make a project a success. Anyone who is vehemently for or against Agile (or any development process) isn't really thinking critically and just jumping on a pro/con bandwagon.

    21. Re:Right people, right results by Anonymous Coward · · Score: 0

      working more than 3 to five years? how old is agile anyway?

  9. Like any new method by obarthelemy · · Score: 5, Insightful

    in any field: the early adopter are intelligent, motivated people who know what they're doing and understand how the new method is supposed to work. Later adopters are mediocre hacks who don't perform well to start with, and are probably looking for a way to obfuscate their lack of skill and motivation, or, at best, don't get how the new method is supposed to work.

    --
    The Cloud - because you don't care if your apps and data are up in the air.
    1. Re:Like any new method by devforhire · · Score: 2

      In the last 8 years as a developer, I've seen 2 types of "agile."

      Agile Fail:
            This is by far the most common type, where a trendy word is used to defend lack of project structure/discipline/planning. IMHO this is not too much better than waterfall in the end.

      Agile Succeed:
              I've seen this once. This requires an intelligent, experienced, and disciplined team the whole way through (devs, managers, sys admins, and yes client too.) This works because you have people with the intelligence to understand the core principles of "agile" and apply them correctly to the individual project; the experience to know what "just enough" means in terms of docs, structure, managing, etc; and discipline to strictly follow agreed upon (within the team) best practices and standards. This is an incredible way to work and we did amazing things; I do not expect I will see it again because one bad person on the team and it falls apart.

    2. Re:Like any new method by Anonymous Coward · · Score: 0

      I am not a fan of agile programing except for the most trivial stuff, like university projects. If one bad peson on the team can make it fail you are not doing it right.

    3. Re:Like any new method by Anonymous Coward · · Score: 0

      re: "Agile Succeed".

      Waterfall methodologies also work well with such teams. Teams of mediocre performers that slavishly adhere to arbitrary rules rather than common sense fail regardless of which methodology is used. Teams of great (and diverse) performers who apply the right amount of whatever methodology they are using usually succeed regardless of the methodology. Interesting, as one applies these "adjustments'" to agile and to waterfall in a particular project, they begin to look more and more similar (and predictably "less desirable" to zealots of the respective methodologies).

      I think waterfall is more tolerant of a couple weak developers because they screw up designs, not code, and those get caught before they have infected the system (these developers of course end up leaving or changing roles). They can't gloss over poorly thought out schemes with "That's not in this sprint so we will worry about it later" and start writing code because they end up having to finish the design first and discover (on their own or via the review process) that they got it wrong.

      I've found a lot of serious reliability problems in designs in projects only because the design was written down and complete before production coding started. In similar agile projects I've worked on, an alarming number of horrible bugs remain, especially in concurrency and fault handling which are hard to detect in unit test if you didn't think of the scenario in the first place and get caught in production or occasionally system stress testing.

    4. Re:Like any new method by Anonymous Coward · · Score: 0

      If you have a team environment where a bad dev can hide unnoticed, you're doing it wrong.

    5. Re:Like any new method by undefinedreference · · Score: 1

      The variable that the successful project had is what makes projects succeed without regard to methodology: A team of skilled, intelligent, and disciplined participants.

      In my 16 years in the industry I've only been on a couple teams like this. The results were exceptional, but it was an anomaly in a sea of mediocrity and failure (at least when I've worked within a team; lone-developer projects tend to have extremely high functional completion rates but long lead times).

      Excellent developers will simply leave a poorly-managed company and over time the poorest-quality developers will concentrate within these organizations. Due to various factors these groups outnumber excellent teams by at least ten-to-one, and probably closer to twenty-to-one. This roughly matches the development project success rates I recall hearing from the grissled old developers that became professors... Methodology cannot correct for poor management and developers, simple as that.

  10. Agile by Stirling+Newberry · · Score: 5, Insightful

    Is a way for managers to tell other managers that the features that no one really cares about will be delivered by a date that no one believes in.

    1. Re:Agile by Anonymous Coward · · Score: 0

      Is a way for managers to tell other managers that the features that no one really cares about will be delivered by a date that no one believes in.

      Sounds like a traditional waterfall structure to me.

    2. Re:Agile by Surt · · Score: 1

      I think you just described waterfall. In agile, the manager is supposed to tell the other manager those features will never be delivered.
      (I'm serious: a feature no one cares about should never make the priority queue, and therefore never get done).
      Putting a hard date to feature delivery is the very hallmark of waterfall.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  11. All methodologies are hokum by Anonymous Coward · · Score: 0

    Management likes to pretend that they have a plan, because it's their raison d'etre, but in reality everybody just makes it up as they go along, complete with supporting statistics. If you have no documentation, at least it isn't misleading. Agile doesn't prevent you from writing documentation though, so if you can and do write good documentation, that's not an advantage of the methodology, it's you. Certification is a way of selecting for a willingness to do what's necessary. It doesn't prove anything else.

    1. Re:All methodologies are hokum by Anonymous Coward · · Score: 0

      > Management likes to pretend that they have a plan

      I've been in successful projects. Those projects had zero management, I and my colleagues were able to do what we wanted. I've been in failing projects, in those projects, the management did all the possible mistakes they can do and they didn't do what they should have done.

      In failing projects, managers:
      - Did not allow developers to use free tools, even it wouldn't leave any visual marks to the end results.
      - Provided phony deadlines, which no developer had fate in.
      - Told us that quality is priority one, but we must meet this deadline. Oh, and we will replace most of you with these cheap developers.
      - Hired bad developers, but didn't setup any role to watch after them, to make sure that only high quality code is accepted.
      - Measured how quickly bugs are fixed and make that measurement affect on salary (you can probably guess how nice those fixes were)
      - Replaced developers in the middle of the project, to get more developers with cheaper salary. (it takes about 6 months for a new person to learn what old ones know, but that doesn't even include the domain knowledge)
      - Hired people all around the world to work with the project, from 3-4 different organizations. All of which had different goals of their own.
      - Tried to fire the people who provided negative feedback. (They weren't actually able to do that, but did remove that person from the project, no one provided negative feedback after that.).
      - Failed to delegate work, because of that, didn't have time to do their work.
      - Didn't have required skills and knowledge for the work. (Sometimes I wonder have I as a developer, done more reading on management than the managers themselves.)
      - Hired cheap people with poor skills, instead of high salary people with good or excellent skills. Even after they had seen both of them at work, they still preferred the cheap.
      - Broke successful teams apart.
      - Failed in communication so badly that the money (about $50000) they used to motivate people, actually de-motivated people.
      - Did not answer when improvement ideas were provided to them. Not even when ideas where backed with scientific studies and real life examples. No answer what so ever.
      - Never required developers to improve quality, even they knew it was bad. Instead the pushed for new features.
      - Forced people on some weekly status rituals where people mostly read from a paper, one by one, all 20-40 of them, while others listen and don't care what others say.

  12. I love it when XP/scrum practictioners defend it by Anonymous Coward · · Score: 1

    By saying, you need experienced developers in charge to prevent the architecture from going to hell, or from changes being introduced just to close a bug without addressing the underlying issue, or introducing more issues than they fix, or thrashing between competing ideas of how the code should be implemented etc.

    Yes, but if you had those guys in charge then you'd probably get good results with any methodology.

  13. As others have said, not a panacea by Just+Brew+It! · · Score: 2

    IMO agile methodologies can work phenomenally well if you have a development team where everyone is technically solid and works well with others. Take either of those factors away and it is a recipe for chaos; with an "average" development team you're probably better off with something more structured.

    1. Re:As others have said, not a panacea by Anonymous Coward · · Score: 0

      THIS.

      I work on a prominently agile consulting company, and things only work out for us because we are very strict on hiring. You may be the best dev in the universe, but if you can't communicate or share knowledge with the rest of the team, your going to be a drag.

    2. Re:As others have said, not a panacea by GreyWolf3000 · · Score: 1

      Most methodologies work well in a "development team where everyone is technically solid and works well with others."

      Regular 2-4 week iterations, mandatory automated testing, replacing boring waterfall meetings with short 10 minute scrums, and keeping the stakeholders involved at all times are things that every solid developer should welcome.

      That's about as far in to "Capital A" Agile I've ever cared to go. Any more than that and we're too focused on process, IMO.

      --
      Slashdot: Where people pretend to be twice as smart as they really are by behaving like children.
    3. Re:As others have said, not a panacea by Just+Brew+It! · · Score: 1

      Most methodologies work well in a "development team where everyone is technically solid and works well with others."

      Agreed.

      But IMO more structured methodologies can mitigate the negative effects of team members with less effective development and/or communications skills. Unfortunately, this also limits the productivity of the star performers, by bringing everyone's productivity down closer to the lowest common denominator. And will hold back the entire effort if the team has the skills to pull off an agile development effort.

    4. Re:As others have said, not a panacea by Surt · · Score: 1

      Agreed. Agile is the solution to a particular problem, but that problem is not incompetent development team.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    5. Re:As others have said, not a panacea by Anonymous Coward · · Score: 0

      In waterfall average teams will spend considerable time producing unimplementable specifications, unproductive or flawed architectures and will hope to one day get to the point of making that great documentation for the software they will deliver 2-3 years late.
      In Agile average teams will fail every sprint till they learn they suck, hammer stories till they work, build many coexisting architectures, produce shitty outdated documentation, and break previous stories every sprint till their velocity reaches zero and they are fired.

      I would rather have them fired than delay a project two years.

    6. Re:As others have said, not a panacea by Just+Brew+It! · · Score: 1

      What if the choice is to deliver 2 years late or not at all? 50% of development teams are of average skill or worse!

  14. Not lazy devs, just unrealistic deadlines by gaygeek · · Score: 5, Insightful

    In my experience, agile is not about lazy developers not wanting to do the boring work, it's about the business owners and project managers wanting to force unrealistic deadlines on projects such that there is no time for those tasks because of the tight deadlines and quick release cycles. It is rare that they allow the principle that you deliver what you can by the release date, but rather they want everything they asked for and the devs need to make it happen.

    1. Re:Not lazy devs, just unrealistic deadlines by Stirling+Newberry · · Score: 3, Insightful

      Exactly, crucial to agile is the concept that features are pushed to backlog if they can't be delivered, and that programming teams have the ability to negotiate over delivery. However, as with almost any system, give one side all of the power, and it fails to work.

    2. Re:Not lazy devs, just unrealistic deadlines by dkleinsc · · Score: 3, Insightful

      One thing that I've learned, working in a bit of a project management capacity, is that for a lot of businesspeople, the only time frame they actually understand is "I NEED IT RIGHT NOW!"

      In fact, I only really remember 1 project where there wasn't an issue. End result: We finished what we had originally set out to do 2 weeks ahead of schedule, added some polish for a week, and released it a week early. All because the smart business manager and project managers had done everything they could to allow the development team to succeed: (1) Determined their project schedule from the development teams' estimates rather than the business manager's enthusiasm, (2) left appropriate time for mistakes to happen, (3) fought any attempt at scope creep, and (4) ensured that people who weren't on the project kept out of the hair of those working on the project.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    3. Re:Not lazy devs, just unrealistic deadlines by overnight_failure · · Score: 1

      I'd also say I have NEVER seen a business actually commit into any of the methodologies. That's why the phrase SCRUMBUT was coined.
      Nearly every non-technical business person I've met has the 'get back to me when it's done' attitude.

  15. What is Agile? by ObsessiveMathsFreak · · Score: 0, Flamebait

    Sorry. I'm just getting up to speed on "The Cloud", and Web 3.0. I haven't had time to to and understand the latest development buzzwords.

    Am I supposed to know what "Agile" is before I read an article rubbishing it, or can I just skip over the concept entirely now?

    --
    May the Maths Be with you!
    1. Re:What is Agile? by kestasjk · · Score: 3, Funny

      Am I supposed to know what "Agile" is before I read an article rubbishing it, or can I just skip over the concept entirely now?

      Whoa whoa whoa.. "Article"? What the hell is an "article"? Am I supposed to be some kind of psychic wizard in charge of marketing at Forbes or something to know what an "article" is? How about an explanation?

      --
      // MD_Update(&m,buf,j);
    2. Re:What is Agile? by malakai · · Score: 1

      <Waves his hands in front of your face> This is not the news site you are looking for.

    3. Re:What is Agile? by Anonymous Coward · · Score: 0

      I take it you're not a programmer. If so, you can ignore it.

      Agile has been around for a long time and you can take the five minutes to read wikipedia if you choose. Lookup scrum as it's one of the more popular methods and there are many books on the subject.

    4. Re:What is Agile? by mwvdlee · · Score: 1

      Since you have no clue what Agile is, let me be the first to explain, so you don't look foolish when a collegue want to discuss the topic.

      Agile is a development methodoloy that radically changes the way software developers work. Instead of the typical role of "manager", "designer", "programmer" and "tester", these are split into "chief", "baker", "garbargeman", "clerk" and "monkey". You can probably imagine what each role is responsible for". Typically you work in subteams of three of these disciplines, unless ofcourse you have three "bakers", in which case a "chief" must be added to the subteam. These subteams are further divided in a "major" and "minor" roles, where the majors are responsible for all typing work and the minors documents progress. Every 2-3 hours these minors meet in a decentralized location and synchronize progress, so all subteams keep working at the same pace. At the end of the day all subteams commit their current state of development to a centralized repository and automated builds compile everything overnight. At the last day of the week, all these daily bugreports are filtered by the minors and relayed back to their majors for fixing. Iterate this for however long it takes to complete the project and you're done.

      Hope this'll help you join in discussions on the topic!

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    5. Re:What is Agile? by Surt · · Score: 1

      You're too far behind the times to hope to catch up. Agile was the buzzword about 5 before Cloud.

      More seriously:
      Agile is a particular process for getting things done, which became trendy in software development in particular about a decade ago. It's main tenet is to do work on short cycles, delivering the result to the customer, and then allowing the customer to define the next priority. The hope is that this continuous delivery model avoid the primary pitfall of longer software development cycles, which is spending months/years developing something, only to discover that the requirements were poorly defined at the start (and that the product therefore doesn't meet the real needs), or that market trends have rendered the result pointless.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    6. Re:What is Agile? by foniksonik · · Score: 1

      Ugh - Agile is over a decade old.

      --
      A fool throws a stone into a well and a thousand sages can not remove it.
  16. ObXtraNormal link by Anonymous Coward · · Score: 0

    http://www.xtranormal.com/watch/12410618/its-agile

    It's not far off - as always, it's about the implementation of the idea and not the idea itself.

  17. Don't blame Agile for bad recruiting results by ansak · · Score: 4, Interesting

    Agile is just a structure. Like anything else, it's only going to be as good as the people you put in place to execute it. A properly constituted agile team will put documentation (of designs, code, deployment, whatever) up as stories/tasks that need to be accomplished right alongside working features. Documentation is an end-product just as surely as working code and unit tests are.

    If the team doesn't identify those tasks and sign up for them, you hired the wrong people. Reform your recruiting process before you blame a process that delivers a working solution at the end of every sprint. And if your so-called Agile doesn't pretty much do that, then you really are being scammed.

    cheers...ank
    (I've been a developer for 26 years; some form of Agile has covered the most productive and enjoyable parts of my careeer)

    --
    Still hoping for Gentle Treatment...
    1. Re:Don't blame Agile for bad recruiting results by buddyglass · · Score: 2

      Good systems can look bad with bad actors and bad systems can look good with good actors, but that doesn't mean there aren't still differences between systems.

    2. Re:Don't blame Agile for bad recruiting results by Anonymous Coward · · Score: 0

      The thing I've noticed about the pro-agile folks is that they always have somewhere *else* to point the finger to. The people are wrong, the process is wrong, the policy is wrong...

      What Agile is really missing is some introspection that is built into the process: is this working for *us* ? Or are we following it just because it's hip ?

  18. It's just good business by Anonymous Coward · · Score: 2, Interesting

    The goal of development is to produce and deliver working software that aligns with the business objectives in a cost effective manner.

    Agile is an attempt to achieve these goals and was conceived as a response to the failings percieved in waterfall. This is achieved by ensuring that, on a frequent basis, developments goals are focusing on businesses needs. Now this isn't to say that you can't screw up with agile. You can consistently deliver the wrong product or fail your iterations. But the business now knows it after a few weeks and can adjust. This compares with failing at the end of a 12 month Dev cycle. Both fail but it costs a lot less to fail with agile.

    As for documentation, agile does not necessarily preclude documentation. Instead it says if it doesn't provide a net positive value don't do it.

  19. Agile is not the problem by laffer1 · · Score: 5, Interesting

    I'm the first to agree that Agile doesn't work for every company or every situation. However, if done correctly, it's a very useful process and I've personally seen it succeed. Most people ignore some of the rules and that's where they get into problems. I've seen craziness like project owners also be team leads or have direct hire/fire power. The second someone has to worry about their job, idiocy is not pointed out as it should be. Agile lets you change course, but it's not meant to make things 2000% faster to develop. Any failure of agile or the other extreme, waterfall, is always because someone didn't follow the rules and didn't implement the process correctly. I've never seen waterfall work correctly because it requires a lot more planning up front and everyone wants to change course in the middle of the process.

    Business people don't want process. They want speed. That has to change. No one cares about quality or bugs until customers are complaining and sales are lost. Business people need to learn patience. Developers need to learn to stand up for process. I used to doubt it myself until I worked at a company with a functioning process. Today, I'm working for a company with no process again and it's a nightmare.

    The best thing about agile is that you have clear deadlines and actually feel like you're making progress during the programming process. If done right, it can be a real morale booster.

    1. Re:Agile is not the problem by cpscotti · · Score: 1

      Not the problem but is neither the "golden solution".

      I work on an Agile team that because they are agile they believe they can change things, requirements & focus every two weeks. Plus, anyone that says waterfall doesn't work is ignoring ALL *critical* software we depend on. Do you think airplane control systems are developed using agile? Bankin systems? Stock exchange? Power grid... your OS for fuck sake (be it linux, MacOS or the other one).. none of them were fully developed using Agile.

      Agile ADDs a lot of good stuff on top of waterfall and is more transparent and flaws/problems become apparent earlier - that's all. It doesn't solve *the problem of sw development*.

      I bet you that in 10 years there'll be another *agile* with a different name and book that will promise that THEY are solving the problems. Smart people take agile and try to make it better, dumb people follow it like religion (and like any religious one, they sin).

    2. Re:Agile is not the problem by UnknownSoldier · · Score: 1

      > Developers need to learn to stand up for process. I used to doubt it myself until I worked at a company with a functioning process. Today, I'm working for a company with no process again and it's a nightmare.

      A process isn't a silver bullet either. Sometimes the *lack* of process IS the process too. Let me explain this heresy ...

      On one job I worked at we didn't have a process for the first 6 months. We had 5 developers. Normally this would of a recipe for complete disaster. Except we had 3 things in our favor:

      - Everyone was senior with lots of experience
      - Everyone had a clear vision of what we were building
      - Everyone had a passion for making the best product we could

      Everyday us programmers would talk with the lead saying I'm working on this sub-system .. How do we do we need it to interface with the rest of the systems?

      By not having management stop productivity with the typical bullshit meetings us programmers had all the time we needed to design & implement. It is one of the few times in my life where I have seen total anarchy work beautiful. It is akin to Valve's "Cabal" system -- there are no manager; everyone is on the same level. This is a must read for anyone wondering how an anarchistic system can even work
      http://newcdn.flamehaus.com/Valve_Handbook_LowRes.pdf

      With the RIGHT people a formal process itself is not even needed. BUT I would agree though this is extremely rare; having some structure is better then no structure.

      Recently there was a talk on innovation. Sometimes the best thing a company can do is NOT DE-motivate people.
      http://www.dilbert.com/strips/comic/2012-07-06/

  20. Agreed and... by LostMyBeaver · · Score: 5, Interesting

    I like the morning meetings, but I have found the concept of a sprint to have killed off most of the design and planning phase, especially as a group when needed. Most of the projects I work on should have all the developers/engineers/scientists locked in a room together for two months before a single line of code is written. We should have a project manager with better than entry level knowledge in all fields and as a bonus based on recent methods should have tests for every component written before and/or after implementation.

    I think extreme programming combined with project management and morning scrums would be much more suitable than Agile which tends to make me see most projects get to the 90% mark muh faster, but fails drastically at the end since the lack of proper planning made integration of components extremely impractical. I still like it best when 1-2 guys spend some time to build the base product and then a team is assembled to evolve it... It avoids too many cooks.

    1. Re:Agreed and... by ATMAvatar · · Score: 5, Informative

      One of the main things you should be doing when practicing agile is continuous integration. The point is that you should be able to release at the drop of a hat. It has been a long time since I have had to worry about long-delayed integration woes.

      --
      "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
    2. Re:Agreed and... by dgatwood · · Score: 1

      Failure to integrate is an avoidable problem; you should have been doing that all along. What I've seen is that you get 90% of the way very quickly, but then because of the lack of sufficient design and architecture planning up front, you end up with a design in which the remaining 10% takes 90% of the time.

      In other words, it's an interesting way to build a prototype that you never intend to ship, so long as you understand that the next thing you should do is throw it away, design a proper architecture based on the lessons you learned along the way, and borrow only fragments of the code from the prototype as you build the final design using a more traditional process. If you try to evolve the prototype into the final design, you're in for a world of hurt.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    3. Re:Agreed and... by Anonymous Coward · · Score: 0

      I like the morning meetings, but I have found the concept of a sprint to have killed off most of the design and planning phase, especially as a group when needed. Most of the projects I work on should have all the developers/engineers/scientists locked in a room together for two months before a single line of code is written

      I don't think you really understand how Agile works. Architecture/design DOES happen, but it happens in conjunction with the sprints, and is a continuous process (just like development).

    4. Re:Agreed and... by IICV · · Score: 4, Insightful

      One of the main things you should be doing when practicing agile is continuous integration. The point is that you should be able to release at the drop of a hat.

      That's one of the problems with these self-reported "Agile" failures - sure, it borders on a no true Scotsman argument, but if you're "doing agile" with five or six week "sprints", hour-long sit-down meetings instead of standups, no product manager, no backlog, no continuous integration - then can you really say that agile methodologies failed?

      What really happened was you were trying to do waterfall faster, which just doesn't work. It's like saying baseball doesn't work because you made a few "tweaks".

    5. Re:Agreed and... by turbidostato · · Score: 1

      "One of the main things you should be doing when practicing agile is continuous integration."

      Well, tell me exactly in which sprint did the customer asked for "continous integration" then. Because, you remember, if you are not promoting the customer's needs from his own point of view first, you are not doing agile, do you?

    6. Re:Agreed and... by b4dc0d3r · · Score: 1

      Most of the projects you work on are not representative of most of what everyone else works on.

      I work with a competent set of people, and we can trust each other for the most part to do the right thing. If we all estimate together, and one person is continually missing estimates, that's a red flag. Otherwise, that means we're still on the same page.

      Our customer had a bad experience with waterfall, and expects the type of frequent updates you get in Scrum. Also, the power to decide which features get added or removed from a sprint due to changing conditions.

      It works perfectly for us because of the development team, the environment, the customer, and the code we inherited. There is no way to say that it would work in any other situation blindly.

      My general attitude towards choosing a methodology is that someone with knowledge of the environment and the authority to make a declaration, gets to choose how it goes. Based on feedback from the customer and employees, this decision might have to change.

      I have been in a Fortune 20 company, where the business did not allow for Agile anything because it's too big to communicate anything across all of the teams. I've worked where IT is just an afterthought, and Program Management just barely understands what we do.

      The fight with program management is, they know how long it takes to build this component or put them together to build a part. They can't understand why we can only give a rough estimate. If I've done it before, I know how long it takes, because it's done. Zero time. But that's never the case, it's always something new - either slightly or significantly, in which case your estimate will be off slightly or significantly, respectively.

      The best way to describe the benefit of Scrum is that you divide work into small parts, and can show progress weekly or biweekly. You can still have an overall waterfall process with set plans and delivery dates, while implementing the parts of Agile that make sense for your team.

    7. Re:Agreed and... by shutdown+-p+now · · Score: 1

      You need to go one step ahead and ask why people are "doing agile with five or six week "sprints", hour-long sit-down meetings instead of standups, no product manager, no backlog" etc. And that often happens because they have a project that by its nature is not particularly suitable for Agile - i.e. it's large and not easily componentized - but they feel the urge to tuck "Agile" in there somewhere because they know it magically makes things better.

  21. Mod article 'flamebait' by Tony+Isaac · · Score: 4, Interesting

    The survey doesn't discredit Agile. What it does is show that there is wide misunderstanding of Agile, including by those who claim to practice it. I've worked in such a shop, where Waterfall was the methodology, but it was presented as Agile. I've also seen Agile work beautifully, and I've personally implemented it successfully.

    What Agile really does is take into account the fact that it's not possible to fully anticipate and visualize all necessary features before a project begins. This is no different from any other physical product development, say, designing a new gadget. Lots of planning can and should be done up front, but once a prototype is complete, it will become evident that changes need to be made. Waterfall assumes that the product can be well understood from the beginning, like building a building. If you are building software that is nothing but data entry screens, maybe Waterfall can work. But for anything novel, it falls far short.

    1. Re:Mod article 'flamebait' by Anonymous Coward · · Score: 0

      ... and if your company mgmt starts off sprint 1 by telling the devs the planned release date has already been set in stone and nearly all features are essential, Agile's no different than a micromanaged waterfall, minus the in depth design work. If unforeseen work comes up (which it always does) tasks start getting crunched and either there's deathmarch or schedule slips.

    2. Re:Mod article 'flamebait' by Anonymous Coward · · Score: 0

      What Agile really does is take into account the fact that it's not possible to fully anticipate and visualize all necessary features before a project begins.

      So Agile fixes office politics?? Oh, please.

  22. Trolling? by ausrob · · Score: 1

    The thing smells of trolling. I'm happy for people to 'call BS' on some of the garbage people say (by way of promoting) Agile practices, but honestly, who thinks 200 people is a wide enough sample range to denounce an entire methodlogy/ideology? Reads like a cheap shot.

  23. Agile as a last gasp answer to offshoring ? by CalcuttaWala · · Score: 1

    This whole concept of Agile was dreamt up as a last gasp response to the offshoring of development work to inexpensive developers in India. Nothing more.

    --
    Insight into much, Influence over nothing !
  24. Agile is what you make it by Anonymous Coward · · Score: 0

    I would agree there are teams who use the Agile guise to create lazy, slapped together, products with very little forethought into the lifespan of the product. However, I would also like to point out there are plenty of teams who take a very long time to put together the same garbage software with traditional methods.

    My teams work every day using an Agile methodology and I would actually argue the opposite. We still do a heavy amount of "global" planning at the beginning of each product, assemble a feature outline, create a cycle map, and establish a deliverable schedule. The main difference is that it lets us adapt to real world outcomes. When we have an iteration we analyze the prototype and there are countless times where we find a feature that we spent days initially planning simply does not work in the real world; at this point we go back to the drawing board and come up with a new solution. This iterate and check methodology leads to a far superior product at the end of the day but in some cases it can drastically increase the development time of a product. The added ability of involving the client in each of these iterations to get their feedback and apply their suggestions guarantees a product which meets their needs.

  25. Flamed by WilyCoder · · Score: 4, Insightful

    I realize I might get flamed for this, but I wanted to say it anyway: I think agile is a complete waste of time. Its micro management wrapped up in a fancy, marketable term.

    I've been a senior developer for about 8 years now. Never used Agile, never had a need to. Hire the right people and there is no need for agile.

    Ok, my flame suit is on.

    1. Re:Flamed by Anonymous Coward · · Score: 0

      I will not be trolled!!!!!!

      oops I think I just was.

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

      I've been an Object Oriented developer for 23 years and Agile development for 15 years. It beats the HELL out of the "Waterfall model" of software development.

      But like any other process, it can be abused

    3. Re:Flamed by Surt · · Score: 1

      If you perceive it as micromanagement, whoever is running the process is doing something wrong. It should appear to the developer as if they have much more control.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    4. Re:Flamed by Anonymous Coward · · Score: 0

      Hire the right people and there is no need for agile.

      Quite correct.

      But agile isn't really needed by smart people like you.

      Agile becomes important when you need to get all the other, much-less-talented stakeholders involved. For those people, you need to patiently review all the basics -- even the stupidly simple concepts like the fact that you need to get early prototypes of the product reviewed by ALL stakeholders as soon as practical in the development process.

      Just watch their dim-witted eyes light up when you suggest that they should be given the chance to review early prototypes for their feedback. It will seem like a miraculous new idea to them. They will ask excitedly: "what is the name of this wonderful new management style?". You tell them: "it's called 'agile' development". Obviously, the word is just a silly term for doing what is obvious to the talented. But some people need terminology like that to give their minds something to grasp onto.

    5. Re:Flamed by mattpalmer1086 · · Score: 1

      Well, just because your development process is working fine doesn't mean Agile is a waste of time.

      I've been responsible for scrum / scrumban implemented in two separate and very different organisations over the last 5 years. In each case it's worked very well, but in different ways. In both cases, we adapted it to fit in and provide what each organisation needs. This requires intelligence and an understanding of what the organisation needs and what Agile can (and cannot) provide. It also requires buy-in to experiment and find what works and what doesn't.

      It's also not micro-management; quite the opposite. It's about empowering teams to own their work, and to develop a new product in the face of changing requirements. I've seen shy developers suddenly start having great ideas about how to improve the development process, and gaining confidence and stature as they see their ideas implemented.

      It also involves the stakeholders more directly in the development process. I've seen stakeholders move from cynical and disengaged to becoming a real development partner (the short iterations and product reviews are wonderful for that). Many people simply can't visualise what they really want from a product until they see something. They are not abstract thinkers. When they can see something, it's amazing what fantastic feedback and ideas you get from the people you're building the product for. It's even better when the same people see the changes they requested appearing a short time later in the product. This empowers the client as much as the development team. Done right, it's amazingly helpful.

      I did have a fight with some of the more traditional project managers, who saw getting ongoing good feedback from the customer as a failure of our requirements elicitation stage. But for them, ongoing change is a sign of failure in an earlier stage - very much waterfall thinking.

      Anyway, that only scratches the surface. I think Agile has a lot to offer, as long as you understand it's not a magic bullet. You still need good people (and it may be true that good people could use any methodology and produce good results). It does encourage a team spirit and a partnership attitude done right, which I haven't got from any other development or project management methodology.

      Genuine question: how do you do development - any good ideas you could share?

    6. Re:Flamed by overnight_failure · · Score: 1

      I don't think you get to make a generalisation about a group of approaches to software development when you have never used them ;)

      Not having the need for them is perfectly valid though, if you're in that kind of situation then you're actually very lucky. Things like Waterfall can work and work well, the whole point though is that one size doesn't fit all. So whether you're Scrum or Waterfall it doesn't actually matter. Just like development tools, you use the best thing for the job.

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

      Having spent 4 years working in a 'so called' agile environment I have to agree with you.
      At first, it was fine but then Senior management morphed it into the very micro-managed style you mentioned.

      Gradualy one by one the core principles of Agile fell by the wayside.

      Now that I'm the lead of a smalle team of four highly skilled and motivated developers who work well together it feels like a breath of fresh air. We get 'stuff' done in a fraction of the time we did in my last place of work.

      Agile has its place but is no 'wonder cure' for development ailments.

    8. Re:Flamed by mattpalmer1086 · · Score: 2

      It's a huge and arrogant mistake to think that stakeholders aren't talented people (well, they may or may not be, like anyone else). It is true that they almost always aren't talented at software development, and often not great abstract thinkers. From their perspective, you are not talented at retail, or industrial processes, or finance, or... well, whatever they actually know about and you don't.

      I'm actually quite appalled at your derogatory attitude to your customers and development partners. Were you just trying to make a point, or do you really believe what you said?

    9. Re:Flamed by Anonymous Coward · · Score: 0

      You can take it off again.
      No argument here.

    10. Re:Flamed by Anonymous Coward · · Score: 0

      Actually, I agree 100%. There are some good ideas in the Agile Manifesto, but the implementation seems to institutionalize mediocrity.

    11. Re:Flamed by Anonymous Coward · · Score: 0

      Your flame suit is probably always on, given your arrogance. YOU are a senior developer, YOU never "needed" Agile, YOU are the right people. News flash: the field is largely composed of mediocre hacks. NOT the "right people".

    12. Re:Flamed by oursland · · Score: 1

      Never used Agile

      Sounds like you've constructed an opinion based not on experience or evidence, so why should I care for anything you say with regards to this matter?

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

      Ah, but it isn't a mistake. It's a fact. They _are_ retarded idiots when it comes to software. And you should expect nothing less (otherwise they are actual idiots that are in the wrong position).

      When was the last time somebody asked you to estimate ROI of the project assuming successful marketing campaign and ARPU of x$ while dangling TV spots with the agency trying to keep the cost of 1k exposures below x$ (forgot the acronym for that) to maintain margin of x%?

  26. Everyone knew Agile was a scam. by Anonymous Coward · · Score: 3, Interesting

    Agile was meant for producing disposable code with few people. Such as MS Access documents that tell you the amount of wood a house is going to need, or a quick and dirty C# program that reports to you on how your web-servers are doing so you don't have to spend $10,000 per server for a whatsupgold license, or....*insert "If we could do X for Z Cash that'd save me Y money" statement".

    Check out this picture.
    http://en.wikipedia.org/wiki/File:Agile_Software_Development_methodology.svg

    Someone thought that was a GREAT way to build complex enterprise systems. Afterall, there's a lot of movement in there, and execs with high blood pressure love seeing Chinese fire drills.

    The end result is burnt out developers produce a large amount of bug ridden code which gets stacked ontop of each other in a process known as fudgepacking. A Fudgepacker is someone who builds the integration layer between the pieces of fudgey goodness which usually results in Enterprise systems with operating procedures which state "If the software gives an error, that is normal, click OK", and because management pushed it, even though the numbers LOOK wrong they are actually right which leads the entire org off a cliff. After-all, no developer knew what numbers should look correct.

    If caught just before going over the cliff, two things happen. First, the lemmings argue about who's got to jump off the cliff first. Second, after the appropriate blood sacrifice upon the alter, management asks to get it fixed. Problem; the fudgepack..er..integration specialist costs $250k/year and jim says it's jacks code, so they blame jack and jack is tasked with fixing it. Well....

    Cost inevitably gets out of hand in such a world which leads to outsourcing as a "risk" instead of looking for an actual solution because choosing the wrong solution makes it look like you're doing work to investors and the investors know, while it's likely you'll fail, if you do, and you look like you tried hard, some other sucker may buy your work thinking it just needs a tweak.

    Everyone who does software development just wants to build indisposable code; systems that are rock solid and work well for decades. This requires a lot of work, planning and a lot of research by the business to build a [i]design document[/i].

  27. All software methodologies are snake oil by pauljlucas · · Score: 5, Insightful

    If you have a group of talented developers, all they really need to do is programming, motherfucker. (It helps if you read it in Samuel L. Jackson's voice.)

    --
    If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
    1. Re:All software methodologies are snake oil by Surt · · Score: 1

      Labeling Agile as a software methodology is misleading. It's a process methodology which should live at a level slightly above the software engineering. You should do your programming motherfucker, and what you should program should be guided by the Agile process.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    2. Re:All software methodologies are snake oil by istartedi · · Score: 1

      This is the 2nd time I've seen a link to that site, and I get a kick out of the fact that it doesn't work right in IE8.

      Testing, motherfuckers!

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    3. Re:All software methodologies are snake oil by shutdown+-p+now · · Score: 1

      You assume that the owner of the site actually cares about it not working in IE8.

    4. Re:All software methodologies are snake oil by Johann+Lau · · Score: 1

      You say that like it's a bad thing?

    5. Re:All software methodologies are snake oil by istartedi · · Score: 1

      Why yes, yes it is. First, it's bad because the web is so sadly broken that you actually have to think about browser compatability. Next, it's bad because MS is losing the browser war and doesn't even realize it. The fact this is MS's fault is beside the point. A majority of people on Slashdot hate MS for breaking web standards, but they don't call out other people for doing the same thing. Yes, MS was bad at standards compliance to say the least; but never had the gaul to break something as fundamental as URLs! Google does this shebang travesty, and... where is the outcry?

      Finally, it's bad because we're dividing the web into two worlds. The "your father's web" and "we're too kewl for IE" worlds. I like my Oldsmobile. It's comfortable. Yeah, I can pretend to be kewl, and fire up Chrome to make your stupid site work; but most of the time I don't want to.

      Yeah, I know a lot of people on Slashdot have been wanting MS to go down in flames. There's a saying where I'm from: Watch out what you ask for. You might get it.

      I fear the community will have to experience a web without MS being a major player before they realize what this means.

      Really though, I just wish IE would fix their scripting engine. That seems to be the biggest problem. There's a broker site I use. They're not known for playing the "kewl" game, and yet IE has become unreliable there. You may or may not get a listing of all strike prices on options if you ask for it. It's as if a variable has been unitialized or something. Do it in Chrome, and it just works.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    6. Re:All software methodologies are snake oil by Johann+Lau · · Score: 1

      How do Google (or Twitter, for that matter) break URLs?

      I like my Oldsmobile. It's comfortable. Yeah, I can pretend to be kewl, and fire up Chrome to make your stupid site work; but most of the time I don't want to.

      Well, I guess there's no a programmer lost on you then.

      I like not programming for a shit browser. It's comfortable. "Kewlness" has nothing to do with it. It's called knowing what's good, and acting accordingly. When it comes to the sore that is IE, I'm not responsible for proliferating it. Nothing more, nothing less.

      I fear the community will have to experience a web without MS being a major player before they realize what this means.

      You could say that about anything, it means zero. Are you thinking of anything specific, or is that random FUD, to defend your choice of a crap browser?

    7. Re:All software methodologies are snake oil by istartedi · · Score: 1

      1. #! (Shebang). Google uses it for some AJAX purpose. I've had people post links with shebangs in them, thinking it would take me to a page. Instead, it took me to the homepage becasue IE is using # for its intended purpose--to take you to a subsection within a page. Since there is no ! section, it just takes you to the base URL. AFAIK, Google is out of compliance, didn't run this by any kind of standards committee, and just hacked it in. Feel free to correct me on that if I'm wrong.

      2. I don't know what you mean by "no programmer lost on me". "shit browser" is a subjective term. Becoming a platform bigot is facile. Writing cross-platform code is what real programmers do. I couldn't live with myself as a programmer if I lost 50% of potential users because my code was insufficiently portable. One of the biggest inspirations for me was opening up the libjpeg sources and seeing that it was possible (in C!) to write code that not only ran on *NIX and Windows, but obscure systems like Amigas, and various RISC archs I'd never heard of. Ironicly, the web is supposed to be platform neutral, and it is now, IMHO, less platform neutral in practice than C which is supposed to be just one step above assembly.

      3. Competition is good. One less competitor is not good, especially when it created an ecosystem where anybody could write applications without having to put them in the Jerk Store.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    8. Re:All software methodologies are snake oil by Johann+Lau · · Score: 1

      1. #! (Shebang). Google uses it for some AJAX purpose. I've had people post links with shebangs in them, thinking it would take me to a page. Instead, it took me to the homepage becasue IE is using # for its intended purpose--to take you to a subsection within a page. Since there is no ! section, it just takes you to the base URL. AFAIK, Google is out of compliance, didn't run this by any kind of standards committee, and just hacked it in. Feel free to correct me on that if I'm wrong.

      Ohh this is uncomfortable for me, because IMHO you are kind of wrong, but it's also not a practice I'm very happy with.... It's not that IE does anything different, all browsers with Javascript turned off would behave like it on those sites. But if Javascript is turned on (and the scripts on the site don't break with IE, as they might have in your case), then it does the whole dynamic page loading thing. It doesn't have to do with standards as much as with Javascript, or as you said, testing in IE :P

      But it's not Google who started with this, Twitter was, and they're now reconsidering haha:

      http://engineering.twitter.com/2012/05/improving-performance-on-twittercom.html

      From what I can tell, the only thing Google has to do with it (other than using it themselves) is recognizing the "bang" (exclamation mark) when crawling: http://www.socialmagnet.co.uk/2011/03/what-is-the-shebang-hashbang/

      2. I don't know what you mean by "no programmer lost on me".

      It wasn't meant as an insult, it's just I never heard of a programmer that uses Internet Explorer as their default, and surely not as their only browser. And any aspiring programmer surely would JUMP on the opportunity to have a "better, cleaner, faster" viewer of the web, by using a modern browser, when it's just a click and a download away. It's just I kind of associate curiosity and early adoption with the whole coder thing.

      Writing cross-platform code is what real programmers do.

      Exactly! Which is why real "programmers" (some would frown on calling HTML/CSS code, but personally I say bleh to all that, it's "codified stuff" for sure) code to web standards, not browsers.

      If the site is correct HTML and CSS and doesn't work in Internet Explorer, then it's the fault of Internet Explorer. If you use an old browser, it's your responsibilty to either upgrade, or just accept that you're doing this to yourself.

      I couldn't live with myself as a programmer if I lost 50% of potential users because my code was insufficiently portable.

      IE is the only browser that only runs on Windows. So yeah, how can they live with themselves, right? :P

      And they're not loosing 50% of potential users. They're loosing those of their potential users who are too lazy to check back after work with their own computer, which, as I already said, hopefully will not only have IE on it. So they're loosing 50% of onlookers maybe, but not because anything is wrong with their code.

      Ironicly, the web is supposed to be platform neutral, and it is now, IMHO, less platform neutral in practice than C which is supposed to be just one step above assembly.

      I'm not saying Webkit or Mozilla are saints, I hate vendor prefixes for example. But still: if you write valid HTML4/5 and CSS3, it will either show up correctly, or degrade gracefully recent versions of all other browsers. Not in IE.

      And what you are asking for, that people bend over backwards to make all sorts of duct-tape fixes behind the scenes, just to get IE to render properly, leads to the problem, the expectation of people that they "should" be able to browse the web with a shitty browser. (An

    9. Re:All software methodologies are snake oil by istartedi · · Score: 1

      It wasn't meant as an insult, it's just I never heard of a programmer that uses Internet Explorer as their default, and surely not as their only browser. And any aspiring programmer surely would JUMP on the opportunity to have a "better, cleaner, faster" viewer of the web, by using a modern browser, when it's just a click and a download away. It's just I kind of associate curiosity and early adoption with the whole coder thing.

      Thank-your for an intelligent reply that turned down the volume on argument. It's pleasant and all too rare. That said, let me just focus on the one point emphasized above, as it's the most interesting one to me and I can fit in the reply while my friend is showering before we go out to dinner.

      Yes, I realiize I might be an anomoly in this regard. FWIW, I'm 44 years old. That might have something to do with it. When smartphones came on the market, my first reaction was "I already have a prescription. I don't want to make my eyes any worse".

      I don't see myself as a techno Luddite though. Rather the opposite, I see myself as a connoiseur and a critic. My priorties are different than those of many others. I like IE because it has an interface that I'm used to. Take tabbed browsing, for example. Hate it. Why? Not because it's new; but because it's an old thing that's been displaced into a new space where it doesn't belong. I already have what ammounts to "tabbing" for all my applications--not just the browser. It's called the task bar. I'm used to doing this for everything from DOS windows to text files, and switching between one thing or another regardless of what the application is. Tabbed browsing is just a nuisance because I have a deeply ingrained pattern that says, "when you want to get away from that page, click the X". Now when you do that in Chrome which, encourages you to use tabs... you lose all your pages. I have to slow down and think when I'm in Chrome. Maybe this is more expensive when you're middle aged.

      Early adoption? I understand that many associate that with technical people; but on the flip side you have guys like RMS who will probably give up EMACS when you pry it from his cold dead fingers. Strangely, I'm the philosophical opposite of RMS in a lot of ways; but oh crap... my friend showers fast, and I need to shower too...

      Anyway, thanks again for being an interesting correspondant; and maybe I'll find the time to bang out some more thoughts later...

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    10. Re:All software methodologies are snake oil by Johann+Lau · · Score: 1

      I usually start out flaming, and then it either gets worse or better depending on wether the other person flames back. So no need to thank me for being somewhat civil at last, thank you. I'm a cursed rabid dog, and I need to hear calm voices to turn into a coherent human, for a bit. But I digress.

      I think it may be true that not many web "programmers" uses IE.... but saying that about programmers, yeah, that's silly, use what works for you. If you make websites, you'll come to hate (old) IE soon enough, nobody will have to convince you ;)

      There is Chrome Frame, it basically allows you to use Chrome's rendering with IE -- only if the website contains a meta tag requesting it, but there is a way to make it default: http://www.chromium.org/developers/how-tos/chrome-frame-getting-started#TOC-Chrome-Frame-as-a-default-renderer

      The idea basically is that you'd have more compatible rendering while keeping the user interface you're used to.

      Strangely, I'm the philosophical opposite of RMS in a lot of ways; but oh crap... my friend showers fast, and I need to shower too...

      You clearly ARE the staunch opposite of... the man who never saw a shower! *ba-dush* ^^

    11. Re:All software methodologies are snake oil by istartedi · · Score: 1

      LOL, I wasn't going to make the shower joke.

      While AFK I had time to reflect more on "early adopters". Right now, at this point in history, the early adopters seem to be winning. By winning I mean that if you are the type who picks up new tech, you learn more, get better jobs, end up with 5 years experience in 2 year old technologies required to get the job, etc.

      I look at that and think, "I should become an early adopter". The problem with that is that you can't fake it.

      Now, this isn't to say I dislike change. It's to say I dislike change for change's sake. For example, when I was in school e-mail was just becoming widely available to students. This was fascinating to me. I could (and did) correspond with students and professors at other universities all over the country, and even the world. This, and the Internet in general were a change that I embraced and delighted in fully. I look back on that and I think it's because I regarded a world where people could communicate freely as being better than one where they couldn't as opposed to meerly different

      In fact, at the time I had access to Sun workstations with XWindows. A new Windows machine appeared in one of the other labs. I tried it, and it took 3 minutes just to boot. In retrospect, they had probably attempted to install on a machine with insufficient hardware; but that was my first impression of Windows. I wondered why anybody would want to use it.

      When I was out of school though I was forced to buy computing on an underemployed budget. I made less than $10k my first year out of school! I was busted back to connecting to networks through BBSs with a 286 that I picked up from a school for $115. I found out about the sale through a print classified ad. It all seems so quaint now. Somewhere along the line I developed a keen sense not only for what it meant to work under tight economic constraints; but what it meant to be a "common" person as opposed to the world of "privelege" I experienced at the university.

      That's at least part of the reason I cling to technologies that are popular with the uneducated masses, as opposed to what's current with other tech-savvy people. I felt concerned that if I started doing everything in Linux (later Mac) I would lose touch with what other people experienced. Flash forward to today, and the idea of buying a hot new device for $600 every year is not exactly working class either. I'm also back to being concerned about my economic circumstances. Priorities. I want to keep my 6 year old Lenovo running as long as possible. What a fine machine it is... all too often destroyed by web devs who think it's a good idea to display dozens of full sized images and all the forum replies on a single page. Can you say "swap"? I think it could handle another stick of RAM; but dammit, I shouldn't have to buy one.

      Anyway, Chrome frame sounds like an interesting idea. It's obviously a short-term fix though. We live "in interesting times". When the Lonovo dies I'm not sure which direction I'll go in...

      Oh, I've only touched on a few themes here. The subject of change, the dynamic of forced vs. voluntary change, technology's place in society, etc... this could blow up into a much larger essay or even a book. A book based on a Slashdot thread... yay! Not enough hours. That's my last word on this particular thread; but I'm still a regular poster here (after 13 years!), so you'll see me around and I'll mark you as a friend.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  28. The reality... by Junta · · Score: 2

    *Anything* that becomes the most popular 'brand' will become distorted to the point it's hard to say precisely how meaningful the application of the name in a given circumstance is. Agile and Cloud are the two terms in the computing industry the most afflicted by this phenomenon.

    In fact, I would say an organization getting very picky about using every little piece of 'Agile' terminology is more likely than not in a scenario where they really aren't doing 'Agile'. Many just rename their 'product requirements' to 'user stories', 'milestones' to 'sprints', and 'status meetings' to 'scrum' without actually changing anything about the way they do things other than renaming (well, and putting the exact same project management data they had before into new software tools that advertise 'Agile').

    It's just like how anything that has network connectivity now is advertised as 'cloud enabled', without regard for anything but the ability to transmit and receive IP as a qualifiaction for 'cloud'.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  29. What are they trying to sell? by goombah99 · · Score: 2

    Anti-agile services.

    --
    Some drink at the fountain of knowledge. Others just gargle.
  30. It's a myth that agile is undisciplined by Anonymous Coward · · Score: 2, Informative

    We have to practice planning and create documentation like everyone else, we just do it on rapid iterations. Agile done right will force discipline on developers and they will hold each other accountable for deliverables.

    In our company there's really no alternative to agile, because our customers never know what they want. We've tried various "waterfall" methods over and over, with the same results each time--the initial requirements are vague and/or poorly understood, leading to a lot of wasteful development and missed expectations that cause the project to be late, sometimes cancelled, or if it ships it doesn't work the way the customer wants it to.

  31. Agile works by Anonymous Coward · · Score: 0

    I've been using agile, mostly based on scrum for 4 or 5 years now and it works. If documentation is listed as important put it as a task on the backlog and board remember prioritization is the business owners responsibility and their responsible for making sure we work on the tasks that will generate the most customer value.

  32. CCP by Anonymous Coward · · Score: 0

    CCP(EVE Online) uses agile development. I guess they're not successful.

  33. I have issues with the TFA by thinkingsites · · Score: 5, Interesting

    From the TFA:

    * Sixty-four percent (64%) of survey participants found the transition to Agile confusing, hard, or slow. Twenty-eight percent (28%) report success with Agile.
    - I'd like to see the number for success in waterfall.

    * Overwhelmingly, 40% of participants that use Agile did not identify a benefit.
    - How is 40% overwhelming? I though overwhelming meant much larger than a simple majority. What about the other 60%?

    * We received some unprecedented scathing and shocking comments about the level of competence, professionalism, and attitudes of some members of the Agile movement.
    - Having not met them, I can't vouch for the Agile leaders. However, we're using their product, not their personality.

    * Be aware that the Agile movement might very well just be either a developer rebellion against unwanted tasks and schedules or just an opportunity to sell Agile services including certification and training.
    - Sure, it's another developer rebellion... against bad practices. Agile does not mean you get to avoid the necessary tasks like documentation. And who doesn't want to make money? If that's what they do fulltime and it's valuable they should be able to earn a living. That's the pot calling the kettle black with them pushing their $150 report.

    I'm not an agile fan boy but it's a better alternative than A) bad managers thinking they're managing a project correctly or B) planning a massive project and having it shift underneath you.

    This just sounds like a smear to get attention.

    1. Re:I have issues with the TFA by IICV · · Score: 2

      We received some unprecedented scathing and shocking comments about the level of competence, professionalism, and attitudes of some members of the Agile movement.

      I loved this line, it sounds so much like "what the hell, Agile encourages developers to talk back? This is bullshit, slaves do what they're told".

    2. Re:I have issues with the TFA by PhotonSphere · · Score: 1

      From the TFA:

      * Sixty-four percent (64%) of survey participants found the transition to Agile confusing, hard, or slow. Twenty-eight percent (28%) report success with Agile.
      - I'd like to see the number for success in waterfall.

      * Overwhelmingly, 40% of participants that use Agile did not identify a benefit.
      - How is 40% overwhelming? I though overwhelming meant much larger than a simple majority. What about the other 60%?

    3. Re:I have issues with the TFA by Anonymous Coward · · Score: 0

      To me, it sounded more like "we're the kind of pussies who like to trash-talk people more successful than us, but we're too scared they might smack us down (legally or in the court of public opinion), so we'll just hide behind 'some say'."

    4. Re:I have issues with the TFA by Anonymous Coward · · Score: 0

      it's kinda like saying 'the developers and methodology are to blame for the project's failure because we shouldn't have to listen to their advice'.

  34. Agile is not Easy by Moe+Taxes · · Score: 1

    Just because you're fit doesn't mean you can tear up the parkour course.

    If you've done agile right the code is the documentation, and it reads like documentation.

    Agile is not developer centric, it's user centric. If what you are doing is developer centric, it's not agile.

    The toughest thing in Agile is getting a good person in the user role. That's why it works great for consultancies where the user pays for the privilege of guiding their project every day, and not so much for the enterprise where nobody wants the responsibility. It is a better career move to wait and throw bombs at a failed project then to get involved and make decisions everyday.

    --
    It took a real world war to end the airplane's patent wars. - Fâché Rouge -
    1. Re:Agile is not Easy by st0nerhat · · Score: 3, Interesting

      Agreed. Agile really was designed for frontend applications where the majority of the work is in the user interface. Games, web sites, iPhone apps are great candidates for Agile/Scrum. But I would never Scrum a prison door controller or a missile guidance package. Some things you have to get right once or not at all. Secondarily, Agile is not a one-size-fits-all. A consultant cannot set up the process for an existing team. Every company takes the form and modifies it to produce better outcomes. Sure the book-Agile is bad, but I love the Agile we run in my shop.

    2. Re:Agile is not Easy by Anonymous Coward · · Score: 0

      Agile is a buzzword these days. Lots of companies say they are doing it and sell as a faster to market lower cost solution.

      What they really mean is we don't have the right people in place to figure out what you actually want and delivery it to you. We are not going to document it if you want that your going to have to pay for it later. We are only going to give you the minimum features to accomplish the goal then over charge you for small "extra" functionality that you asked for in the first place but we put it on the would be nice category and forget about it instead of keeping it in mind when writing the application. So we have to re-factor half the damn classes to account for one or two more variables that coudl have been initially created to support this feature in the future.

      So in the long run the client gets a basic application that kind of does what they want faster. Then they end up paying extra for all the original nice to have features which really should have been included in the first place. They pay extra for the documentation. Once they finally get the product that they originally requested it has taken longer and cost more then to have simply done the waterfall approach to begin with.

      From my perspective if you need to be fastest to market Agile is a good option. If you want a really good product go through waterfall your product will be far cleaner and better in the end.

    3. Re:Agile is not Easy by Anonymous Coward · · Score: 0

      If you are doing a missile guidance package then maybe you are implementing some well known algorithm in some well known way, in which case you actually are iterating it's just that other people already did many of the iterations beforehand for you. However, if you are trying something new or doing it on new hardware, you are bound to implement something that needs iteration - implement, see how it works, feed that information back into the next iteration of the software. Now you are back into a situation with iterations and an ongoing prioritization of features. It does become a problem if a large feature cannot be broken up into smaller chunks in any way, though, I'll give you that, but that's usually not the case if you accept code reorganization as a feature.

    4. Re:Agile is not Easy by Anonymous Coward · · Score: 0

      I call B.S.

      I've spent the bulk of my career (30+ years) developing for embedded systems with custom hardware. I got my introduction to Agile in 1998, as a matter of self-defense. I'd rather be doing Agile than: MIL-STD-1679A, MIL-STD-2167, Rational, Waterfall, ... you name it. Our bug rates are very low and the design is solid.

      We're able to integrate a new piece of hardware and/or software with very high confidence. Integration testing usually takes ... "about an hour". The good news is that most of the integration testing takes place automatically. The build server notes the changes, builds the software, deploys to our test hardware, and runs the integration test suite. If/when a bug slips through, we back-fill the hole in our test suite.

      There are a few things we do to help this along. We maintain a software simulation of any significant piece of hardware behavior. The simulation is developed just as if it were production code (indeed, it has become production code). A set of hardware acceptance tests must run and pass against both the simulation and the real hardware. This combination ensures that:

      1. The software team is aware of what the hardware is really doing and the challenges faced by the EEs.

      2. The production software interacts with the hardware correctly.

      3. The production hardware actually behaves as expected.

      Imagine the situation where the EE team has turned over completely and new behavior is added to a 10 year old hardware design. In addition to this, 3/4 of the software team wasn't around when the hardware was initially designed. While I can't speak for the EEs, this scenario doesn't (and didn't) worry me. I knew that our process would support us.

  35. The metaphor of Agile by ddtstudio · · Score: 2

    First off, I'll say that I have little to no direct experience working in this system, as I am not a developer. But as has been pointed out to me by many Agile-experienced managers and developers, what I have done -- worked at monthly, weekly, and daily newspapers and news sites -- is very similar in structure. That is, we have daily meetings about what we're working on and where that is, the editorial goals, checking in on longer-form projects, and then going off and working our asses off.

    Of course any snake-oil consultant can come in, propose a "just-add-water" buzzworld-compliant solution, and screw up any endeavor. See also: metaphors about having only hammers.

    But I think the key is that at least in journalism, we had an existing superstructure and larger mission, and regular content that we delivered, so that kept us on track and gave us regular learning feedback. Think of it as daily iteration based on user research.

    Do software/hardware projects have that sort of thing? Is the superstructure in place, and does Agile fit into that, rather than imposing Agile because... well, it's Agile?

  36. agile solves analysis paralysis by systemsplanet · · Score: 1

    agile can be summarized as "just do it". it works well,in my experience, at cranking out code and a semi usable product. after a few years of bolting on enhancements you may wish you spent more time designing. however, it's easy to design something that don't work. at least with agile you get something working fast. as fast as the web changes, we really need fast solutions to current problems.

  37. Agile works - My experience by turgid · · Score: 2

    Agile does work, and it works well provided that you have cooperative managers and good developers (or at least good lead developers).

    Agile fails when management dictates what the developers do, management doesn't trust the developers, the developers are clueless or the developers are lazy.

    Clueless, ignorant, lazy people cause projects to fail no matter what methodology they follow.

    You don't need to spend money to "do Agile." If you want the official training, you can pay for it. There has recently been a break-away movement by the originators of Agile/Scrum to go back to basics and to provide much lower cost certification.

    I was trained in Scum/Agile/Design for Lean Six Sigma to the green belt level and have over 4 years experience. I went to a new job and initiated Scum in my new team. I gave a presentation to all of the engineering staff, got their buy-in and my software team started working in sprints. I was the scrum master for the first few cycles and now we're taking it in turns to get experience.

    I've tried to start with the basics and to avoid it turning into a "cargo cult." It's working very well. The PHBs love it because they know what's going on at all times without many frequent boring meetings and they get a demo once a fortnight of the new "value" that we've created in line with our sprint goals.

    The developers like it because the work is in bite-size chunks, management can see progress (and so we get credit and praise), interruptions and emergent work are monitored (the effect on progress can be seen) and we are delivering working incremental pieces of the product and integrating and testing them early.

    Progress and quality have never been so good at this place, and the developers are enjoying being seen to be delivering and having things that work.

    The engineering director is so impressed that he wants the other teams to adopt Agile/Scrum too. I'm getting moved to another team temporarily to get them started on scum.

    I also use Test Driven Development to write my code and have implemented a test stub mechanism of my own. My colleagues have seen how successful it is and are starting to learn how to do it as well.

    1. Re:Agile works - My experience by fotoguzzi · · Score: 5, Funny

      "I was trained in Scum/Agile/Design for Lean Six Sigma to the green belt level and have over 4 years experience."

      No buzzwords here, thankfully. Is Scum that super-stripped-down version of Agile that I have heard about?

      --
      Their they're doing there hair.
    2. Re:Agile works - My experience by turgid · · Score: 1

      No, it's something to do with a worn-out keyboard.

    3. Re:Agile works - My experience by Anonymous Coward · · Score: 0

      "Agile does work"

      I see this sort of comment about Agile a lot. The problem is, lots of things "work". If you need to travel from one side of Europe to the other, walking "works" fine. An Agile'ist would say "We didn't need any planning or complex equipment, we just set off walking! And we've established a velocity of 48 kms per day! We're well on the way!"

      I work on complex systems. Agile looks to me like an excuse for coding-happy cowboys who are missing the 'design' part of their brain to mess around happily refactoring the system until the cows come home.

      I see no reason why skipping design, as Agile advocates, in favour of trying to refactor a system into conceptual integrity, will result in a better outcome.

      Therefore, to prove to me that Agile "works BETTER" than other approaches, you're going to need to show me a controlled experiment that's more complex than the silly university student experiment that Agile'ists tend to quote.

    4. Re:Agile works - My experience by codepunk · · Score: 1

      I am glad he brought up Six Sigma, my god I am happy to have bailed out of the Manufacturing Industry.

      --


      Got Code?
    5. Re:Agile works - My experience by turgid · · Score: 1

      An Agile'ist would say "We didn't need any planning or complex equipment, we just set off walking! And we've established a velocity of 48 kms per day! We're well on the way!"

      Wrong.

      "Agile" (of which Scrum is one tool) has several ways of planning and they are integral to the system.

      Starting with Scrum, you work from a product backlog, which has major product features as agreed between Marketing/Product Development and the Customer. They are in priority and urgency order.

      I've found that sprints of 2 weeks to be the optimal length. When I worked with 4 week sprints, things weren't tightly focused enough. The feedback loop was too long.

      So at the start of the sprint, you (the engineers) decide what features (from the product backlog) you are going to implement and you break this work down into stories and tasks that will take only a few hours each.

      Part of these stories and tasks will be "modelling" i.e. design work (we don't call it documentation - that term is reserved for retrospective design and behaviour analysis).

      All of the design and planning has to be planned in to the sprint as proper work. You don't try to slip it in under the radar as most PHBs would like (hey, I'm paying you to write code...) otherwise the system doesn't work.

      You can read about Agile design in "Applying UML and Patterns (An Introduction to Object-Oriented Analysis and Design and Iterative Development)" by Craig Larman.

      You don't have to agree with or believe everything, but it will give food for thought.

      I like Scrum/Agile/Lean because I get things done quicker, more accurately, more reliably and with better records of what I've learned than any other systems I used before (e.g. the crack-the-whip, discipline and long hours school of engineering and the anything-goes-it's-cool-man-testing-is-for-people-who-can't-write-code places).

      Test Driven Development is vital for being "Agile." It gives you confidence early that what you've done works, and it gives you the freedom to make large, quick changes to your code and to refactor as needed since you have tests in place to ensure that you haven't broken anything. It takes years of practice, but I find it very powerful. I often crank out 1000 lines of working C code in a day now. I used to struggle to do 50.

      Scrum is a feedback cycle that is intended to keep you pointing in the right direction. If you do it right, it works.

      If your managers are lazy, ignorant, unsupportive etc. it won't work, because they are part of the feedback loop and they have important responsibilities to enure that the right kind of information comes in, and that customers are kept informed of progress.

      If your managers are the old-fashioned, dictatorial, don't-trust-the-non-management-level-staff kind, you will struggle. When I started doing Scrum, I worked for one of those. It worked much better after she retired.

      As for your last point, I have no idea how you'd do a controlled experiment. I suppose the best you could do is a statistical study of tens of thousands of projects.

  38. Re:I love it when XP/scrum practictioners defend i by ATMAvatar · · Score: 5, Insightful

    Yes, no methodology is going to be a magic bullet that turns a loser team into a superstar team. Agile was never intended to do so.

    What agile processes attempt to address is the transient nature of requirements. Large, monolithic processes do not respond well in cases where the client doesn't know exactly what they want up front.

    The reality is that clients often times add things during the process, and just as often as not, they do not realize that what they said they wanted wasn't really what they wanted. Providing continuous feedback and re-adjustment helps to mitigate this problem.

    --
    "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
  39. Agile is mind control for programmers by ToasterTester · · Score: 1

    I work in a Agile shop, but lucky for me in DevOps. All the SCRUMs, Code Sprints, developer trying to play QA is just a way to be cheap and to the "Suits" with OCD be controlling. The last big product rollout they got all their constants to come in and create code sprints and try to whip everyone up. A week in all the developers were ticked off and burnt and told the "suits" can hit the targets with all time wasted on writing test cases and not code. So the drop the Agile crap and got the rollout done. Think the "suits" would learn, no development is back to Agile suckage. Where I'm at Agile is all about control and trying to make 60 seconds of every minute work.

  40. PMP Backlash by tomhath · · Score: 3, Interesting

    Anyone who has been forced to work with certified Project Management Professional project managers will understand why organizations have looked at agile. PMP is the worse of waterfall with a bunch of useless buzzwords. Agile breaks that cycle but does introduce some other problems.

    The biggest problem with developing software is that any non-trivial system takes time to deliver regardless of the methodology, You can take time to properly spec out and design a bridge over a river because it'll be good for 50 years. But the world of software changes so fast that any system is obsolescent by the time it's done, and if you spend a few months specing/designing it's time for a redesign before you even start writing the code.

    1. Re:PMP Backlash by urusan · · Score: 2

      The biggest problem with developing software is that any non-trivial system takes time to deliver regardless of the methodology, You can take time to properly spec out and design a bridge over a river because it'll be good for 50 years. But the world of software changes so fast that any system is obsolescent by the time it's done, and if you spend a few months specing/designing it's time for a redesign before you even start writing the code.

      This is true most of the time, but there are a few shockingly old systems in places where high reliability is required. They tend to show up as controllers for things that last a long time (like nuclear power plants or airplanes), in work environments with a highly conservative culture (hospitals), or in places where uptime trumps many other concerns (financial backend or power grid calculations). In these cases, it's critical to treat software similarly to building a bridge you expect to last 50+ years, because you really have no idea how long someone is going to keep using it (and anyway, you really don't want it to fail even if it is new).

      Of course, this kind of software represents a tiny percentage of all software. In most cases today, you're right. It certainly doesn't make sense to ensure that a new video game or office productivity feature is perfect if by cutting down on quality a bit we can get it to market faster. That said, you never know when your non-critical software might be used to make this kind of critical software. OSes and libraries are particularly likely to be pulled into such a project. Furthermore, the amount of critical software is likely to expand in the near future. A good example from the recent past is that back in the really olden days there weren't computers small, light, and cheap enough to put into aircraft to control their flight, but nowadays fly-by-wire is common. There aren't any 50 year old fly-by-wire aircraft because the first ones were built 40 years ago. How long will some people hold on to their early model self-driving cars? As computers become more cheap and ubiquitous, these issues will become more widespread.

      Durability and reliability requirements are important to consider early in any project, and different answers will lead to the need for totally different approaches to developing the software.

    2. Re:PMP Backlash by N8F8 · · Score: 1

      I'm both a PMP certified and a ScrumMaster and it's really annoying when advocates of one system attack the other out of misunderstanding. Agile isn't "anti-management and anti-process" and PMP isn't uber rigid. PMP did evolve from a construction mindset but should be tailored for other areas like software dev. The real problem is people turning process into a religion. There aren't hard-and-fast laws. They are guidelines Use what makes sense and tailor the rest to work for you. You want repeat-ability in your work process for many of the same reasons you want repeat-ability in your code.

      --
      "God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
  41. CCP games really likes it by emagery · · Score: 1

    The developers of EVE online adore agile and have noted a dramatic uptick in productivity, reliability, and content delivery since adopting it... and even went so far as to do a presentation about the whole thing. So I guess it CAN work... it just doesn't necessarily work by default

    1. Re:CCP games really likes it by gweihir · · Score: 1

      If you have really good developers that do all the planning, structuring and documenting on their own, then Agile can remove problems caused by dysfunctional processes. It can never turn bad developers into good ones.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    2. Re:CCP games really likes it by emagery · · Score: 1

      I've no basis for arguing with that =3

    3. Re:CCP games really likes it by Pembers · · Score: 1

      Agreed. (Posting to undo a moderation that I fat-fingered - sorry!)

  42. Agile vs. Agile-speak by DaveAtFraud · · Score: 1

    I have yet to see a development group that says they are doing some form of agile development that actually implements the claimed methodology. What I have seen is full implementation of "agilr-speak" where agile terminology is applied to what is esentially just yet another death march development effort. Re-writes become refactorings and milestones become sprints but only the terminology changes. I don't see this as something the developers do so much as something management does since it's a way to supposedly get all three of "good, fast, cheap" without actually defining a product goal, creating a realistic project schedule and then staffing the project with enough people to accomplish the effort.

    Although I have yet to actually see such a development effort, my guess is that agile really works when correctly implemented. Several other commenters say they have been part of successful agile development efforts. I've just never actually seen it done.

    Cheers,
    Dave

    --
    They that can give up essential liberty to obtain a little temporary safety deserve neither safety nor liberty.
    Ben
  43. Agile VS Traditional by Anonymous Coward · · Score: 0

    I am a game developer who has worked for years doing Agile and non-Agile projects. From my experience, when done correctly Agile projects go much smoother and produce a higher quality product. They may not have the amount of features, but the overall product is better, the team moral is better, and the client is usually happier. The problem with traditional development is that in many cases scope, timeline, and resources are fixed. This is a recipe for disaster because based on the cone of uncertainty (http://en.wikipedia.org/wiki/Cone_of_Uncertainty), the original estimate could be off by as much as 100% and trying to cram the work into an unrealistic schedule forces developers to cut corners and not create a solid framework. This in turn creates more bugs and the project tends to take longer than if quality (rather than quantity) was the focus from the beginning. I have seen well functioning Agile teams. In fact, the art director in my last Agile team said that that team was the most efficient he had ever been on (he had worked with something like 27 other non-Agile teams prior). I think many people have been on poorly implemented Agile teams and therefore get a bad impression of Agile. Some of these poor implementations include very long daily stand-ups (they shouldn't take more than 15 min), zero documentation (you should do as much documentation as is needed), trying to force developers to complete every task in a sprint (team velocity should be calculated not dictated), poor negotiation of scope by management (scope should be adjusted based on the product burn-down chart), and forced overtime for more than two weeks (The average person will be less productive working long hours after two weeks than they would at a continuous 40 hours per week. The number 40 is not arbitrary. Based on multiple studies, it is produces the highest productivity for the average person. Management doesn't usually take this into account because it's hard for them to track the time it takes to fix the bugs that long hours tend to generate). If you just look at the amount of features that get completed, then yes traditional will probably look better in a study, but these studies don't take into account the time it takes to train new developers as a result of others that have quit because of poor process and they don't take into account the true quality of the product.

  44. Makes sense to me by gweihir · · Score: 1

    While initially, Agile may actually deliver a working prototype faster if you are are lucky, this prototype will be all you get, because the system will be unmaintainable and non-scalable. It will also be unreliable and insecure. If that fits your needs, fine. If not, there is no replacement for a classical approach and, more important, for competent, motivated and experienced engineers to architect, design and implement it. Unfortunately, these competent engineers are quite scarce and quite expensive. But they cannot be replaced under any circumstances. Business people often try to compensate with processes, but while that may work in the area of business (I doubt it), it is unsuitable to any technological area requiring genuine understanding and skills.

    My take is that basically Agile in practice is people trying to make do with incompetent developers instead of telling management that the people available do not cut it and that competing for talent and experience (which drives cost up massively) is the only way that will cut it. Somehow business people still fail to see the blatantly obvious: Good engineers are essential to any technological undertaking and these engineers are far more important than anybody from the business side.

    The founders of the agile movement seem pretty blameless though. They already knew this. After all, "People over processes" (the "including agile processes is implied") is at the top of their list. And good people will plan, document, structure well, regardless of the processes they are working with. Bad people will always be bad people, regardless of processes, management, border conditions, etc.

     

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:Makes sense to me by foniksonik · · Score: 1

      If you need secure modular code and that adds business value then it should be a story for the backlog. If it does not add business value then it should not be on the backlog. If you skip it and then realize it adds value then it goes on the backlog but in the next sprint.

      It's really not that hard. Agile also means continuous improvement and that means the project is never done (though it may be put away for a few months). The backlog will keep growing with new refinements, enhancements, refactoring, bug fixes, etc. when you have enough work on the backlog (that isn't a blocking issue hotfox candidate) you begin planning a release, review the backlog, etc and start sprints.

      If its a project with a hard stop eg a contracted project then these topics need to be assessed and decided upon early (do they add value to the deliverable). If not then that is the client's decision.

      --
      A fool throws a stone into a well and a thousand sages can not remove it.
    2. Re:Makes sense to me by gweihir · · Score: 1

      That sounds just like nonsense-babble to me. I know, it is agile-speak, but still...

      I bet the business people, i.e. those without a clue how good software is created, do love it though.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  45. Designed to sell services? by Anonymous Coward · · Score: 0

    TFA greeted me with "Close this Advertisement", and so I did: I closed the tab.

  46. Pilot/copilot anyone? by Anonymous Coward · · Score: 0

    I have 25 years of development experience. agree with the headline completely; Agile is a "methodology" that pampers developers. It basically codifies chaos. I've been pretty happy with the classic Waterfall (with 4-to-10-month release cycles).

    At the same, I have rarely seen planning and design documentation that is really useful for maintenance and tech transfer. Almost without fail, they are process-induced write-only documents that lose their relevance a few days into the project. At best, they are internal sales brochures that create an impression on the feasibility of the project even if ultimately a completely different design is implemented. Unfortunately, there never seems to be motivation to document the actual design after the release for maintenance.

    What intrigues me is the pilot-copilot model proposed by the Mythical Man Month: a 10-member core team with one coder (the pilot) and a spare coder (the copilot) in case the pilot dies or quits plus eight bureaucrats to make it possible for the pilot to concentrate on his job. I believe that model would work really well, but I haven't ever seen it in practice. Does anybody else have experiences with it?

    1. Re:Pilot/copilot anyone? by mattpalmer1086 · · Score: 1

      Agile doesn't pamper developers, and it doesn't codify chaos. It's about getting a good quality product built in the face of uncertain requirements and change. In that sort of environment, treating change as an enemy to be resisted is a sure way to build something that no-one really wants or likes, but fulfils the letter of some requirements document agreed way back when. It's not a panacea, but it can work very well. You still need good people.

      It makes partners of the stakeholders. It's very lightweight and done well helps to create a cooperative and respectful environment to work in. It's not appropriate for everything. It doesn't solve all development problems. It has very little to say about actual project management, or how to interface itself with project management. It doesn't really say much about how you get your requirements in the first place.

  47. I've got a mixed opinion of Agile by NotSoHeavyD3 · · Score: 2

    Since we did that officially at one place we worked.(Agile/Scrum to be specific) So I've ranted before how I think the second dogma is just wrong. (You don't need to encourage developers to not document, they'll do that quite happily.) There are other issues however. So for one we had an issue where our "Scrum Master" basically just took over the group and started having us report to him, giving us tasks, etc. We did complain to management but they did the whole "You're doing Agile, you manage yourselves, work it out for yourselves." Then of course there's this whole agile thing that you have to produce software every day that shows visible changes. The problem that those of us in dev have with that are 2 fold. For one depending on what you're working on it might be weeks before you can shows anything that works at all. Also some bug fixes arn't really visible. (For example I fixed a race condition that in production only happened once every 6 months. It took QA and myself basically a week to write up a "test" to get this accepted since Agile is "Visiblity-Crazy") Actually more recently i was doing agile which would have been nice since the product manager could tell me how it's supposed to work. The problem? He didn't actually know how the product is supposed to work (I mean basic functionality) so I'd work on it and put some functionality and then we'd find out oh wait, nobody asked for that and nobody wanted it.(Which was annoying since I kind of mentioned I didn't think it'd be that useful.) Of course the big bad thing about agile is since you work daily with the product manager(who is simply my manager in this case) it ends up just being an excuse to micromanage me. (So that's twice I ended up getting micromanaged under Agile.)

    --
    Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
  48. This just in! by SuperMog2002 · · Score: 1

    This just in! Agile works great for some people on some projects, and doesn't for other people on other projects! News at 11!

    --
    Sunwalker Dezco for Warchief in 2016
  49. Took the words by Giant+Electronic+Bra · · Score: 5, Informative

    Right out of my mouth. You're NOT DOING AGILE if you have to integrate components at the end.

    Also, the idea is not "we can just recode everything at the end", the idea is "only code now what you need right now", so yes, you will refactor, but that refactoring is an ongoing part of the process that is informed by 2 things, continuous integration and user acceptance testing.

    IMHO one of the MAIN reasons why people will fail with Agile is that they ignore the requirement to have the customer/stake-holders right there in the process. If you actually PAY ATTENTION to the things that Agile is telling you to do (personally I find XP type process to be the most effective) then you can make it work. Everyone needs to understand the value of the parts, and as any Agile expert will tell you ALL the pieces are important. It is not at all interesting news for someone to tell me that if you fuck up and ignore half the pieces of the process that the other half don't magically just work.

    No one development methodology is a panacea of course, but this report seems to be meaningless criticism based on not actually understanding how and why to use Agile.

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    1. Re:Took the words by Anonymous Coward · · Score: 0

      Agile is that they ignore the requirement to have the customer/stake-holders right there in the process.

      As a customer, I do not want to be part of your process, I am paying for the product I have asked you to build. My time is valuable. We have had a few development firms pull this agile shit on us. We told them no thank you. Please do what we have asked you to do and what we are paying you for. Customers who get roped into participating in your problem solving process are just that, roped in. We are paying you to solve problems. If I need to help you I expect a discount.

    2. Re:Took the words by JonySuede · · Score: 1

      Right out of my mouth. You're NOT DOING AGILE if you have to integrate components at the end.

      Amen!

      Developers need continuous integration everywhere so that not one of them will want anything to do with extreme, agile, small-pox, waterfall or whatever.

      When nightlies are build nightly, when code is statically analyzed on commit, when the staging system is restaged when a release branches is patched, when deploying an application from staging to production requires only one command and a dev regularly meet with the client to ensure that the delta between what you are to building and what the client needs is not too big. The only methodology you will ever need is from Prog Mofo:

      Programming, Motherfucker
      Do you speak it?

      --
      Jehovah be praised, Oracle was not selected
    3. Re:Took the words by turbidostato · · Score: 1

      "You're NOT DOING AGILE if you have to integrate components at the end [...] Also, the idea is not "we can just recode everything at the end", the idea is "only code now what you need right now"

      OK. When did the customer asked you to add a jenkins deployment to the backlog? When, exactly, that jenkins was a must the customer accepted?

    4. Re:Took the words by Anonymous Coward · · Score: 0

      Exactly right. "Agile" is designed for in-house products or long-term development efforts. It does not map well onto a fixed-time/fixed-bid project.

    5. Re:Took the words by dvice_null · · Score: 1

      > I am paying for the product I have asked you to build.

      Wouldn't you rather want to see what you are going to get and change it, before you get what you didn't want?

      http://johngushue.typepad.com/.a/6a00d83451f25369e20120a513810c970b-pi

    6. Re:Took the words by greg1104 · · Score: 1

      So you think you're the one guy in the world who writes useful, accurate, and complete software specifications without writing the code itself first? It's cool that you're so awesome. I'm actually Batman, I just write comments under this account name. We should hang out.

    7. Re:Took the words by greg1104 · · Score: 5, Insightful

      I don't think the report is even addressing whether Agile *can* be used effectively nor not. Its scope seems to be whether it *is* being effective or not for companies, and the answer they present is that it isn't. Whether or not there is a One True Agile that really does work isn't the point; that doesn't matter if people can't figure out how to adopt the approach for their own work (or with consulting help in implementing process, which is also being commented on). You can't prove a software development approach works by presenting examples of it working; the amount of variation among development teams means you could have just been working with a good one. The reason companies try to adopt methologies is to try and get useful work out of *any* development team. A really good software process should work as a filter, only letting things of good quality through as output.

      Now, I would turn that conversation not toward Agile--it's no better or worse than the alternatives--and instead ask "is there any process that gets good software even from bad developers?" That's what managers want, and every new softtware development approach that comes along includes some people who claim such magic exists in the process that this will happen. The alternative--accepting there is no silver bullet and focusing on how to get good developers working productively instead--that idea is just fundamentally repugnant to many businesses.

    8. Re:Took the words by Giant+Electronic+Bra · · Score: 1

      Why would a Jenkins deployment be in the backlog? If you don't have a CI system, or can't put one together as part of your tooling, what makes you think you're qualified to be doing software development on anything but the smallest scale? Would you hire a plumber if he put a line item on his project estimate "buy tool box"???

      The point stands, you don't do Agile by doing big-bang integration at the end. Clearly on a daily check-in basis you can have integration problems, just routine. You should always be no more than a day ahead of the last time you ran a full set of integration tests. If you're not doing that you're wasting time and money. The poster who talked about his problems with integrating at the end was thus AFAICT not doing Agile and thus his complaints about Agile are irrelevant. If he doesn't have a CI tool he's not even a professional at any level where talking about engineering process is meaningful.

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    9. Re:Took the words by _xeno_ · · Score: 2

      IMHO one of the MAIN reasons why people will fail with Agile is that they ignore the requirement to have the customer/stake-holders right there in the process.

      That reminds me of an "Agile" project I was on. The top-level project leader declared we were going to do Agile.

      He then refused to answer requests for clarification on design requirements and refused to allow any of the developers to talk to the actual users, insisting that all user communication go through him. (While refusing to actually pass on questions to users or, really, answer any question we asked.)

      So we had a continuous integration system updating the demo system with every commit - a demo that no one ever used. But, hey, if anyone ever checked in a commit that failed to compile, we knew that at least.

      In the end, the system didn't quite do whatever it was it was supposed to do. Imagine that.

      --
      You are in a maze of twisty little relative jumps, all alike.
    10. Re:Took the words by Giant+Electronic+Bra · · Score: 2

      I think the thing is that really good crackerjack developers are hard to keep around. There's very high demand and high prices. Many businesses cannot or will not pay what they need to pay to get them, and in fact a lot of businesses really aren't doing something sexy enough that someone who could work on cutting edge stuff is going to stick with, at least not unless they're handled quite well.

      So, yeah, most teams are going to be made up of some mix of good, bad, and ugly. I agree that there's no silver bullet, etc. The thing is lots of places just don't have the choice of "get good developers working productively" because they might have one or two good developers and ten bad/ugly ones. You need to bring those up to usable status. Frankly my answer is get in a good process consultant, but it is also pretty hard to find one of those... lol.

      Frankly software and humans don't mix well. I think we'll have bad software until we invent some AI to write it for us (but that AI will be bad human-written software...). lol. Best you can do is if something is REALLY important, like flight control software (or for instance the self-destruct device for a large commercial booster, which I once wrote some of the firmware for) then you can get pretty decent quality, but it is hugely expensive. That box had about 6k lines of code in it and the software cost was well into the millions...

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    11. Re:Took the words by Anonymous Coward · · Score: 0

      I think the point is that many outsource dev shops think that the can substitute a bunch of Agile mumbo-jumbo for a proper requirements process. This has become a huge marketing technique because it turns scope into essentially an amorphous blank-check. We use some agile techniques internally, but when we outsource work, it's fixed.

    12. Re:Took the words by turbidostato · · Score: 1

      "Why would a Jenkins deployment be in the backlog?"

      Because it takes effort and thus it should be priorized just like anything else.

      "If you don't have a CI system, or can't put one together as part of your tooling, what makes you think you're qualified to be doing software development on anything but the smallest scale"

      But still I've been already hired by the customer, or else there wouldn't be backlog at all.

      "Would you hire a plumber if he put a line item on his project estimate "buy tool box"???"

      You do it everyday: "hey, wait a second, I have to go to my office to bring tool X or replacement part Y".

      "The point stands, you don't do Agile by doing big-bang integration at the end"

      Neither Turing nor Von Neumann developed Jenkins (as an example for any other CI tool over there). You can do iterative integration as you go by hand, and in fact, that's been the case for the most part of the history of computing, it only takes time, which is money. You can install and configure a tool-base CI system, it only takes time, which is money. Your customer might not hire a group that doesn't have the proper tooling already in place, or they might do it. In the latter case, I should ask again "When did the customer asked you to add a jenkins deployment to the backlog?"

      "If you're not doing that you're wasting time and money."

      Wrong. On one hand, it is arguable that in any and all cases the trade off is positive. In the other hand and in any case, it is not "wasting time and money" but "wasting the customer's time and money" which he should be absolutely free to choose how and priorize in what he wastes it.

      "If he doesn't have a CI tool he's not even a professional"

      You know, that's not even something said in the developer's world, but you can hear it in any other professional field: "if you don't have/do X, then you are not a professional". They forget that being a professional is not about the tooling but about the knowledge and the commitment.

    13. Re:Took the words by Anonymous Coward · · Score: 0

      "IMHO one of the MAIN reasons why people will fail with Agile is that they ignore the requirement to have the customer/stake-holders right there in the process."

      Ever worked on a project where the customers refused to be involved, or refused to think clearly and logically about what they wanted?

      Of course you have. Many times.

      Those situations, with those sorts of customers, is where XP is gonna fail.

      As will any other methodology.

    14. Re:Took the words by Anonymous Coward · · Score: 0

      How do you know that i am so unsure of what i want and that i wish to make changes?
      The thing is, if you dont deliver to what is defined by contract you dont get paid, or in the worst case you end up in court. simple contract law. So we better both be sure you know what you are building when you offer me a price.

    15. Re:Took the words by Giant+Electronic+Bra · · Score: 1

      I don't know what you're trying to get at. If someone wants me to come in and set up a development team for whatever reason, then establishing a CI process is part of that and thus I might bill someone for that. However, setting up a CI process is not part of a specific project, in general. I might bill this kind of thing under G&A of a project. It won't be in the backlog of the project. Neither will doing CI because that's just something you do in the normal course. You don't put "set up text editor" in your backlog either.

      And yes, you might NOT use a CI tool, or at least your process might not be quite in those terms. For instance the process we use internally for product development uses our own custom build tool We do use it for CI, but it happens in a more organic way, there's no specific tool that is the CI tool. The build tool we use can accomplish the things that CI requires, and has other functions as well. I'd say this is typical, there's no one mapping of process to tool that is universal.

      Knowledge and commitment are wonderful things, and without tools and process they mean nothing. Clearly at some point tools and process have to be established. I just don't see what point you are trying to make by asking where it shows up on a project plan. IMHO by the time you get to doing the project you better already have that stuff done.

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    16. Re:Took the words by Anonymous Coward · · Score: 0

      The main problem is that most teams think they are being agile, when in reality they aren't. They think agile means fast. They think that agile means no rules. Agile rapidly turns into anarchy. They ignore the principles, and they throw out good practice due to feature delivery pressures.

    17. Re:Took the words by ameoba · · Score: 1

      The irony is that the people who will read this report today, more than a decade after the rest of the community started discussing the ideas, are so organizationally mired in heavyweight processes & resistant to change that they are the very ones that would benefit the most from agile practices.

      --
      my sig's at the bottom of the page.
    18. Re:Took the words by thaig · · Score: 1

      Good luck with that approach. You'd better be doing things that are very simple. It's quite common experience that people often don't know the details of what they want or that they want things that can't be done the way they expect and in such cases an inflexible contract will force you to be the loser. Agile methods will help the team meet your spec precisely (whether you like it or not) or decide to simply pay the penalty to get out and spend their time on something achievable. Either way, you're not in the buisiness of making money out of failed contracts so you lose.

      --
      This is all just my personal opinion.
    19. Re:Took the words by turgid · · Score: 1

      Sounds like some PHB didn't like the sound of Agile and decided to prove that it "doesn't work" by setting up a project to fail.

    20. Re:Took the words by Anonymous Coward · · Score: 0

      It is because I take that approach I am able to offer businesses the chance to win contracts, and take home my money. I don't do that by not knowing what I am doing and asking companies to guide me. When I ask a construction firm to build a 10 storey office block they do not build first a closet in a 1 week sprint and then ask me how I would like to extend it next week. We sort out a construction plan with architects, once it is finalized we submit plans to government for approval. Once we have approval only then do we start with construction in a single sprint from beginning to end. I want to know what I am getting before I start. It is my money, you play my rules if you want it. And trust me I have seen companies bend to get it.

    21. Re:Took the words by rioki · · Score: 1

      I don't know where I read it, but I once read a great quote going something along the lines of:

      Process is not for great developers. Great developers can create great software no matter what the process is. Process is there to get mediocre results from mediocre to bad developers.

      Agile projects fail with the same reasons why waterfall projects failed. Bad developers, bad management and bad clients. We are seeing the same arguments like we saw with waterfall, they are all skirting the real issue: quality developers, quality management and helpful clients.

    22. Re:Took the words by Giant+Electronic+Bra · · Score: 1

      Sure, so the question is what process generally gives the overall best results for the people that are actually out there needing to get stuff done. We can all wish for hot shot developers and dream clients, but we won't get them.

      IMHO Agile projects fail less, fail less dramatically, and carry lower risk than waterfall projects. They also can, if used properly, foster good habits, learning, and development. You may not be able to hire the best developers all the time, but if you can make the bad ones acceptable and the decent ones 90% as good as the natural at what you need them to do, then you're ahead of the curve and you'll beat the competition.

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
  50. Not just SCRUM by Anonymous Coward · · Score: 0

    Extreme Programming is in itself a form of Agile development (cf wikipedia). SCRUM isn't the only thing people mean when they say Agile.

    1. Re:Not just SCRUM by turbidostato · · Score: 1

      "Extreme Programming is in itself a form of Agile development (cf wikipedia). SCRUM isn't the only thing people mean when they say Agile."

      The problem here is that "agile"'s definition has shifted and, in this case, for very good and sensible reasons: XP is for developers and developers only. The customer has shit to say about programming in pairs, code review or the sursum corda because all a customer is (and should be) interested in is the output.

      More mature definitions of "agile" understand this and add the customer as an integral and unavoidable part of the equation in that you can't have "agile" if all what your process can add is going fast and convincingly to a place nobody is interested in being at. Scrum belongs to that second wave that takes that into account.

    2. Re:Not just SCRUM by julesh · · Score: 1

      Err.. XP has had On-site Customer as part of its method from the very beginning. And the Whole Team practice, which means the customer should be involved in all decisions.

    3. Re:Not just SCRUM by turbidostato · · Score: 1

      "XP has had On-site Customer as part of its method from the very beginning."

      Then I stand corrected. Thanks, sir.

  51. Agile Manifesto by rockmuelle · · Score: 2

    In reading the comments, it's clear that many people don't know the roots of agile software development. In short, agile (note the lower case) development is basically a set of of principles laid out by a group of very talented developers in the late nineties in their agile manifesto:

    http://agilemanifesto.org/

    Note that the manifesto makes no mention of Extreme Programming, Scrum, or any of the other capital-A Agile methods. Instead, it focuses on observations about what made their software projects successful. Itpecifically doesn't prescribe any specific methodology, but rather encourages communication, iteration, and excellence in design and engineering. The last two points come from this section of the manifesto:

    "Continuous attention to technical excellence
    and good design enhances agility."

    The manifesto very much allows for, and even encourages, design. It also assumes that the practitioners are already experienced developers who know how do design software and know how much design is needed before coding. Unfortunately, the most Agile methods traded experience for certified training and the 'technical excellence' portion was lost.

    I've worked with many talented teams and have seen agile work time and again. Of course, all of those projects did have design, documentation, and tests. But, all those artifacts were developed using the same principles in the manifesto.

    -Chris

    1. Re:Agile Manifesto by loneDreamer · · Score: 1

      I think you nailed it. It is curious to look at a whole discussion over process and "Agile services including certification and training" when the idea is to keep in mind a set of guidelines promoting better adaptation, and, especially, "Individuals and interactions over processes and tools".

    2. Re:Agile Manifesto by shutdown+-p+now · · Score: 1

      The reason why people rant at capital-A "Agile" methods is because that's what expensive consultants sell to managers, and that's what many developers end up encountering at work.

    3. Re:Agile Manifesto by Ensign+Nemo · · Score: 1

      Wow, that site is the granddaddy of buzzword bingo. Created for PHBs by PHBs.

    4. Re:Agile Manifesto by Anonymous Coward · · Score: 0

      the roots of agile come from deming.

    5. Re:Agile Manifesto by Anonymous Coward · · Score: 0

      In reading the comments, it's clear that many people don't know the roots of agile software development. In short, agile (note the lower case) development is basically a set of of principles laid out by a group of very talented developers in the late nineties in their agile manifesto:

      http://agilemanifesto.org/

      Note that the manifesto makes no mention of Extreme Programming, Scrum, or any of the other capital-A Agile methods. Instead, it focuses on observations about what made their software projects successful. Itpecifically doesn't prescribe any specific methodology, but rather encourages communication, iteration, and excellence in design and engineering. The last two points come from this section of the manifesto:

      "Continuous attention to technical excellence
      and good design enhances agility."

      The manifesto very much allows for, and even encourages, design. It also assumes that the practitioners are already experienced developers who know how do design software and know how much design is needed before coding. Unfortunately, the most Agile methods traded experience for certified training and the 'technical excellence' portion was lost.

      I've worked with many talented teams and have seen agile work time and again. Of course, all of those projects did have design, documentation, and tests. But, all those artifacts were developed using the same principles in the manifesto.

      -Chris

      Well said. People like to talk about SCRUM and whatever else but don't want to discuss the core it's built off. It all comes down to:

      do the right amount of analysis up front to have a true understanding of the problem you're trying to solve with said project
      make sure you have talented individuals who also were part of looking at and understanding the problem
      start with a high level design of the overall "system"
      divide and conquer in an iterative fashion
      review ever few days, weeks, months, whatever is appropriate for the parts/project
      keep to at least basic standards and adjust them as needed

      And continually adjust as needed with always your eye on the real Problem you are trying to solve through interaction with clients

      That's it! I've done many projects this way. Either being a member or leading and have never had issues. We've always delivered on a proper solution that we can then extend and tweak as business needs also change over time

  52. ooo this makes me so mad by Anonymous Coward · · Score: 0

    .. that I am not even going to RTFA. *Developer* rebellion? Not a SINGLE dev I have ever met asked for Agile., it was is the PHBs who wanted to micromanage yet push more responsibility on the devs that adopted this. At our company we pushed back to get a formal design phase tacked on prior to the mandated sprint schedule so Marketing et al would have to commit to a feature set and product UI flow, otherwise all the onus was on us to read their minds.

    As a dev, Agile makes life harder since we always feel pressure to give story point estimates that are under 5 days, as Agile says everything should be incremental work which is BS when you must maintain legacy code that has tight coupling and poor documentation, or write a whole new product that hasn't been given enough up-front design work to identify all components.

    Seriously the entire concept that this is "lazy devs" is just brilliant flamebait.

  53. News flash by Anonymous Coward · · Score: 0

    "Survey participants report that developers use the guise of Agile to avoid planning and to avoid creating documentation required for future maintenance"

    Agile can't turn shitty developers into good developers.

    Nowhere in anything I've read or seen about agile have I seen it said that planning and documentation wasn't necessary.

  54. Re:I love it when XP/scrum practictioners defend i by Ryanrule · · Score: 1

    Then you stay in design until they DO know what they want.

  55. So? by Anonymous Coward · · Score: 0

    This is news?

  56. Some Truth in this... by Anonymous Coward · · Score: 0

    As a dev/dev lead/project manager over the past twenty years, I have found the sweet spot to be small-incremental deliveries instead of big-bang at the end of the project lifecycle to be a good thing.

    This is the part of Agile that works, break down a big thing into smaller things, better understand those smaller things, deliver them, and work on the next work, keeping an eye on things with the client to ensure todays's need is the same as was anticipated, or if a small change in direction and focus is needed along the way to keep the project relevant.

    The rest of the Agile mantra, kanban, pair-programming, xp, stand-ups, all the endless meetings, is complete and utter bollocks by those who basically want to sell their books and consulting services as "agile experts" into organisations who are dumb enough to pay for it.

    The more you formalise things, the more process you add, the more likely you are to spend time on the process, rather then the end deliverable.
    I am sure the client appreciates you shitcan, sorry, kanban board, but they would appreciate the time spent working with them on the end deliverable more.

  57. This finding does not match my experience by jjohn · · Score: 3, Informative

    Agile is not a product. It is a mindset. Each team needs to workout what that means for them. I have been in teams for two companies that used Agile methods heavily and it has worked out very well for business units (predictable deliveries), developers (predictable work hours) and customers (higher quality releases).

    I am positive Agile is not a silver bullet for every project. Software engineering is still a hard problem to generalize.

  58. Re:I love it when XP/scrum practictioners defend i by Anonymous Coward · · Score: 0

    Then you deliver it after one long year and it's not what they expected. Agile is just about that, frustration comes early, when it's manageable.

  59. No Panacea by dark12222000 · · Score: 1

    There is no magical developmental panacea. That being said, Agile is pretty good - for some things. It's great when you aren't sure where you are heading, when you're doing a prototype run, or when you are just building data on how interested in something people are. It's also useful for when you just need to build a small product.

    Agile isn't some amazing process which should replace everything. There is no one-size-fits-all development process. Everything has it's place, and Agile's place is in prototypes, rapid development, and exploratory designs.

  60. Re:I love it when XP/scrum practictioners defend i by Surt · · Score: 1

    Indeed. People who are selling agile as the solution to your incompetent team are ruining agile's reputation for the rest of us.

    --
    "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  61. You lucky bastard by SmallFurryCreature · · Score: 1

    I dream of such customers, usually when one is screaming "I NEEDED THAT YESTERDAY".

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  62. Firefighting also by Anonymous Coward · · Score: 0

    Either slog away at your backbone functionality as priority one with lessons learned being used to tweak it, or recognise that you're developing a prototype and use it to find out what the final product should really look like. In the latter case work on the assumption that version 1 will be hacked considerably and use developer-nouse to make it easy to adapt.

    There's nothing wrong with either of these methods but 'getting to the finish' and finding you need to make vital changes, or continuously releasing patches (especially if panic-driven) is bad.

    'Right first time' is the ideal programming method -- I use it all the time in my dreams. In my nightmares I'm forced to be fire-fighting.

  63. Re:I love it when XP/scrum practictioners defend i by h2oliu · · Score: 2

    That is nice in theory, but I have found all to often in practice, when people see what they ask for, they realize that they didn't really want that. When you have a multi-year process, requirements change (heck I've seen it in multi-week!). Even ignoring the issues of human nature which induce this type of event, there are so many external forces that can drive a change that being able to re-evaluate is key.

    My take on agile, and the "developer rebellion" is that developers got fed up with 18 different "Number 1" priorities, and wanted to force management to actually do their job and prioritize.

    --
    Ok, I give up, why you?
  64. Pretty much agree, agile isn't. by SmallFurryCreature · · Score: 2

    The whole issue is that agile isn't. Isn't what? AGILE! That word causes customers/managers to think flexible meaning "I don't have to plan anymore, I can get what I want, when I want it".

    In reality Agile is extremely rigid. There is nothing in the method to deal with issues that crop up NOW and have to be fixed YESTERDAY. Instead, the manager/customer now has to plan ahead for what he wants, get it approved for inclusion in a sprint and then wait for that sprint to be finished. That could take DAYS if not weeks!

    Not that a sprint itself has to take that long but before YOUR new wish is included in the next sprint might mean you have to wait your turn.

    Agile needs a lot of discipline and commitment across the entire production line, from customers to managers to developers. But if you got discipline and commitment, ANY methodology will work. And if you don't. None will.

    Dysfunctional companies are dysfunctional regardless of the label they put on their method for screwing up.

    Agile is particularly bad since it doesn't enforce any fixes. It is often introduced as the solution itself, go Agile and all the unrealistic planning and louse development and under staffing will just fix itself.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  65. Agile is to avoid understanding the problem space by Anonymous Coward · · Score: 0

    100% of the time I've come into a project, and said "where is the design sheet", or "where can I see documentation that someone has made that decision", or the kicker "what are the deliverables that I will get from you to start on this", the reply is "we're doing it agile", as the excuse they don't exist.

    Which means, the thought process, the design, understanding and brain mapping onto the problem space _HAS NOT TAKEN PLACE_.

    Read it again, as many times as it takes for it to sink in.

    That is the true agile scam. HOWEVER. "todo, doing, done" is a brilliant way to track tasks, and task management is the single most important thing you need to manage a project, after _ACTUALLY UNDERSTAND WHAT THE FUCK YOU HAVE TO DO_ (AUWTFYHTD), I'll be selling seats to a A8 conf this fall! $400 and an open bar, petition your project manager TODAY!

  66. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  67. Bull! by Murdoch5 · · Score: 1

    I hate seeing posts like this, Agile is not for lazy developers, in fact it's for developers who want to do what there name suggests, develop!. To the group who ran this study I would like to see the actual line out of the Agile guide that states "You can not plan", then show me "You can not write documentation". Some Agile developers will use Agile to skip doing documentation and planning but that's not the point of Agile. Agile is for the developer who can think on his feet and dance around in the ring, it's not for the developer who needs to sit down and draw out 50 pages of requirement before a key gets pressed.

    There are pro's and con's to both development methods. Some people can work better in an Agile environment and some can't, calling Agile out as a lazy development method just means you don't understand it, you just wanted to pick up the name because it sounds cool and cutting edge. Agile developers in fact get much more work down but at the cost of harder work. At the end of an Agile project you should end up with the same results, just quicker and in most cases a better final product.

    No where does Agile proclaim itself as the No Documentation king or the No Requirement king, it's lazy developers and lazy survey holders who give it that name, and in this case it's clear the surveyors had no idea what they were talking about.

  68. Re:I love it when XP/scrum practictioners defend i by pijokela · · Score: 1

    They learn what they really want when they see the working system that does want the first asked for. If you make them sit in meeting rooms writing power points they will never learn what they really want.

  69. WTF Is Agile? by Osgeld · · Score: 1

    Really? would it kill you to include a half sentence to give us an idea what your talking about?

    1. Re:WTF Is Agile? by Gimbal · · Score: 1

      Wikipedia has a brief, general description.

      One example of Agile approach is named Scrum. c.f Beginners Guide to Scrum - my referring t Scrum as an agile approach, considering that it's not, per se, a formal process model.

      Another example, which has perhaps been around for longer, is named Extreme Programming c.f Extreme Programming, at the Cunningham & Cunningham, Inc. Wiki

  70. The problem I see with Agile... by OrangeTide · · Score: 1

    Is it requires more discipline from people on the bottom (developers). But if they had discipline they would have been writing up detail plans and complete design documents up front, and delivering on time. The teams that are falling apart under waterfall are attracting the eye of managers that wish to experiment with Agile, but these same teams are usually the worse candidate for switching to Agile.

    --
    “Common sense is not so common.” — Voltaire
  71. Phew by Anonymous Coward · · Score: 0

    Agile or the CEO standing in front of 1/10 of the "team" asking "is it done?" "do you have it under control?". I was that 1/10 person before agile came. Now I can relax.

  72. Yes and no by elabs · · Score: 1

    I'm a big fan of Agile, just not the flavor my company uses. - You can't plan R&D - You can't schedule the next big discovery - You can't hold one person accountable to the estamtes of another person - A developer should be accountable for delivering stories and quality, not tasks

  73. Definition of Agile by Anonymous Coward · · Score: 1

    Agile is a software development methodology equivalent to declaring every mile of a marathon a "sprint", and instructing runners to attack each sprint with a pace typical of a 100 yard dash.

  74. Agile leads to sloppy requirement gathering. by Anonymous Coward · · Score: 0

    Agile keeps programmers busy and gives them billable time at work. But it also leads to business units not putting together a proper outline of application requirements. Clients pull shitty ideas out of there ass and hours are wasted on poorly concieved ideas.

  75. Those who do not know history... by Anonymous Coward · · Score: 0

    Few people realize that the waterfall method originally had feedback loops. But people (managers) being people, they took that little bit out. Agile is very often also implemented with things people want to leave out. Like with Waterfall, it is Agile's failure, not the peoples. No wait! It's the lazy devs fault! They tricked management into applying a broken process and then took advantage of it until their jobs are outsourced. Damn those lazy devs are so clever!

  76. Find and replace works pretty well! by sootman · · Score: 2

    sed s/Agile/Analyst

    'The Analyst movement is designed to sell services. ... Out of over 200 survey participants, we received only four detailed comments describing success with Analysts.' 'Survey participants report that developers use the guise of Analyst to avoid planning...'

    --
    Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
  77. Agile Is The Best Methodology To Date by Anonymous Coward · · Score: 1

    Now listen here, I've Project Managed enough projects and have extensive experience with the likes of Joomla, Hadoop in both Cowboyed and hourly code reviewed modes and Cloud Waterfalling to be able to tell you that Agile with Outsourced Multiplatform Development Methodologies will make your company more productive than it has ever been before. If you're en executive who is sick and tired of having no cred whatsoever, who feels the sting of the eyeball rolls from your firm's alabaster-pedestal engineering eggheads whenever you try to push them in new directions, and who hungers for the approval of the board, you need to hire yourself a hot personal Agile consultant right away. They're easy to find. He might tell you to do some crazy things like sell every other desktop PC, have the developers pair up, buy razor scooters for everyone, and get rid of all the chairs in the conference room, but just do as he says and the software will be filling up your 4GL Cloud 2.0 servers in no time. Do it, and nobody will even be thinking about your expense forms anymore.

  78. BBQ, sous vide, ... by Anonymous Coward · · Score: 0

    There are a lot of ways that going slower can allow you to use less expensive parts to produce a result that would otherwise have cost more.

  79. Did RTA. It doesn't sound too dismissive by Gimbal · · Score: 2

    "[...] Agile, which may not be appropriate for all organizations or projects"

    That's fair.

  80. Re:I love it when XP/scrum practictioners defend i by Anonymous Coward · · Score: 0

    They won't know what they want until they see something delivered and then realize that what they got wasn't as useful as they thought. The shorter your iterations, the sooner you can give them something that doesn't do what they need so they can realize what they actually need. Yes, good guidance can reduce the number of iterations but not the need for iterations. Big design-set-in-stone up-front is a recipe for disaster unless you are doing something that many people have done many times before like a compiler so that you can just read up on exactly how successful projects were already done - but then you aren't really doing big design up front because those other people already did many iterations on the design before it ever got to you.

  81. I was more agile before we started doing "agile". by Anonymous Coward · · Score: 0

    I used to develop a feature, then deploy it. Typical turnaround time from request to implementation: 1 hour. I pride myself to having the lowest defect rate of our team, and the lowest open ticket count, whilst maintaining the highest number of projects.

    Now that we're "agile", that has gone up to 2 weeks, at least. In all fairness, I think defect rates per feature may have dropped - slightly. However, the impact of any given defect has severely increased, because any defect is going to be around for at least 2 weeks now, instead of an hour after it's first reported. In other words, by doing "agile" the way we do, the impact of any defect has increased by a few orders of magnitude.

    Releases are much harder to do now. Instead of pushing out a release for 1 feature, we're combining a multitude of features in any given release now. Because of this, chances that things break after any given release, have increased (if there's a chance of 1% that any feature has a bug and you release 50 features at once, there's a 50/50 chance that you'll break things). In addition to increased bug rates per release and increased time to roll out the next release, it's also much harder to find a bug in code that was written weeks ago, than in code that was written an hour ago.

    I think we're just calling it agile. But I don't think it is agile. I think what we're doing is the opposite of agile, in the name of agile.

  82. Well by Anonymous Coward · · Score: 0

    ..if you want cheap custom software, better don't do it at all. Software development is horribly expensive and takes a lot of commitment from the "customer" to see it through development, bug fixing, QA, some crises and so on.
    Better set up some manual system (which can include Excel sheets) if you want something cheap.

  83. Can We PLEASE Stop Now ? by Anonymous Coward · · Score: 0

    Hitler did an Agile War ! Agile == Nazi. Stop this discussion right NOW !

    Yours

    Godwin

  84. mod-up parent by ansak · · Score: 1

    especially "...if you can't hold a developer for five years, then you have a morale problem that will cause pain..."

    never said a truer word. even difficult legacy code can be endured if the company has no systemic negative morale factors.

    cheers...ank

    --
    Still hoping for Gentle Treatment...
  85. wow slashdot is hopelessly out of date by Anonymous Coward · · Score: 0

    "just" revamped your lexicon - agile is like ten years old dude. it's the only way anyone does web services, which is where people make money these days. god you're out of touch.

  86. Except for dating it's by Anonymous Coward · · Score: 0

    Hot, Smart, Sane

    Pick any two.

  87. Re:Agile is to avoid understanding the problem spa by Anonymous Coward · · Score: 0

    People misunderstanding Agile and doing it wrong is no more the fault of the methodology than a drunk driver is the fault of the car. Nothing prevents you from documenting what you do.

  88. Scam? by matunos · · Score: 1

    Because Carnegie Mellon licensing CMM and taking in buttloads of dollars in CMM certifications wasnt a scam. If you reach CMM 5, you're free of software thetans.

    You don't need certification or outside training to practice Agile methods. There may be some helpful training services, but they should be about learning new ideas and figuring out how to apply them to your environment (and when not to), not reaching new levels of certification or decorating resumes.

    At the end of the day, a company needs to find the process that works for its developers. No process, off the shelf or otherwise, is going to make up for mediocrity or poor morale. Some places will work well with Scrum practices, some with Kanban, others with XP, and some with traditional Waterfall.

    If I had to pick a generic characteristic of a development team most likely to lead to success, it would be adaptability.

  89. Ah, yes, well said.

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
  90. Re:I love it when XP/scrum practictioners defend i by Anonymous Coward · · Score: 0

    Iterative software development, continuous integration, test driven development etc existed before all the Agile hoopla came around. The agile movement has simply repackaged it, added useless certifications and sold you as their "invention". Quite a few of these agile "experts" originated from the C3 software project that has miserably failed. (http://en.wikipedia.org/wiki/Chrysler_Comprehensive_Compensation_System) This is a good example of why Agile is a failure: don't count on methodologies, instead go to the basics, learn the underlying good practices (like iterative development) and apply them as tools in your toolbox as needed.

  91. Think about it this way by Giant+Electronic+Bra · · Score: 1

    Lets suppose you're a business and you want to build a manufacturing facility that will cost you say $500k. That's a pretty substantial investment. You're telling me you're just going to hand $500k to some GC and say "hey, build me an XYZ on this plot of land" and you expect to walk away and come back in 6 months and magically have something that exactly does what you want?

    No, you're going to supervise, and inspect, and you're going to work with the GC and the architect, and the people installing the machinery, and the power company, and all those other people. You simply CANNOT expect a complex project to succeed without that level of constant interaction, cross checking, making sure that when the utility entrance can't be on the west side because the power company will only put the substation on the east side that things still work out. It just doesn't happen by magic.

    If you think somehow that a software project isn't EVEN MORE this way than a conventional construction project then you're monumentally misinformed about how things work and frankly you should buy OTS software because anything beyond the most trivial projects WILL fail if you approach them this way. I've been doing this stuff for 30+ years, and I say this with the utmost certainty. In fact, since I have plenty of business from sensible customers, I wouldn't even do business with someone that demonstrated your attitude. You're not worth the trouble. You're a lawsuit or at least a broken project waiting to happen.

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    1. Re:Think about it this way by Anonymous Coward · · Score: 0

      Just because as a customer i pay and sign the agreement does not mean I project manage. But it is my name on that contract, so I expect all parties to comply, and so does the law. It is business 101.

      You don't have to worry about whether I am not worth the trouble, because with your process attitude of requiring me to constantly hold your hand, your business would not get past the first round of the tender.

  92. Here's what "agile" does that's useful by gestalt_n_pepper · · Score: 1

    You meet regularly to discuss the software features for the release. Everyone complains about the meeting time.
    You track progress on those software features during each meeting. The Agile head honcho complains about the progress and adjustments are made.
    You regularly change the feature based on feedback and the input of the designers, users and testers who complain about the lousy interface, performance or something else in the meetings.
    You know when you're finished with a feature because everyone stopped complaining about that feature.
    At some point, you know you've finished all the features because everyone has stopped complaining enough to bother you, and you're ready to release.

    That's it. The rest is details. Now pay me $999 for my consulting advice.

    --
    Please do not read this sig. Thank you.
  93. As we had it introduced to us by Anonymous Coward · · Score: 0

    As we had it introduced to us... agile is what we were already doing. Build something, let people try it out, get how they wanted it to change, rebuild to be closer to what they need, repeat.

    This is what we were already doing (but with less formality) as opposed to another corporate division that took months to produce ANYTHING with the waterfall method.

    The fact of the matter is, waterfall takes too long and the user is never satisfied, even if you give them EXACTLY what they asked for. The user doesn't know what they want, only what's the biggest annoyance at the moment. (This is a generalization, some users DO know exactly what they want, too many keep promising "this is the last change" dozens of times over.)

    There's no sense wasting huge amounts of time on what won't be the final version. The waterfall method is sold on the idea that once something is finished, that's the end of it. Anyone in programming knows that's bs.

    You WILL have iteration after iteration, the question is whether you'll have agile-style short iterations, or whether each iteration will comprise the entire waterfall process. The waterfall method is pushed by those being willfully blind to this reality. (Usually from ego, thinking they can say no, only to be overridden by the other department complaining to a VP to have you drop everything and work on the Nth rebuild of a system that already works NOW.)

  94. Woah there cowboy by EmperorOfCanada · · Score: 1

    I have found that almost without exception the type of person who is huge on over-managing a project is usually a Type A control freak that suffers physical pain when others are allowed to make any decision without running it by them. By far the best companies in the world give many of their employees a huge amount of freedom which allows the employees to thrive and the company to keep top notch employees. Most companies are the opposite and survive despite themselves being larded down with waste products for employees.

    Agile programming all comes down to costs and benefits. If you are building a billion dollar bridge much like the last billion dollar bridge with a tight timeline then plan plan plan as the few millions spent planning will probably reduce the number of billion dollar disasters. But if you are building an innovative million dollar software project which is basically bunch of smaller projects where fixing mistakes isn't costly then it is not only inefficient to over plan it but irrational as you can't actually plan research which is what most projects largely are.

    What you do is set goals and repeatedly check to see if all hands are rowing toward the goal. It is very easy to watch to see if a lazy git is rowing the other way. If so you toss him overboard and keep rowing. Not that hard really.

    Personally my favorite experience on an agile group project is when other programmers do something with such style and innovation that I am green with envy. This sort of behavior brings out the competitor in most people who try to meet the newly raised bar. This is an everyone wins scenario in that even the crap programmer will be encouraged to grow. Oh sorry this is an everyone wins except for the now redundant Project lead, project manager, lead architect, project manager, producer, or whatever the paper pushing position used to be called before he was let go. I am not saying that you have no management control over a project just not a more chiefs than indians situation with layer after layer of reporting structure. You basically have one or two programmers assigned to give fairly regular status reports to someone who is monitoring(not micromanaging) the project to make sure it doesn't go off course.

  95. Never understood agile by WaffleMonster · · Score: 2

    I never understood the benefit of Agile or why anyone would want to go there. If your working on boring small projects which only take time and a lot of typing to complete I guess Agile works. I could see this working with shops dedicated to small scale custom projects.

    For anything non-trivial you really need to invest in infustructure and design or you will end up with a patchwork of shit.

    Agile seeks to exert pressure away from thinking and design rewarding instead the brainless zombie which makes shit up as they go along. It also encourages use of more modern and exotic language features to cover for the underlying system being a piece of shit.

    A good development process will exert no artifical pressure detremental to the overall project lifecycle. Agile fails this test in a great number of domains.

    Laziness is actually a virtue the entire point should be to reward those doing the least with least amount of effort to get the job done.

    The catch is laziness must be evaluated in the context of the entire lifecycle of the system. Being lazy up front and having to work 10 times harder later as a result means you suck. Being lazy up front and having to hire more people just to support your POS when the complaints come filing in means you suck. Agile encourages people to suck in my not so particularly humble opinion.

    1. Re:Never understood agile by Anonymous Coward · · Score: 0

      I never understood the benefit of Agile or why anyone would want to go there. If your working on...

      I stopped reading there, you say you don't understand something and the very next sentence you demonstrate that you use incorrect grammar and don't seem to understand the difference between the use of YOUR and YOU'RE either. At this point, I have doubts you are informed/clever enough to have anything insightful to say, so I stopped reading.

      If you have something worth saying, then it's worth making sure you're saying it right, instead you made yourself look uneducated and ignorant.

  96. The question remains by Anonymous Coward · · Score: 0

    Is Agile web scale?

  97. biggest problem by cornface · · Score: 1

    Is that instead of encouraging increasing efficiency, agile encourages increasingly inflated estimates.

    There are certain types of projects where it makes sense, but they are few and far between.

  98. Agile Programming by Anarchduke · · Score: 2

    Personally, I dislike Agile Programming. Its sloppy. There is a place for it, such as if you need to rapidly develop an app that needs to work, but doesn't need to work well. Its programming in chaos. I prefer an ordered approach to application development.
    You need a working utlity as soon as possible to analyze, detect, or whatever you want it to do? Fine, use an Agile appoach. Just accept that what you produce is going to be buggy, and probably with shoddy documentation. Sure Agile can be handled in an orderly fashion, but then it loses the flexibility that makes it worthwhile.
    I prefer a slow and steady approach. Its not sexy, but I want my code done well, rather than quickly.

    --
    who prays for Satan? Who in 18 centuries has had the humanity to pray for the 1 sinner that needed it most? ~Mark Twain
    1. Re:Agile Programming by Anonymous Coward · · Score: 0

      If its sloppy, then its not Agile. Not the way I've learned it and done it for the last 14 years. Sloppy has no place in a well run Agile team. If one member of the team is being sloppy, its up to the team, or ... if necessary ... the team leader to correct the situation. If its the whole team, seek help. Find a good Agile practitioner (respected in the community, has a track record, etc.) and have them bring their clue stick in.

    2. Re:Agile Programming by ljw1001 · · Score: 1

      There's nothing in agile that makes the work inherently buggy. If anything, it should be less buggy; (documentation is another matter). Done right, agile minimizes schedule pressure so you should have the time to do the work you need.

  99. Re:slow and cheap by TaoPhoenix · · Score: 3, Interesting

    You're getting +Funnies, but it's a legit part of the equation.

    A thundering famous example is cargo shipping stuff from China. China, as we all know, is the poster country for Non-Expensive, and just to amuse the /. crowd, I'll use the example where a businessman lost $100,000 because his shipment of Justin Bieber dolls took too long to arrive and then they had a haircut that was no longer good.

    http://www.dailymail.co.uk/tvshowbiz/article-2046881/Justin-Bieber-haircut-cost-doll-company-100-000.html

    The other more harmless example is US Mail's Bulk Rate shipping.

    --
    My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
  100. Re: FY2015 is not a promised date by TaoPhoenix · · Score: 1

    Oh, I know this one, this was how Microsoft used to do Vaporware Marketing!

    --
    My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
  101. Purchase both Agile reports in this special bundle by Anonymous Coward · · Score: 0

    Purchase both Agile reports in this special bundle and save!

  102. I've heard the legends by chicago_scott · · Score: 2

    Some people say that Agile is awesome when fully implemented, but I've never seen that done. Or met anyone that seen that done. It's kind of like Big Foot.

  103. Agile can work, but only if done right by Anonymous Coward · · Score: 0

    Just like "release early, release often" Agile can work, but it has requirements.

    !st, it means that you are evolving your product, not creating something completely from scratch. both 'release early-release often' and 'agile' require that the product that you have at the start actually works, and do something useful for people, from there you can evolve your way to any destination.

    Linux is developed via agile methedologies. The 'sprints' are 3 months long and nobody can say before each cycle what features are going to land in that cycle.

    where Agile goes wrong is when you try to say that all development must be completed in one cycle, a cycle is when the prior development is being integrated and tested. You make sure that a long-term development project doesn't go in early, breaking other things and preventing anything from being tested until it works. Instead you don't integrate the long-term development feature until it's completed, or you break it down into steps and work introduce the steps separately.

    In Linux, this gradual, cycle based development has been able to make major changes over many releases that could never be completed from idea to finish in one cycle.

    the other major problem that commonly happens with Agile is that people are unwilling to say that some feature isn't ready yet and just remove it for this release, they make plans on what will be completed in this sprint and those features will be in the final result, even if they don't work right.

    Agile and proper DVCS usage go hand-in-hand, if you are trying to do Agile with CVS, Perforce, SVN, or any single-master version control workflow, you are not going to be successful. You need to have the features being developed independent from each other and only combine them when they are ready, and that takes using a DVCS with the correct workflow

    David Lang

  104. use the right tool by A+Pressbutton · · Score: 1

    This is the same sort of discussion you get with c++ vs php - the question is what is the job.
    basically it should be clear to all that if you design,code,test,doc,release,stop - that is the most efficient approach. say this takes an effort size 1
    the trouble is that what is released is probably not what is wanted.

    under agile effectively you take a small part of the job and design,code,test,doc,release,stop let the customer loose and then repeat.
    repeating this process n times for each 1/n th of the project takes more than effort size 1 as even if you never even look at any part of the code previously written, the tests you are adding and running will - and the whole point of agile is that you iterate toward the true requirement so you will be re-working.
    the trouble is that what is released at the end will cost more.

    please flame me for stating the obvious, but if you know what you are doing, and what is needed you should use something like waterfall and if you do not know what you are doing/is needed, use agile

  105. Glaring Problems with the Study by Slicker · · Score: 1

    Like most with experience in older SDLC (Software Development Life cycle) and newer Agile, my first thought off the headline was "What kind of idiot? What questions did they ask?". As I read on, several glaring problems with the "analysis" stood out.

    (1) I see no mention of comparisons with what other methodology? It's just a focused criticism of Agile, implying that other paradigms are far better. The truth is, the percentage of successful software development projects have always been terrible. It started out with something like 90% failure rates and has very slowly improved to this day. Furthermore, the metrics to measure success are apples and oranges. For SDLC, it's that requirements are met. For Agile, it's the same repeatedly until the product is acceptable. In practice, SDLC leads to marking off a checkbox for each requirement and test. Other problems to solve or improvement ideas to make are thrown by the wayside unless they were specified or contractually obligated. No software has ever been completed without the developers thinking, "We could have done it better like ..". Agile provides that opportunity. The quality is better not only in terms of more opportunity to make it better but also in that the customer flushes out all the issues that never would have come to mind otherwise, until it was too late. In other words, an SDLC "success" is a bunch of marked off features and test results on a usually crappy first generation but barely functional piece of work. In contrast, Agile "success" is a more thoroughly fleshed out understanding of the problem and a better fitted and all-round higher quality solution for what the customers wants/needs--not just his first inclination of what he imaged of the same.

    (1) They are engineering / cherry-picking to create support for their conclusions. Examples follow:

    (a) "Out of over 200 survey participants, we received only four detailed comments describing success with Agile." -- oh really? Just before that, they said 28% reported success with agile. For how many did they receive smiley faces at the end of detailed comments describing success with Agile? Zero?! Geez, then it was really a total flop!!
    (b) "Sixty-four percent (64%) of survey participants found the transition to Agile confusing, hard, or slow. Twenty-eight percent (28%) report success with Agile." Also from my own experience, the transition to agile was extremely hard. In fact, it's hard to get people to convert from Christianity to Islam, too (or vice-versa). That in no way addresses the effectiveness of Agile over SDLC/waterfall or anything else, as they strongly imply. It suggests that people do not like moving out of their comfort zones.. people like doing things they way they always have. It's typical human nature... and consequently, they resist and prejudices arise.
    (c) Ridiculous levels of outright subjective and judgmental prejudice to the exclusion of any proper measures.. and repeated in different examples of the same, rather than just tallying up the levels of negative personal feelings toward Agile.... I have to say, this sounds very much like a survey given only to managers--it's a typical manager point of view. These are just ignorant and arrogant personal insults. This is not professional at all. Examples follow:
    - Survey participants report that developers use the guise of Agile to avoid planning and to avoid creating documentation required for future maintenance.
    - We received some unprecedented scathing and shocking comments about the level of competence, professionalism, and attitudes of some members of the Agile movement.
    - Be aware that the Agile movement might very well just be either a developer rebellion against unwanted tasks and schedules or just an opportunity to sell Agile services including certification and training.

  106. I don't know all the details of the processes that are used in every place and claimed to be 'Agile', there's all types out there and some are idiots or shysters. At least when you interact with MY process there will be some meetings with the client. The exact details of the product of that can depend on the scope and degree of definition of the project. A client that has its own processes in place and has generated formal requirements is going to be easier to deal with. One that has an itch that has to be scratched and a general basic idea of what they need will require more interaction. Either way we're going to break things down into user stories, probably supplemented by additional material where complex requirements are involved. In ALL cases the customer is going to help decide what each iteration delivers. While many people may THINK they know exactly what they want, it is a surety that some details change, some things haven't been considered, and possibilities for improvements, simplifications, etc will come to light during the process.

    I mean, I've put software into space, on mission critical safety of flight level equipment. Even when working with Martin, Boeing, NASA, etc where they have comprehensive SDDs and SRDs written in highly formal language things are never 100% perfectly sorted out. You can have a 1000 page spec that goes into vast detail and will be translated into 6k lines of code, and even then there is ambiguity and need for interaction with the client. There's simply no such thing as cut and dried, ever.

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
  107. Re:Agile is to avoid understanding the problem spa by Anonymous Coward · · Score: 0

    +1

  108. 2 Types of "Agile" by Anonymous Coward · · Score: 0

    Agile as Written - Handed down from the ivory tower of all good development practices where the developers make the final agreement as to what will be accomplished during the sprint, where the last task in the sprint gets finished in the final minutes of the sprint

    Agile as "Implemented" - Where the backlog is never frozen, where the backlog is either half full and the developers sit around for the rest of the sprint or is overfilled and items get spilled to the top of the next backlog, where priorities are usurped on a daily (if not hourly) time period.

    Worked in a "Dating Model" where developers were tasked to individual project managers, also worked in the "Agile" where anybody could jump in and work any "task", also worked in the "Waterfall" model. I may be old fashioned in that once I start a project I like to finish or get to a reasonable stopping place before I switch gears.

  109. Old School Method by sycodon · · Score: 1

    The way I was taught is old school but has always served me much better that all these fancy new approaches...which are actually cherry picked and corrupted versions of parts of the old school...

    1. Walk in their shoes. How can you hope to provide a solution for their needs unless you really understand their needs...hint, their needs are usually only part of what they tell you.

    2. Know where they are going. You have to understand the direction the organization wants to go, because you have to build into your solution the flexibility to get there.

    3.Know your self. Don't promise what you can't deliver. Ten years ago, someone might have said having a "Siri" interface is what they want. Some things are not timeline and budget feasible.

    4.Live up to your title. Being an "Analyst" does not mean document what they are doing and automate it. Understand what they are doing and why (see #1) but then go the extra step and recognize ways to improve the business process, eliminate unnecessary steps, redirect resources to more productive goals.

    5.Analysts are developers and developers are analysts. Good people can do both jobs and can do them at the same time. Monkeys are for writing novels. Every question you have about what needs to be done should be accompanied by "why" it needs to be done.

    --
    When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
  110. Half-Arsed Agile Manifesto by TomsFingerKeys · · Score: 1

    My own experiences with Agile have been promising but flawed, and were best summed up here: http://www.halfarsedagilemanifesto.org/

  111. Agile consumes resources faster by Anonymous Coward · · Score: 0

    Waterfall is typically employed for critical - read well paying jobs.

    Typically 10 lines per day of low level code were assumed - with the following daily breakdown: 3.5 hours of meetings, 3 hours of thinking, 1/2 of coding.

    Typically waterfall is reserved for key elements where the cost of a mistake could potentially include loss of life, bankruptcy, and/or embarrassment.

    The rest are done in secret. Git'r done. Agile. Lean. skunkworks. I want it now (IWIN). Big boss wants it now (BB WIN). Original Outline process shortfall (OOPS). Call it what you will.

  112. Transition to Agile by Tony+Isaac · · Score: 1

    "Sixty-four percent (64%) of survey participants found the transition to Agile confusing, hard, or slow."

    Yes, no doubt. Once you've been indoctrinated with the principles of Waterfall development methodology, it's really hard to shift gears into Agile. Remember the first time you saw C++, after years of programming in C? That object-oriented approach was pretty mystifying. But if you stuck with it, you eventually learned the incredible power of classes and objects.

    Agile is just as different from Waterfall, just as hard to transition into, but just as rewarding for those who eventually get it.

  113. Re:I love it when XP/scrum practictioners defend i by Anonymous Coward · · Score: 0

    Consider a defensive system I worked on for the DoD. The requirements had been nailed down. The design was solid. We'd passed all the simulator tests and field trials. Just as we're about to go into production, a different service ran some tests. It turns out that while we were in final testing, a new system was deployed by "the other guys". The existence of that new system put our production contract at risk, not to mention ... lives. A year and a significant redesign later we were in production. The timing worked out well for us, but even more so for a lot of our troops that didn't get shot up.

    What did I take away from this? Requirements change without regard for your development schedule. Our choices are limited:

    a. stick to the original requirements and lose the contract (or the next one).

    b. find another game to play

    c. deal with reality. embrace the fact that requirements change

  114. Lazy? Yes. Devs? No. by lemur666 · · Score: 1

    I adopted scrum in my org, but only in response to a product management org that refuse to do their job. We got features masquerading as requirements, we got endless tactical "the customer wants x" requests all while upper management basically was accusing the team of being lazy for not giving them everything they wanted (and more) right away.

    So we adopted agile. This let upper mgmt see we were working as hard as we could and it forced PM to decide "what do you want next? What's the minimum viable set of features? Is this more important than that?"

    Yes agile isn't a cure all, but it definitely helps dev remain productive in the face of laziness and stupidity elsewhere in the org.

    I've also seen a ton of fake agile (we call it "Fragile") where people adopt the buzzwords of agile without considering that good agile takes a lot of work. Fragile is adopting all the bad parts of agile without any understanding of the discipline involved to do it right (track technical debt, and pay it off as you go. Sprints are no excuse to not do long-term planning / grooming of the backlog. Daily stand-ups, where you track impediments are crucial. etc,)

    Success with agile only comes if you understand when it's useful (where there's a large amount of uncertainty/stupidity, somewhere in the org)

    It helps mask underlying problems (the uncertainty) while still maintaining productivity. But I wouldn't fly in a plane that was designed with agile principles. Uncertainty in a "mission critical" engineering problem kills people.

    --
    Corollary to Hanlon's razor: Any significantly advanced stupidity is indistinguishable from malice.
  115. They are missing the point of Agile entirely by Anonymous Coward · · Score: 0

    1) Agile isn't a methodoly, it's a set of prinicples, and there are methodologies that embrace those principles.
    2) If you take a particular methodology that embraces Agile principles, such as Scrum, the major benefit you get over something like Waterfall is a clear understanding of how far along a project you are, and the ability to inject changing priorities... In Scrum, you wind up how poor your initial guesses on schedule/length of project are.

  116. Agile is a buzzword by Eskarel · · Score: 1

    What that means is that the vast majority of people who purport to use agile, both as developers and as clients don't understand what their responsibilities are, or what the technique is supposed to achieve. Lots of developers think that agile is about not planning and not having deadlines and clients think that agile is about being able to change their minds with no consequences. Neither of which is even remotely true.

    The reason that waterfall fails is that people don't actually know what they want, not because it's a bad system, if you knew your requirements exactly up front as a client, and the developers understood what those requirements meant for them well enough to give decent estimates, waterfall would work perfectly. Unfortunately neither of those things are ever true. Agile when done well lets people plan on scales they can actually manage and allows change and unexpected issues to be caught as early as possible and priced in properly. You want your shiny new feature X and it's going to take 3 days to do, then you either have to extend your project out 3 days or you need cut three days worth of something else. You anticipated feature Y was going to take 3 days and it's now looking like 10, well you know that pretty quickly and the client can decide to go ahead or scrap feature Y.

    In essence the fundamental idea of Agile is that when you hit your project deadline, you probably won't be finished anymore than you would have been in waterfall, but if everyone has done their job properly and the project deadline wasn't ridiculous to start with, you should have the most important features so that your client can walk away with something that meets their primary requirements.

    It often fails because people don't do it well(clients don't prioritize well, developers don't stick to the priorities, or everyone's estimates and expectations are way out of whack), but in those circumstances your project will fail regardless of your methodology.

    If you have a client who uses agile as a way to change requirements every sprint, then know your project is going to fail, if as a client your developers are using agile as an excuse to not stick to deadlines or plan anything then know your project is going to fail, if a consultant is promising that agile will fix all your problems, know they're a fraud.

    The great big secret of Agile is the same as the great big secret of most of these methodologies, common sense. You run an agile project for someone else the way you'd run any project for yourself, you set priorities and stick to them, this gets better software out the door quicker the same way it does when you're working on something for yourself.

  117. Flawed and commercialized, but powerful. by ljw1001 · · Score: 1

    I've spent years thinking about Agile and development in general. I'm no apologist for the methodology: see my post from just this morning: http://deathrayresearch.tumblr.com/post/27257008711/when-agile-jumped-the-shark. Some aspects of Agile are better than others, but overall, the methodology is based on sound principles. Most notably, there are many short feedback loops (unit testing, continuous integration, short cycles, customers on the team) that decrease the opportunity for hidden problems. This is extremely powerful. That it's used to sell services is undeniable, and their are aspects that strike me as wrong, but this is a good methodology overall.

  118. why agile is practiced incorrectly by Anonymous Coward · · Score: 0

    any model, whether agile, cascading waterfall, spiral -- it does not matter, when used to get all it's developers to do things the same way in the same order is inefficient. most software is a literary work of art and most people do not write in a systematic way. software is not hardware and is not a recipe for making an 8 course meal. software is closer to an artist that paints. yet try and find any tools, processes or environments that support that behavior. now what is even harder is try and get a bunch of artist together to work on the same painting. it does not work. what to do? stop forcing square pegs into round holes, back up and observe individuals working in their preferred environment and their preferred workflow. observe, understand, talk and it might lead you to this conclusion. there are phases within in a software life cycle that become more predictable and thats when the traditional models work their best. thats when standardization of processes, steps, systematic ways of producing results become appropriate. it might also become apparent that not all members of a software team should be involved in the execution end-to-end, they would be involved as stakeholders, but not execution. some folks are better suited for the end of a life cycle, some better in the middle and other better at the very beginning, conceptual. the way people work most efficiently at the conceptual and early phases of a software project is a world apart from the end of a life cycle -- so why force end-of-life-cycle methodology, tools, process, environments where they do not belong? what this means is one model fits all, even for the same organization, will result in lowering the overall team performance. what is required are multiple models, multiple environments that are tailored the the teams and phases of the life cycle. these environment must be highly malleable. and lastly, everyone that really wants to understand agile, just has to go and read Deming, that is where most of this originated from and then was later applied to software, incorrectly.

  119. Empirical Data by Anonymous Coward · · Score: 0

    No, I'm not slapping down money to read their report. I don't have to. I see it work, every day.

    I work for Litle & Co. We are, among other things, an award-winning credit card processor, which means that we run on a 24/7 basis with 99.999% uptime. We have a team of over 40 developers, and we run a modified agile environment based on Extreme Programming--it has to be modified to scale up to our size. We deploy new software on a monthly basis, again with five nines of uptime.

    Not only do we use agile methodology (pair programming, unit tests up the wazoo, iterative development, continuous refactoring), but we do so with a big, database-heavy service in a heavily regulated space, answering both to the Federal government and the credit card agencies. To make this work, Agile isn't enough; we also hire the best people we can find, and have an HR department that works hard to keep employee retention up.

    So yes, if you hire good people and if you apply agile methodologies, you can work wonders in software. But you need good people, and they (the developers, their managers, and their customers) have to be willing to really try it. If you have below-average developers, it's not worth doing anything but getting better developers, either by hiring or training. If you've got good developers, and they're either going in all directions because you have no methodology, or they're stuck jumping through hoops rather than building your software, Agile can make them a better team.

  120. no documentation?! by AcerbusNoir · · Score: 1

    If you're not documenting your code and providing adequate documentation on your feature then you're a lazy programmer regardless of the process your team uses.

  121. The opposite by Anonymous Coward · · Score: 0

    Actually is the opposite, since you have short sprints you can see more easily who is the lazy on the team

  122. Agile and SCRUM are management methods... by Anonymous Coward · · Score: 0

    Brought back from the 15th and 16th centuries and have no value to software engineering.

  123. Good devs by Anonymous Coward · · Score: 0

    The good devs know that most of their work consists of non-dev related work. They need to accomplish most of their productive tasks during their free time (unpaid). These include code cleanups etc. which are usually not approved by their senior managers. The good devs can give their identity and soul to the project, not just raise paychecks.

  124. I've always said that with PMS Programming by danparker276 · · Score: 1

    the Project Management Software is the most important thing, not reading a 200 page book or taking a class in agile programming. My PMS programming methodology demonstrates this.

  125. Mini Waterfalls yes by Anonymous Coward · · Score: 0

    Yes I cover that in my blog post http://jordanbortz.wordpress.com/2011/11/23/is-scrum-just-a-series-of-mini-waterfalls/