▲ | adastra22 3 days ago | |||||||||||||||||||||||||||||||||||||||||||||||||
Why? Waterfall is suboptimal mostly due to human failings. | ||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | Jtsummers 3 days ago | parent | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
Waterfall is suboptimal because it's optimistic and lacks feedback loops. Waterfall as codified was not the improved process Royce described, but the flawed process early in his paper. It's optimistic because it carries an assumption that you can delineate your development into clear phases with a distinct start and finish. That doesn't work on large projects. You don't spend years designing your new system and then years building it and then years testing it. You commingle each of those, and once you do that, you're not doing Waterfall. You're doing something better, you're using your brain. Iterative & Incremental, Spiral development, or most ideas out of the Agile movement are better. They incorporate feedback into the project and don't have strongly delineated phases. They don't make 10 year project commitments before they've even written a single requirement. Because these are methods that are realistic. We didn't get to the moon by Waterfall. The Wright brothers didn't succeed in flight with Waterfall. Linux wasn't developed with Waterfall. Waterfall is a failure for large scale systems. | ||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | CuriouslyC 3 days ago | parent | prev [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
AI loves waterfall because every time you insert yourself in the agentic coding loop you reduce the velocity of the system, and if the system blocks on your input the reduction can be pretty epic. Beyond that, AI has myopia, and if you tell it to implement something without a larger framework it understands how to slot it into, it'll put it somewhere that makes no sense, duplicate code, make incompatible interfaces, etc. It's much more efficient to just have the system outlined clearly from the get-go, and this also helps because you can generate E2E tests for validation up front to ensure the features really are valid and working. | ||||||||||||||||||||||||||||||||||||||||||||||||||
|