this post was submitted on 05 Mar 2025
673 points (93.5% liked)
Programmer Humor
20954 readers
2907 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
A software engineer was not involved in this if waterfall is painted positively.
I think the last time I heard an engineer unironically advocating for a waterfall IRL was about a decade ago and they were the one of the crab-in-a-bucket, I-refuse-to-learn-anything-new types—with that being the very obvious motivation for their push-back.
And here I am, running projects for the past 20 years mostly using agile, and still very much unconvinced about its supposed superiority over waterfall.
Waterfall: Spend 10 years compiling written functional and technical requirements. Cancel the program due to budget overrun.
Yeah, waterfall would be "you collect requirements to build a rocket to Mars, 2 years later you have a rocket to Venus and it turns out they didn't think oxygen is essential, they'll have to add that in the next major release."
Of course because they don’t like being held to estimates and deadlines.
…and when you agree to run it Agile, which calls for closer and continual communications with the users, the first thing they want is a rep to do it for them .
Yes, silly engineers that don't like being held to unrealistic estimates and deadlines; typically the ones that arise at the start of a project where there are still who-knows-how-many unknowns to find.
Waterfall is the most effective tool for software engineering in a world where the whole world stops once you've planned and only starts again once the project has finished—i.e. a fictional world that doesn't exist. Literally every waterfall project I worked on back in the old days was derailed because something happened that wasn't planned for—because planning for everything up front is impossible and planning for anything more than a handful of eventualities is impractical.
Agile and subsequent methodology comes from realising that requirements will change and that you are better off accepting that fact at the time than having to face it once you're at the end of the current road.
Agile does not mean engineers talking continuously to the users, engineers are hired to do what they're good at: engineering. Understanding user requirements and turning that into a plan has always been product's job regardless of methodology, in agile and similar it's just spread out over the duration of the project, not front loaded. Agile isn't "make the engineers do every proficiency".