• callouscomic@lemm.ee
    link
    fedilink
    English
    arrow-up
    41
    arrow-down
    6
    ·
    edit-2
    20 hours ago

    When a team of programmers is left to their own devices, they too screw shit up. They all do things in their own way and argue over what is best, and often fail to see the bigger picture.

    I watch scope creep and lack of organizational planning from both programmers and managers. It’s all personality issues.

    I also don’t believe anyone actually follows or knows what agile is (not saying I do either). Everyone on every team at every place sure talks about it, but it doesn’t seem like anyone actually does it. These are all just labels for “we adapted as we went.”

    • spacecadet@lemm.ee
      link
      fedilink
      arrow-up
      31
      arrow-down
      1
      ·
      edit-2
      19 hours ago

      Found the PM/TPM. The best software was written without Agile and PMs/TPMs. It’s only after software becomes successful that the need is felt for that stuff.

      The world runs on open source software and I don’t know of a single open source project that uses Agile or PMs/TPMs.

      • azertyfun@sh.itjust.works
        link
        fedilink
        arrow-up
        5
        arrow-down
        1
        ·
        10 hours ago

        What? I’m not privy to RedHat/IBM/Google’s internal processes but they are all massive FOSS contributors at least some of which I assume are using Agile internally. The Linux kernel is mostly corpo-backed nowadays.

        The development cycle of FOSS is highly compatible with Agile processes, especially as you tend towards the Linux Kernel style of contributing where every patch is expected to be small and atomic. A scrum team can 100% set as a Sprint Goal “implement and submit patches for XYZ in kernel”.

        Also agile ≠ scrum. If you’re managing a small github project by sorting issues by votes and working on the top result, then congratulations, you’re following an ad-hoc agile process.

        I think what you’re actually mad at is corporate structures. They systematically breed misaligned incentives proportional to the structure’s size, and the top-down hierarchy means you can’t just fork a project when disagreements lead to dead ends. This will be true whether you’re doing waterfall or scrum.

        • Aceticon@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          1 hour ago

          A family of software development processes for teams, which focuses on cycles of quickly building and delivering smaller blocks of program functionally (often just a single program feature - say: “search customers by last name” - or just part of a feature) to end-users so as to get quick feedback from those users of the software, which is then is use to determining what should be done for subsequent cycles.

          When done properly it addresses the issues of older software development processes (such as the Waterfall process) in siuations where the users don’t really have a detailed vision of what the software needs to do for them (which are the most usual situations unless the software just helps automates their present way of doing things) or there are frequent changes of what they need the software to do for them (i.e. they already use the software but frequently need new software features or tweaks to existing features).

          In my own career of over two decades I only ever seen it done properly maybe once or twice. The problem is that “doing Agile” became fashionable at a certain point maybe a decade ago and pretty much a requirement to have in one’s CV as a programmer, so you end up with lots of teams mindlessly “doing Agile” by doing some of the practices from Agile (say, the stand up meeting or paired programming) without including other practices and elements of the process (and adjusting them for their local situation) thus not achieving what that process is meant to achieve - essentially they don’t really understand it as a software development process which is more adequate for some situations and less for others and what it actually is supposed to achieve and how.

          (The most frequent things not being done are those around participation of the end-users of the software in evaluating what has been done in the last cycle, determining new features and feature tweaks for the next cycle and prioritizing them. The funny bit is that these are core parts of making Agile deliver its greatest benefits as a software development process, so basically most teams aren’t doing the part of Agile that actually makes it deliver superior results to most other methods).

          It doesn’t help that to really and fully get the purpose of Agile and how it achieves it, you generally need to be at the level of experience at which you’re looking at the actual process of making software (the kind of people with at least a decade of experience and titles like Software Architect) which, given how ageist a lot of the Industry is are pretty rare, so Agile is usually being done by “kids” in a monkey-sees-monkey-does way without understanding it as a process, hence why it, unsurprising, has by now gotten a bit of a bad name (as with everything, the right tool should be used for the right job).

          • wpb@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            28 minutes ago

            Thank you for your detailed reply! It also helps explain the cynicism in the other two replies a bit.

        • AwkwardLookMonkeyPuppet@lemmy.world
          link
          fedilink
          English
          arrow-up
          14
          ·
          17 hours ago

          A development philosophy that nobody understands, or actually follows, but every company insists on using, even when it’s a poor fit for their projects.

        • jubilationtcornpone@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          22
          arrow-down
          1
          ·
          18 hours ago

          A race to accrue as much technical debt as quickly as possible by focusing stricty on individual features while ignoring the long term ramifications of design decisions.

          /s

    • AwkwardLookMonkeyPuppet@lemmy.world
      link
      fedilink
      English
      arrow-up
      13
      ·
      17 hours ago

      They all do things in their own way and argue over what is best, and often fail to see the bigger picture.

      It sounds like your programming team is missing a senior engineer/director of engineering. You need an engineer who has the experience to see the big picture, architect solutions, and tell the team what’s what.