• Aurenkin@sh.itjust.works
    link
    fedilink
    arrow-up
    113
    ·
    edit-2
    5 months ago

    Note that this is failure to deliver on time, not failure to deliver full stop.

    I also think a lot of places claim to be agile, but don’t follow or understand the principles at all. Another commenter here is the perfect example of that where they say the opposite of what’s in the agile manifesto and claim that it’s a representation of what it says.

    Maybe that’s a fundamental problem with agile. It’s just a set of loose principles rather than a concrete methodology being pushed for by a company and it has therefore been bastardised by consulting companies and scrum masters claiming to teach the checklist of practices that will make your company agile. Such a checklist does not exist, it’s just a set of ideas to keep in mind while you work out the detailed processes or lack thereof that work for you.

    For anyone that wants to refresh their memory on the agile manifesto:

    Individuals and interactions over processes and tools

    Working software over comprehensive documentation

    Customer collaboration over contract negotiation

    Responding to change over following a plan

    That is, while there is value in the items on the right, we value the items on the left more.

    • tyler@programming.dev
      link
      fedilink
      arrow-up
      33
      arrow-down
      11
      ·
      5 months ago

      Agile was designed for contractors to deliver contract work. It’s a terrible design for any sort of sustainable business plan, hence “working software over comprehensive documentation”. That line right there causes the majority of outages you as a consumer encounter.

      • atzanteol@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        37
        ·
        5 months ago

        The very first mistake most people make when reading the agile manifesto is that “a over b” means “don’t do b”.

        • prof@infosec.pub
          link
          fedilink
          arrow-up
          13
          ·
          5 months ago

          100% that.

          Especially that working software over comprehensive documentation part, which can be automated so easily if done right.

          There’s so much value in TDD and providing a way to do integration and automated UI tests early on in a project, yet none of the companies I’ve worked at made use of it.

          Also automated documentation tools like Swagger are almost criminally underutilised.

        • peg@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          5 months ago

          The other mistake everyone makes is “agile = faster and cheaper” . This results in corner cutting and unreasonable deadlines.

      • Aurenkin@sh.itjust.works
        link
        fedilink
        arrow-up
        27
        arrow-down
        8
        ·
        5 months ago

        Would you rather have working software or a bunch of documentation? If your software is having outages then by definition it is not working. If documentation is the root cause of that then you should fix that by creating enough documentation to allow your software to continue to work per “working software over comprehensive documentation”. Maybe I’m missing something but I don’t see the contradiction here.

        • becausechemistry@lemm.ee
          link
          fedilink
          arrow-up
          43
          ·
          5 months ago
          1. Hack together a proof of concept
          2. Works well enough that management slaps a “done” sticker on it
          3. Pile of hacks becomes load bearing
          4. One or two dependencies change, the whole thing falls over
          5. Set evenings and weekends on fire to fix it
          6. Management brags about moving fast and breaking things, engineers quit and become cabbage farmers and woodworkers
          7. New graduates are hired, GOTO 1
          • GBU_28@lemm.ee
            link
            fedilink
            English
            arrow-up
            12
            arrow-down
            3
            ·
            edit-2
            5 months ago

            If 2 and 3 happen the game is up. Management killed it.

            That’s not agiles fault.

            • tyler@programming.dev
              link
              fedilink
              arrow-up
              1
              ·
              5 months ago

              But that’s what agile sounds like to management. They don’t understand the “it’s held together by hopes and dreams” communication, because all they see is something that appears to work. So why would they invest anything else in it.

        • AwkwardLookMonkeyPuppet@lemmy.world
          link
          fedilink
          English
          arrow-up
          10
          arrow-down
          3
          ·
          5 months ago

          If documentation is the root cause of that then you should fix that by creating enough documentation to allow your software to continue to work

          Or create a better UI that doesn’t require so much documentation.

          • pivot_root@lemmy.world
            link
            fedilink
            arrow-up
            12
            ·
            edit-2
            5 months ago

            This assumes front-end development.

            From a (dev)ops perspective, if I had a vendor hand me a tarball instead of proper documentation, I’d look very far away from their company. It isn’t a matter of if shit goes wrong, but when. And when that shit goes wrong, having comprehensive documentation about the architecture and configuration is going to be a lot more useful than having to piece it together yourself in the middle of an outage.

        • Carighan Maconar@lemmy.world
          link
          fedilink
          arrow-up
          4
          arrow-down
          1
          ·
          5 months ago

          In long term development, sensible and updated documentation is far more important than the software working constantly. You will have downtimes. You will have times before the PoC is ready.

          But if your documentation sucks or is inexistent, you cannot fix any problems that arise and will commit a ton of debt the moment people change and knowledge leaves the company.

          • Aurenkin@sh.itjust.works
            link
            fedilink
            arrow-up
            1
            arrow-down
            3
            ·
            5 months ago

            Fair enough, at my job the code working consistently is absolutely the number one priority at all times but I can imagine that there are some places where this is not true. If working software isn’t imporant then I agree agile is probably not the right choice

            It’s worth pointing out though that having insufficient documentation is not a feature of agile. Sounds more like laziness or misplaced priorities to me as documentation is called out as being useful in the agile principles, just not as important as working software.

      • fruitycoder@sh.itjust.works
        link
        fedilink
        arrow-up
        8
        ·
        5 months ago

        Gotta remember it was a response to water fall. Docs didn’t mean the man page or the wiki, they ment the spec sheet, PowerPoint’s, graphs, white papers, diagrams, aggreements and contracts, etc. Where you might go MOUNTHS making paperwork before you ran a single line of logic.

        Docs SHOULD be the last resort of an engineer if your UX just can’t be intuitive in some way or some problem domain just can’t be simple. You should first strive to make it work well.

        For example Lemmy, it just would work if you needed to read the Lemmy user guide first to post on Lemmy. That would indicate bad UX, but that was how it was back in the day.

            • Carighan Maconar@lemmy.world
              link
              fedilink
              arrow-up
              2
              ·
              5 months ago

              Unified process, which, despite usually not being called that way and/or being codified in the way it is nowadays, is how virtually all early software companies did their development work post-punchcards (when you no longer had to get things done in a single step).

              It’s why the “agile is better because iterative hoooo!” is so laughable, because even though we didn’t yet call it iterative - as a distinction from pre-planned, since we thought in punchcards+mainframe vs after that - we did iterative work. Of course we did, software development is naturally iterative and Waterfall was the contrived contrasting example of how a non-iterative process would look.

    • snooggums@midwest.social
      link
      fedilink
      English
      arrow-up
      14
      arrow-down
      4
      ·
      5 months ago

      The primary problem is using agile all the time instead of when it is actually intended to be used: short term work that needs to be done quickly by a small team that are all on the same page already.

      It sucks for any large group that requires a lot of coordination. Some parts of it are still helpful as part of a blended process, like more collaboration with the customer and responding to change, but those can easily derail a project if not everyone is on the same page through scope creep or losing sight of long term goals.

      • lysdexic@programming.dev
        link
        fedilink
        English
        arrow-up
        12
        arrow-down
        1
        ·
        5 months ago

        The primary problem is using agile all the time instead of when it is actually intended to be used: short term work that needs to be done quickly by a small team that are all on the same page already.

        I think you got it entirely backwards.

        The whole point of Agile is being able to avoid the “big design up front” approach that kills so many projects, and instead go through multiple design and implementation rounds to adapt your work to the end goal based on what lessons you’re picking up along the way.

        The whole point is improving the ability to deliver within long term projects. Hence the need to iterate and to adapt. None of these issues pose a challenge in short term work.

      • tyler@programming.dev
        link
        fedilink
        arrow-up
        4
        ·
        5 months ago

        I wonder why anyone would downvote you. to break down what you said:

        The primary problem is using agile all the time instead of when it is actually intended to be used

        this applies to everything in life. zero reason to downvote this unless you’re a zealot who doesn’t understand nuance

        short term work that needs to be done quickly by a small team that are all on the same page already.

        the whole point of agile is to be short term, maybe your downvoter thinks that the team doesn’t need to be on the same page??? don’t know how that is in any way a good idea. it means you haven’t done a good job communicating…

        Some parts of it are still helpful as part of a blended process, like more collaboration with the customer and responding to change, but those can easily derail a project if not everyone is on the same page through scope creep or losing sight of long term goals.

        anyone that disagrees with this hasn’t actually gone through with Agile according to all the tenets. It sucks for anything more than the tiniest projects that don’t need long term maintainability. I’m guessing this is where someone disagrees, but I can’t fathom why. Maybe they’ve only worked at one place, they think it actually is working, yet haven’t been there long enough to see the downsides or something.

        • atzanteol@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          13
          ·
          5 months ago

          There is nothing in the agile tenets about only using it for short term projects. I’ve had very successful multi-year agile projects.

          Frankly “agile” just goes over most people’s heads. They think it means sprints and stand-ups with no documentation.

          • snooggums@midwest.social
            link
            fedilink
            English
            arrow-up
            5
            arrow-down
            2
            ·
            5 months ago

            A large and complex system with an API and interacts with multiple other systems that is maintained over multiple years will be killed by agile through scope creep and inconsistent implementation when there is staff turnover. People will get great ideas that break other things snd without a cohesive vision across the team, things will be missed and unfinished because people focus on their part and not the whole.

            You can add the structure to keep things coherent and spend more time doing documetation up front so people can review the API and do it right the first time instead of redoing it multiple times.

            Agile is great for some projects, but ataff turnover, coordination, and meeting any kind of complex external requiirements means it isn’t a great fit for all projects.

            • Aurenkin@sh.itjust.works
              link
              fedilink
              arrow-up
              2
              arrow-down
              1
              ·
              5 months ago

              I’m curious about why you think this. I’ve seen complex multi year efforts succeed and continue to evolve with agile principles in mind. What specific part of agile do you think would necessarily cause the issues you mentioned?

              • snooggums@midwest.social
                link
                fedilink
                English
                arrow-up
                2
                arrow-down
                1
                ·
                5 months ago

                I’ve used a wrench to hanmer in a nail more than once, but that doesn’t mean it was the best tool for the job.

                It isn’t that agile can’t be used for something big, but that the design will likelyntun into hard requirements that must be approached certain ways and at thst point you are using agile to do waterfall. If it improves communication earlier in the process (which waterfall does not prohibit) that is great!

        • lysdexic@programming.dev
          link
          fedilink
          English
          arrow-up
          6
          arrow-down
          1
          ·
          5 months ago

          the whole point of agile is to be short term

          Not really. The whole point of Agile is to iterate. This means short development cycles which include review and design rounds to adapt to changes that can and will surface throughout the project. The whole point of Agile is to eliminate problems caused by business, project, and technical goals not changing because planning is rigid and can’t accommodate any changes because the process does not have room for those.

          This is why this whole “things need to be planned” crowd are simply talking out of ignorance. Agile requires global planning, but on top of this supports design reviews along the way to be able to face changing needs. This requires planning in short-medium-long terms.

          Don’t blame Agile for your inability to plan. No one forces you not to plan ahead.

      • Aurenkin@sh.itjust.works
        link
        fedilink
        arrow-up
        7
        arrow-down
        3
        ·
        5 months ago

        I don’t understand what you mean, why would coordinating across a large group be against the agile principles? It sounds like the main issue here is lack of communication and planning which are both important parts of any process including one based on agile.

        Planning becomes more important for a larger project but if you hyper focus on sticking to the plan even if things change you can end up delivering something that is not useful for your customers, so I think the principles still make sense there.

    • magic_lobster_party@kbin.run
      link
      fedilink
      arrow-up
      7
      ·
      5 months ago

      That is, while there is value in the items on the right, we value the items on the left more.

      This is funnily the part of the manifesto most have trouble understanding.

    • lysdexic@programming.dev
      link
      fedilink
      English
      arrow-up
      10
      arrow-down
      4
      ·
      5 months ago

      Note that this is failure to deliver on time, not failure to deliver full stop.

      It’s also important to note that the Hallmark of non-Agile teams is de-scoping and under-delivering. It’s easy to deliver something on time if you switch your delivery goals and remove/half-bake features to technically meet requirements while not meeting requirements.