I'm glad someone else sees the difference between the engineering of working software and the "process nattering" that seems to make up official "software engineering" as far as I can tell.
You do miss a couple of steps in the feedback loop:
1. "The 'high level' people at the start of the process have a built-in bias against iterative solutions."
2. "A built-in predilection to overdesign as they try to get everything right the first time."
3. The wild-ass guesses that make up the overdesign prove to be completely wrong.
4. The project fails miserably or succeeds, miserably.
5. The "high level" people perceive software as "very expensive", reinforcing their biases.
You do miss a couple of steps in the feedback loop:
1. "The 'high level' people at the start of the process have a built-in bias against iterative solutions."
2. "A built-in predilection to overdesign as they try to get everything right the first time."
3. The wild-ass guesses that make up the overdesign prove to be completely wrong.
4. The project fails miserably or succeeds, miserably.
5. The "high level" people perceive software as "very expensive", reinforcing their biases.