back to article Erik Meijer: AGILE must be destroyed, once and for all

A couple of months back, Dutch computer scientist Erik Meijer gave an outspoken and distinctly anti-Agile talk at the Reaktor Dev Day in Finland. “Agile is a cancer that we have to eliminate from the industry," said Meijer; harsh words for a methodology that started in the nineties as a lightweight alternative to bureaucratic …

Page:

    1. TkH11

      Nonsense. You've forgotten to say what one of the fundamental principles of agile is: iterative and incremental development. Agile aims to be an alternative to the traditional waterfall life and it has many things going for it.

      The issue is that there are several agile methodologies with varying levels of rigour, of control, of process, including: XP, Scrum, DSDM Atern.

      Before slagging off agile, I suggest you go do some formal study of the methodologies, understand what they are first. Then you can slag them off knowing you have the knowledge to criticise them accurately.

      1. Anonymous Coward
        Anonymous Coward

        @ TkH11

        "iterative and incremental development."

        Which is a nice way of saying "guessing your way to the answer".

        1. Ken Hagan Gold badge

          Re: @ TkH11

          "Which is a nice way of saying "guessing your way to the answer"."

          Actually, no. It's a nice way of saying "guessing your way to the original question", since the hardest bugs will turn out to be the ones where you were given the wrong spec in the first place and enshrined that in the architecture. If Agile promotes "letting the customer use something as early as possible", then it probably avoids quite a lot of that kind of problem.

          I say "if" because I confess I lost interest in software methodology when it suddenly became trendy enough for marketing folks to get involved and it became a tool I could buy (and keep on my shelf) rather than a method I could use on my own.

          1. john mullee

            Re: @ TkH11

            > > Which is a nice way of saying "guessing your way to the answer

            > Actually, no. It's a nice way of saying "guessing your way to the original question", since the hardest bugs will turn out to be the ones where you were given the wrong spec in the first place and enshrined that in the architecture.

            .. which is an excellent case for rapid front-end prototyping (after all, the users won't be seeing the middle tier etc).

            So doesn't necessarily excuse the rest of the juju, nor does it necessarily avoid finding out late in the cycle that some major feature should have been approached/architected differently

        2. Matt Bryant Silver badge
          Happy

          Re: AC Re: @ TkH11

          "....Which is a nice way of saying "guessing your way to the answer"." Yeah, but if I'm being paid to get to that answer then who cares how I got there if I actually got there on-time and on-budget!

          1. Anonymous Coward
            Anonymous Coward

            Re: AC @ TkH11

            Matt, there are an infinite number of possible guesses, and your probability of guessing something is remote. Any methodology that iteratively attempts to "home in" on a solution based on the next set of guesses is inherently broken.

            I stopped going to the guessing game meetings and spent my time analysing the fundamentals of the issues that we were trying to address, in order that I might be able to clearly articulate the issue at hand and subsequently formulate solutions to the then well understood issue. This is apparently not very agile and I continue to pay an "organisational " price for my open antipathy to the whole agile ethos around here. I manage to keep my job because I am actually phenomenally good at abstract problem analysis (I have a very strange brain well suited and educated for this task), and my solutions make this evident - my productivity and output exceeds that of entire agile teams in many cases, and I definitely write was less code than they do. YMMV

            1. Matt Bryant Silver badge
              Facepalm

              Re: AC Re: AC @ TkH11

              ".....Any methodology that iteratively attempts to "home in" on a solution based on the next set of guesses is inherently broken....." COUGH* prototyping *COUGH.

              I find a modified waterfall methodology works quite well as you can bolt in prototyping if the risk analysis / feasibility study show you actually don't know enough to fix the requirements and ensure the success of the project. Of course, advocates of modified waterfall will often tell you XP (Extreme Programming, presumably what Mr Meijer is a fan of) is 100% "guessing". The biggest problem is those that are inflexible in their approach and cannot bend to suit the project.

      2. Matt Bryant Silver badge
        Facepalm

        Re: TkH11

        "....You've forgotten to say what one of the fundamental principles of agile is...." I think what the author and posters are pointing out is not the problem with the principles of agile dev, but the way it is often implemented by those who believe (due to the hype) it will magically deliver perfect results if only they follow the process inflexibly and unimaginatively. Processes can most definitely help, but having worked inside failed and successful CPM, PROMPT, PRINCE, PRINCE2, waterfall and agile projects/programs, all I can suggest is the most important aspect is the skills and capability of the people involved, not the process.

    2. Matt Bryant Silver badge
      Devil

      Re: dogged

      ".....Scrum is what happens when you let people are a) idiots b) Americans* AND c) in marketing get their hands on Agile and it should be burned with fire....." LOL, too late! It's even got into the PMI certification setup, which means it has A Piece Of Paper that HR/agencies will want to see on your CV to get the big bucks.

      "....And Unit Tests are not about predicting failure conditions in live! They are about making each unit of code modular and robust...." No, no, no! They are about showing that you have met the requirements in the contract because then you get paid! If you actually spend the time to make the product work as it should and that wasn't actually in the requirements then you just delivered something for free. Salesgrunts will not like you for that, they will prefer you to sandbag the fix/addition so they can sell it to the customer as a project extension. Of course, if you are internal and not a contractor, make sure you point out the issue (to cover your backside).

      Too cynical?

  1. Phil O'Sophical Silver badge

    Blaming the tools...

    Good programmers write good code, bad programmers write crap code, the methodology you wrap it in is irrelevant. Neither Agile nor Waterfall will get good code out of a bad programmer.

    1. Anonymous Coward
      Anonymous Coward

      Re: Blaming the tools...

      This is true. However, I have been in 3 days of meetings before to plan a 2 week sprint. Go figure.

      1. macjules
        Boffin

        Re: Blaming the tools...

        Then I would suggest that your sprint model is wrong, not the concept.

        I hold 1 x 2 hour planning meeting per week with a preset agenda for each meeting so that we can achieve enough in 3 meetings to populate a sprint. We run 3 week sprints from Wednesday to Tuesday with a code freeze 3 days before release and use git flow to control this. We have a daily standup for on-site and Skyped-in developers plus project owner plus scrum master which takes no more than 10 minutes.

        The point of the scrum/standup is to quickly identify any weakness in the project. Developers should be able to speak openly about issues that cause concern ('blockers') or if they feel that someone is not pulling their weight on the project. Certainly there is an argument for having the project rushed through and having flaws and defects fixed at a later date, but only if you have a QC unit that is separated from the Agile process, which many larger companies have now. Otherwise you need to fix defects as a part of the sprint cycle or move the task into the next sprint.

        1. petur
          Coat

          Re: Blaming the tools...

          boy, that sounds really bad, hope you find a better job soon....

          1. Anonymous Coward
            Anonymous Coward

            Re: Blaming the tools...

            @petur: Believe me I did. I only attended that bastion of bullsh1t once then moved.

        2. Doctor Syntax Silver badge

          Re: Blaming the tools...

          "We have a daily standup"

          I take it you've never suffered from back trouble?

        3. This post has been deleted by its author

        4. cambsukguy

          Re: Blaming the tools...

          Wow, down voted and told your job is crap because you have 10 mins/day and 2 hours/week in planning meetings.

          My tuppence recalls that, as meetings go, planning meetings involve the developers and are at peer level - not a PP presentation or looking at some awful Gantt chart - infinitely better.

          The 10mins/day, stuck to rigorously, allows one to bemoan someone not producing that thing you need and it quickly getting a red blob on a board or something indicating that a blockage is on-going and some manager needs to send a rocket somewhere.

          All-in-all, I have found the experience much better than the preceding systems and I have three decades in the game.

          Nothing is perfect but, done well (particularly stymieing the guy that ruins the planning meetings), Agile can work.

          It also helps that the system produces a working system after every sprint, tested and ready. this means that engineers that deliver early can add stuff later because everyone knows that the system is on time without some nasty missing thing that hasn't been done (at least, if the planning was done correctly).

      2. Anonymous Coward
        Anonymous Coward

        Re: Blaming the tools...

        ScrumMaster's fault.....it should have been cut short long before 3 days.

    2. Primus Secundus Tertius

      Re: Blaming the tools...

      @Phil

      Quite so. That is why bad programmers become the managers.

      1. phil dude
        Facepalm

        Re: Blaming the tools...

        So the saying goes...

        "Those that can do, those that can't teach, those that say they can but can't get to be managers of Govt IT projects?"

        Another one of those Yes Minister irregular verbs perhaps...?

        P.

    3. Anonymous Coward
      Anonymous Coward

      Re: Blaming the tools...

      True, but I've seen a lot of good code in software that ends up fundamentally useless and vice versa.

  2. SecretSonOfHG

    All methodologies will fail in the right conditions

    The real failure is trying to shoehorn methodologies without taking into account the environmnent.

    Scrum can turn itself into an array of endless useless meetings and methodology artifacts that lead to no code in organizations that are deeply entrenched in micromanagement, because that gives managers the opportunity to play microtracking much better.

    Agile is close to impossible in any organization where accountants govern IT and insist in quarterly and annual budget forecasts that have to be met, because that leads to projects with closed scopes and one of the key points of Agile is that the scope evolves as the customer realizes what it really needs.

    Recognizing the character of the organization is key to choosing a methodology: even waterfall works very well in some contexts (where lives are at stake, for example), whereas in others fails miserably. Same with all other.

    The real mistake is to pretend that there is a single process that can fit all situations well enough. Attempts to create such methodologies end up usually in unmanageable monsters that nobody understands and are only useful to rack up consultant fees and certification programs.

    1. Jeff 11

      Re: All methodologies will fail in the right conditions

      "The real mistake is to pretend that there is a single process that can fit all situations well enough."

      ...this. And there seems to be a fundamental problem with understanding what Agile means - it's not adhering to any one methodology but an agreement between stakeholders and development teams that we live in an imperfect world and must collaborate to organise an efficient process accordingly. For example, Scrum doesn't work for agencies whose teams are responsible for a number of unrelated projects. In this case Agile doesn't say 'find another methodology', it says adapt something whose fundamentals help avoid team, communication and legal problems and so avoid widening the divide between different parties involved in a project. It's also a response to traditional development methodologies creating software that's already obsolete when it goes into production, rather than products that might be imperfect to start with, but generate substantial value even in that state. Being successful in business is usually about being pragmatic, and Agile is all about pragmatism.

  3. Sykobee

    I can only assume that his experience of scrums and agile development have been rather poor.

    A short stand up is what you are meant to have. It's to focus your mind at the start of the day, let your team members know how you are doing, allow you to ask questions for your work, or of other's work, and spread knowledge you have that a developer may not.

    As for TDD, it's rarely implemented to the book. But you do need tests. The tests (1) document the code's expected behaviour, (2) and stop code changes breaking what is tested, (3) encourage code to be written in a modular, testable manner, and (4) allow the developer to sleep at night (and more).

    And I'm not just talking about unit tests, there's integration tests, component tests, etc. These all test the software at different levels, including the ability to model real world breakages.

    Sure - there will be things that you haven't tested for that break. But that's better than simple things that you could have avoided breaking. I don't know about you, but I like sleeping at night instead of worrying, or getting phone calls to fix things.

    And as for agile - what it means is "do what is necessary for this bit of work to be complete; don't do more, don't over design up front, don't anticipate future requirements (within reason). It really does mean "move fast" - but in a safe manner.

  4. Xamol

    move fast and break things

    ..sounds like hacking code to me.

    @dogged good points, totally agree - especially about Unit testing. Who said that unit testing should be the only testing done before the software goes out the door?

    On the one hand, he rubbished the most basic level of testing and on the other presumably advocates no pre-release testing at all in his 'move fast and break it' approach... Moron.

    1. macjules

      Re: move fast and break things

      Then again he did once work for Microsoft and man, have we been buying the results of the 'move fast and break things' approach for years now.

      1. Matt Bryant Silver badge
        Facepalm

        Re: macjules Re: move fast and break things

        "Then again he did once work for Microsoft and man, have we been buying the results of the 'move fast and break things' approach for years now." Actually, MS has a very good testing perspective and had a suite of good testing tools long before its competitors. I suspect MS's problems are more due to conflicting headline requirements - "make it easy to use" vs "make it secure", with the former winning at the design phase but the latter becoming more important in later development. If you identify imperfect requirements then no PM process on Earth is going to save you from delivering an imperfect product, and subsequent attempts to adapt an imperfect product is always going to be harder (but less of a case of market suicide in the case of Windows) compared to just starting with a fresh design.

        I suspect Erik Meijer's problem is he is a "gasshole" - a super-genius asshole who continually irritates his colleagues with statements like "What, you couldn't see that?". I suspect he is one of those people that is so smart and good in the narrow field they work in that they have a problem realising not everyone can work to their level, hence the disparagement of processes he deems "unnecessary" or "irrelevant" because he is just too smart to need them.

  5. A Non e-mouse Silver badge

    Project Managers

    The problem with any programing paradigm is that people like project managers throw the baby out with the bath water. They follow the paradigm too rigidly, instead of letting the users of the paradigm (e.g. coders) adapt to the situation.

    There is no universal tool or technique for managing projects of every shape and size. A good manager will adapt/modify techniques to the situation as it develops.

    1. Eric Olson

      Re: Project Managers

      I've worked with good and bad PMs. Often times I have to stand in, as I'm the poor sap who has the BA title appended to my name. A good PM keeps people focused on the task at hand and gently steers the ship towards the goals. They cut out scope creep, keep the numbers looking good for finance, and if necessary, throw themselves in the line of fire when management comes calling, wondering why something isn't being delivered on time, under budget, and with pristine quality.

      The newer PMs often come out of school and/or training with a specific set of tools in hand they are to use, and when one tries to upset that particular apple cart, they have a tough time. I've noticed in my travels the PM is the one who struggles to move from one methodology with one set of tools to another, as they are raised in a world with specific metrics and reports. You put story points and velocity in front of them when it used to be IT spend and burn rate, and suddenly the foundation of their world takes a huge hit. The PMs I've worked with who have multiple methodologies under their belt tend to take whatever crap their current company throws at them. Just like any other professional, experience and thick scar tissue is what makes for a good PM.

      And it's a job I never want to do. Ever.

  6. Anonymous Coward
    Anonymous Coward

    "Debunked" ?

    How did Nic Ferrier "debunk" Meijer ?!

    Or are you just throwing in terms you found on the internet but don't really understand ?

  7. A Non e-mouse Silver badge

    Unit tests

    Unit tests aren't worthless: They're invaluable when you're refactoring code. Sure, people don't right enough tests to test failure scenarios. But even tests that only validate that your code produces the right output for certain valid inputs is better than no test.

  8. Falmari Silver badge
    Mushroom

    Smoke and Mirrors

    Agile is just a way for management to pass the blame to developers when a project is late.

    After all development teams are now "self managed" and have taken "ownership" of the job so it is their fault it is late.

    Nothing to do with management have unrealistic expectations of how long something takes and making commitments that development teams can never achieve.

    Agile is just a big con job all smoke and mirrors.

    1. breakfast Silver badge

      Re: Smoke and Mirrors

      That is not all that it is, but it certainly is massively misunderstood by a lot of its proponents. One of the points of Agile is that you implement features on an interative basis. There is no "done" in an Agile project, just an ongoing process of improvement and feature addition. This is not actually what most business customers want, but it's just the kind of term that marketing chumps love, so they start making up their own amorphous definitions for their own purposes and of course it's the developers who suffer when we can't do the impossible.

      1. Anonymous Coward
        Anonymous Coward

        Re: Smoke and Mirrors

        It's like a fucking revisionists party here today.

        There is quite clearly the 'definition of done' in Agile. It is not an ever-lasting quest.

        The problems being discussed here seem to be about two things:

        - Egos, of both developers and PMs

        - Bad management

        Neither of which are about a project management framework. They're about people.

    2. This post has been deleted by its author

      1. dogged

        Re: Smoke and Mirrors

        I always hoped it would lead to an end to "project managers" at all but sadly, most employers still reflexively insist on a "project manager" for every project.

        The reason for the quotes is that these arseholes never actually manage anything. They're supposed to get information from developers to give to management about timeframes but treat estimates as deadlines in every case. Most have no clue what the project they're managing actually does. One once continually asked me if the unit tests were passing for a project which some other arsehole had decided should be 90% dynamically generated JavaScript (good fucking luck testing that) and didn't shut up until I came up with a set of dummy tests that tested nothing of importance and were all coded specifically to pass.

        One used to insist on selecting the technologies and tools we'd use despite the fact that she literally never written a line of code in her life.

        And these are not edge cases. These are normal. "Project managers" are parasitic scum but whichever methodology you select, you can guarantee that some cretin further up the food chain will insist that there has to be one.

        1. Triggerfish

          Re: Smoke and Mirrors

          Speaking as a parasite I would say one of the problems with project managers is they often don't have experience of the sharp end for agile I guess its coders, I am more engineering and I have seen the same thing, you get someone who has no idea about engineering but know there way round an excel spreadsheet and got the nice Prince2 certificate and apparently this makes them fully qualified to understand a subject that most people spent three years sweating getting a B Eng for. Why ask your upper management who have been sold the marketing bullshit, seriously I have seen someone who has all the skills and working in a company as a project coordinator (knows the job, knows the contacts for clients etc, lots of construction experience) be overlooked in preference of them hiring externally someone who went and got herself a Prince2 foundation certificate before that she had been a secretary she lasted about two months btw before leaving due to stress....,

          However also having seen some jobs go completely tits up because the engineers were left to sort it for themselves and have done stuff that makes you go "hold on I thought you were intelligent, so wtf?" Frankly some tech people can be blinding at their job and complete shite at understanding how it integrates into everything else that comes with running a business or even understand that a budget and profit margin may be quite relevant to continuing pay packets. I can say that some projects do need project management as long as they are the sort who can do a decent interface between the business side of things and the tech side.

      2. Dagg Silver badge
        Pint

        Re: Smoke and Mirrors

        The collective noun for a group of project managers - "A delay of project managers"

    3. macjules

      Re: Smoke and Mirrors

      Actually Agile is more of a way for developers to say to management "Hey, this is what we have worked on, these are the problems we found and this is what we are delivering". Things only really get bad when you have a project manager who promises the board delivery dates beyond the capability of the process, and I have seen this at high government IT levels.

      We use an agile system not just as a means of structured development but also as a monitor for bad developers. The number of apparent 'back end developers' who can just about scrape through a PHP fizzbuzz test is sorely in contrast with the numbers who do not even know the differences between and object and a class.

  9. GeezaGaz

    I agree!

    Just because you *can* be agile doesn't necessarily mean you *should* be agile.

    Its a great excuse for continually sneaking in additional functionality *without* altering the project plan. In other words to any sane person completely fucking ludicrous. But of course thats fine you just steal time from the testing phase of the project to swallow the additional development effort.

  10. John Miles

    re: “we talk too much about code, we don’t write enough code.”

    Stopping some developers writing lots of code is a good thing

  11. RyokuMas
    Facepalm

    "Move fast & break things"

    Guess he had to quit Microsoft in order to "move fast"...

  12. breakfast Silver badge

    Moving fast and breaking things is all well and good if you're whipping up a pocket-size app at a code jam, but if you are working on something large scale and serious then all you're doing is charging around making a big noise and leaving everyone else on the team to tidy up your mess.

    The problem in most development projects is not too much communication between the different stakeholders.

  13. Tom 7

    Agile works fine

    A lot of design methodologies work fine in the hands of experienced coders. By experienced I mean they've been through the process from top to bottom a few times.

    1)Oh - and management has to have done that too. Which is where most things fall down.

    I've used the 'write the code in meetings and when no-ones watching and then present it as an option" approach a few times. Best to bring out working code that's not 'a la mode' when they're desperate for it.

    But the best approach is normally to subtly get the customer to accept something that's already out there - its what they want most of the time and the chances are only an experienced developer will recognise their problem is really as old as the hills. But see point 1) above.

  14. Mike Bell

    I read an interesting description of Agile/Scrum the other day: If houses were built the same way that Agile software is developed, you'd need a bulldozer to fit a microwave oven in the kitchen.

    Not a great fan, but thankfully it doesn't really affect me (now), since I'm mostly left to get on with my own thing.

    1. Sykobee

      Again, this implies that the overall aim of the project isn't actually known whilst the work is going on.

      For your house building example, that's like saying "I want to build a shelter to sleep in" up front, rather than saying "I need to build a house with all the modern expectations of a house which are XYZ".

      Agile doesn't mean you don't design up front for the end aim of the project. It doesn't mean you give up on good software design practices. You will analyse the needs of the Kitchen aspect of the project, and decide you need worktops, and cupboards, and you need water, and space for a fridge, oven, microwave, and power for each of them, and the ability to rearrange things, and to meet safety regulations (i.e., plug sockets, etc).

      However once you've done that, you can start work on it, you don't need to have the bathroom designed (well, it needs access to the water stack in the house, etc), nor do you need the garden landscape design completed. Which is what waterfall model would require before you even started clearing the site.

      And sure, the first kitchen appliance might require refactoring of the kitchen a bit (hardly knocking the house down!) ... oh, the analogy is stupid at this point.

      Of course, contractor development methodology is even less restricted, although dealing with clients often means you need to be more waterfalley in terms of getting the requirements and specification done up front.

      And if you truly are doing your own thing, then enjoy!

    2. Tom 7

      @Mike Bell

      but remember your working with software here not hardware - the walls pull apart to allow the bulldozer through.

    3. macjules

      @Mike Bell.

      I have worked on government IT projects where if you were to build a house in the way they structured their projects you would put the roof down before the foundations had been laid.

  15. John Smith 19 Gold badge
    Coat

    What a revolutionary idea agile seems

    Actually getting the customers input to the problem before the "solution" is set in concrete.

    Who knew?

    1. Down not across

      Re: What a revolutionary idea agile seems

      Actually getting the customers input to the problem before the "solution" is set in concrete.

      Who knew?

      Hehe. Quite.

      We all know that in general the customer doesn't know how to explain (well enough for a spec to be written) and/or know (usually case of both..) what it is that they need (was going to say want, but they usually want truckloads more than what they actually need).

      Rapid development cycle and the customer being more directly involved greatly alleviates the problem which is probably the most useful part of agile.

Page:

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon