• vrek@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    18 days 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.