Software is no longer written using the waterfall approach...
Speak for yourself.
You agile folk like to claim that "requirements will always change, so let's plan for it and embrace it." Bullshit. Requirements only change when (1) people don't plan properly, and (2) developer and project managers cater to the whims of clients without charging what they should for change orders. If I hire an engineering firm to build a commercial building, I can't expect to keep changing the requirements after I sign off on the spec, the way people seem to think they can when they hire a software developer. The change order charges would be exorbitant, because with every change a traditional engineer will properly re-evaluate the plan from the ground up and adjust the infrastructure as necessary.
There's a joke out there about what would happen if structural engineers built structures the way software developers build software. I don't remember the exact punch line, but it doesn't take much imagination to realize that it's along the lines of "no one would dare use bridges or enter commercial buildings out of fear that they would fail." It's funny because it's true. We've set such low standards for software reliability that there is now an entire development methodology that advocates (and attempts to justify) a lack of planning and QC only of completed work, rather than QC'ing design plans BEFORE we waste time building something that may or may not pass QC.
Apologies for the rant, but the whole agile mindset just pisses me off.