And the more I see the results of "design on the fly" (pardon the pun) in mainstream products like all of the 157 Microsoft portals, it's clear to me "agile", "CI/CD", and all the other cool buzzwords around this philosophy simply hide the fact that no one is thinking about the end before they begin. At least with waterfall you had to consider what "finished" might look like. Now? It's a dogs breakfast with constantly changing UI, levels of abstraction that make no sense, duplicate ways of doing similar things - none of them well thought out - and generally no cohesiveness at all to the product. And that's just O365, but I've seen it in other "go fast, break things" products as well.
Good engineering and design is hard. Being able to change your mind - and the product - every time it becomes clear you haven't thought something through, or living in your own little world and not thinking about how what you're doing interacts with the larger whole, well, that's easy. It doesn't require thought or imagination and it allows you to keep pushing difficult design decisions down the road until there's no way out but to start all over now that you have some clue what you are doing. How about we just admit that "fast" isn't the end-all. Real engineering, real design matters too. And thinking about a usable end state and what it will take to get there needs to be part of the plan.
I used to work with guys that thought of their designs as something that could be "elegant", and I saw that elegance more than once. Haven't seen it out of this new methodology, and I doubt that I ever will. Now get off my lawn.