Agile Is the New Waterfall
medium.com
medium.com
That assumes you can tell what the wrong thing is before you ship e.g. without feedback. I don't believe you can. Agile is the process we use if we don't know what that 'right thing' is. It's better to ship the wrong thing and then fix it than to spend additional time on what you believe is the right thing only to find that it was actually the wrong thing and have to fix it anyway.
If you know absolutely what the problem is, what the best solution is, and the situation isn't going to change during the course of the project, then even waterfall will work. Agile is being willing to say "I don't know what the solution is" when faced with something and not being stopped by that problem - do what you can, put it in front of a user, gather feedback, and repeat.
If every tech related decision requires dev to have explicit buy in and commit, and they are equal partners on the negotiating table - a lot of problems then disappear.
I have recently been very blunt in some exchanges.
"- How big should the project scale? - Infinitely! - In that case I will need infinite time and budget"
I got reasonable estimates the next day.
As a developer it is your job to get the problem right, to evaluate the business case for any feature request and give a better proposition if the initial requests sucks.
And for the hated waterfall - well some big decisions are made at the beginning of the project and are almost immutable - technology stack, module boundaries, module interaction, available hardware.
It is once again your job to make sure that recruiting can deliver the right people, that we can procure the needed hardware and so on.
There's a lot of hate in the replies but I think the context of that experience would make his inflammatory arguments perfectly rational.
Agile works when the user is the decision maker, and everyone on the team is advocating for the user (although if its only product that is advocating for the user, that works too). Its a group effort, not something that should just magically work because "we're using agile now".