I've worked with the author before. A lot of projects handed to us are toxic from the beginning and while start-ups fail often, the definite default for projects from our customerbase was decidedly dead-by-default even with bright, effective developers that articulate their points to stakeholders well like you're saying is a responsibility.
There's a lot of hate in the replies but I think the context of that experience would make his inflammatory arguments perfectly rational.
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.