• 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.

  • codeinabox ( codeinabox@programming.dev ) OP
    link
    fedilink
    English
    arrow-up
    8
    ·
    4 months 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.

    • 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.

  • vrek ( vrek@programming.dev ) 
    link
    fedilink
    English
    arrow-up
    1
    ·
    4 months 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.