"<i>and have some appreciation for elegance and beauty in a design</i>"<p>Understanding the big picture is an obvious requirement (and not necessarily easy ... perhaps more important is knowing when you don't have it, see some of the comments here about architects who switched problem domains), but too many people don't grok the correlation between elegance and beauty in design and how they make projects easier and sometimes just simply possible.<p>One note of importance that's related to how we aren't trained in those critical not so technical skills you cite is the what we're building is fantastically more complicated than anything concrete (so to speak :-) that others build (note that the most complicated microprocessors have a lot of software (firmware) in them).  One key sign I've found when I've gotten a design right is that it solves problems that I didn't know I had.  I think it takes a lot of experience to get to that point (by then I'd been programming nearly two decades, and studying on my own software engineering and design from the beginning).<p>Time requirements and logistics in our field can be <i>very</i> difficult, since you often don't know the scope of the project until you're part way into it.  The waterfall process works for you (it had better!) but it doesn't tend to work well for us ... and there comes in the least technical other skills you cite ("arbitrary client constraints", <i>oh, yes!</i>).<p>One final note: we can mostly get away with so many in our field being idiots because what we do is mostly less consequential, but if you noticed the recent stories about how medical radiation devices are <i>still</i> killing people you'll see we really aren't as far as we should be.<p>Thanks a lot for your reply.