Re: Quality of design
My observation as code wrangler is the more time spent on design, thinking, and talking to users up front is well spent. Once you have a sound idea of where to begin the actual coding is often fairly straightforward. But what is often done is dump a vague 'design' document on top the programming team and isolate the team from the actual users. So you have team that does not understand the problem guessing what mismanagement wants without any input from users. A recipe for complete disaster.