• Supercrunchy@programming.dev
    link
    fedilink
    arrow-up
    27
    ·
    24 hours ago

    I don’t think I ever worked in a company doing real agile (involving customers early and directly, shipping frequently, gathering feedback, and changing the process if it becomes an obstruction). It always ends up being all about random metrics, velocity reports to management, and “”“requirements”“” dictated from high up. It’s always just chaos that names itself “agile” as a poor excuse for the lack of planning. You get the worst parts of waterfall (lack of feedback and validation) with the worst part of agile (lack of specs and medium-term plan, no project management). No estimations, no requirements, no plan, no coordination between teams, but the deadline is fixed anyway and the feature has been sold to a customer already. The customer is going to see the product for the first time after 6 months of development, after which the priorities shift immediately and no feedback is ever addressed. AI is not going to magically make management write good requirements and have a good planning session with everybody involved… it’s just going to create even more unreviewed AI slop documents that are just noise and will be ignored by most anyway.

    • jubilationtcornpone@sh.itjust.works
      link
      fedilink
      arrow-up
      5
      ·
      22 hours ago

      If I had a dollar for the number of times I’ve heard some CEO proudly declare in an all hands meeting that all his CEO buddies just LOVED the latest gleaming turd that we’re trying to speed run towards a failed MVP, I could buy myself a nice dinner. Tip included.

      But those people are virtually never the target user. And they don’t really care what the target user thinks. They just think anything that has the remote whiff of dollar signs is a good idea.

  • codeinabox@programming.devOP
    link
    fedilink
    English
    arrow-up
    10
    ·
    1 day ago

    This is a fascinating article about the history of software development. For me the key quotes are:

    The thing that killed Waterfall was that discovering your spec was wrong months later, after lots of code had been written - and fixing it cost a fortune because writing code was the most expensive part of the process.

    The key reason Agile was invented was to account for the high cost of writing code, so yes, that part of the Agile value proposition is no more.

    The risk isn’t that AI development is inherently Waterfall. The risk is that organizations with latent Waterfall instincts will use spec-generation as license to do the bad thing they always wanted to do — front-load requirements, skip customer validation, equate a fancier document with a better outcome, and ship one massive thing every quarter.

    • MonkderVierte@lemmy.zip
      link
      fedilink
      arrow-up
      4
      ·
      6 hours ago

      The thing that killed Waterfall was that discovering your spec was wrong months later, after lots of code had been written - and fixing it cost a fortune because writing code was the most expensive part of the process.

      The thing is, you can’t just constantly adapt a software to changing requirements. If the foundation was made for a different terrain and building, whatever you build on it will not stand stable either.
      So with agile, you get more stress for your developers for free and the result barely works. If the company really did agile and not tbe usual mess.

    • Freeposity@lemmy.world
      link
      fedilink
      English
      arrow-up
      12
      ·
      1 day ago

      equate a fancier document with a better outcome

      “The steering committee spent months on this spec, how many days will it take you to build it?” is an attitude I get far too often. These people always seem to think that conceiving of a piece of software is the hardest part of the process and they come close to breaking their arms patting themselves on the back for doing their part.

      • bitfucker@programming.dev
        link
        fedilink
        arrow-up
        3
        ·
        23 hours ago

        A well thought out software architecture is indeed worth a lot. So a group of engineers that are able to actually make accurate architecture and decisions from the get go would help a lot. But the problem is requirement changes. And that’s the core issue.

        For something relatively set in stone like a car control system for ICE timing and whatnot, the requirement will not change by the fact that it is tied to another design which must also have been fixed beforehand and cannot be changed easily mid way willy nilly like software.

        The engineer designing the engine must do a lot of administrative tasks again to make sure they pass every regulation under the sun when a change is made. We, the software guy does not have the equivalent of those barrier when a service requirement change. At most it is something about data privacy and security but that’s about it. Everything else is fair game

  • vrek@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    20 hours ago

    I feel like both are valuable for different purposes. Do you really have specific requirements? For example a piece of software to dispense a defined amount of a medication into a bottle. It requires plus/minus 1 ml accuracy for health safety. It will use Acme Corp stepper motor to operate the dispenser which has its own requirements. It will operate on arm based Linux for low cost. These are requirements, they will not change. We will sell the device with a high definition screen with 1080p(no one is gaming or watching movies on a medication dispenser, no need for 4k or 8k).

    Then there are more agile things. Some pharmacies are 24hrs, the users want a dark mode so it’s easy on eyes at night. Don’t write specific colors for buttons into your requirements at beginning. Some prescriptions are sold between 10ml to 5 L(making up numbers) so users want a touch pad to enter values instead of up and down buttons(pressing up 5000 times would be a pain). How users enter amount should not be a requirement at beginning. These can change and should use a agile approach.

    Requirements in my mind are things were changing is a huge investment and would require a new round of design. Those should be defined up front. That’s waterfall. Other aspects should be easier to change based on whims of customer. That’s agile.

    If a customer says we like your software but want to use Other Corp motor, no sorry not compatible. If customer wants their logo in corner should be doable.