I think we are in agreement here - I acknowledge that the waterfall approach doesn't often work and that spacecraft are a very special case. In fact, I was going to write that waterfall is a straw man in that no-one tries or believes in it any more, but that made me think of NASA (and possibly aerospace in general), which demonstrate that it works (and is possibly the only thing that works) in certain circumstances.
I think the pendulum has swung too far the other way, however, and it is not hard to find opinions (and Stack Overflow comments and sometimes answers) stating, in effect, that the only valid way to develop code is to write some and try it. For the most part, I think these authors have not considered of how much thinking ahead goes into making even that work, and if they did, they would not be so dogmatic about deprecating it.
Three areas, of definite relevance to ordinary commercial applications, where I think thinking ahead is more or less essential to success, are security, concurrency and performance.