If I may restate your most valuable point...
Good design trumps good programming every time!
I'm ending my 30th year as a programmer/analyst. A few life lessons for those who DON'T remember the whacky poet, reciting, hallucinogenic lines with flower in hand, on Laugh-In.
First, coding is easily changed... a bad design can't be fixed with code.
Second, the people who request the project are never quite sure what they want until they see it, will probably not tell you everything you need to know, will always add to the specifications before completion, have far less system design abilities than they think, can't or won't see their project in a company-wide vision, and have the ability to effect your employment status.
Third, the second point will never change.
Fourth, Some things gets better. Now designers & programmers enjoy what I lacked for half of my career. Tools and writing environments to "develope-by-prototype". Designs, tables, reports and screens (forms ??? bah!) can be developed and auditioned so quickly that management can provide timely and effective feedback during the design cycle. No late re-design work often saves 50% of the implementation time.
The Cobol daze - remembered but not missed.
Keep Up with TechRepublic