>Engineering is about making things work, visual design is about creating an emotional connection. There are no formulas or rules that can be systematically applied to make a product feel right. People that think they are similar probably have never had the pleasure of working with a top visual designer.
Aside from the most broad of things(be concise, etc), what are some "formulas or rules that can be systematically applied" to make any piece of arbitrary software or solution well engineered?
They are both basically about "making things work". You can have cobbled together software that only does the bare minimum and just works but the actual code is a buggy clusterfuck or tackles problems that could be solved simply with needless complexity, just as well you can have a shoddy interface that allows the user to navigate/get whatever functionality out of the product that they need but is clunky and ugly, as the OP post in question in fact demonstrates; the original interface he designed on his own sucked by his own admission, but it worked in the bare minimum of the sense in that it facilitated access to the features of his thing. I'm sure you would agree with me that a great engineer/developer is not someone who just makes things work, but does it elegantly, manageably and efficiently as well. You could say the same of a great designer with the qualities I listed swapped out with whatever you think makes a great designer(makes things work beautifully, intuitively, whatever). Being an exceptional engineer and an exceptional designer both basically boil down to "design", be it in the software sense or the UX sense.
They are both somewhat subjective, lots of people have different opinions on software design principles as well as visual/UX design principles, but there are some basic guidelines which can be followed(most software people would agree that its good software design to get as much as you can done with as little code as you can, most designer people would agree that you should make functionality as intuitive for the user as possible).
I don't think that they are really a result of rote skill honed by practice, more a state of mind(though this can be reshaped through experience).
I just don't like it when people assume people who program are some kind of autistic robots who can only understand machines and not other people, or assume designers are some artsy-fartsy type who hasn't the time or will for the perceived rigid structure of coding. Or when people just want to stay in their bubble all day and never try anything new because they think they are afraid of failure or have preconceived notions about the task.
I do agree that I would rather have 2 people on my team, one who was an exceptional engineer and one who was an exceptional designer rather than one person who was so-so at both - but I be most pleased with someone who was exceptional at both, and I see no reason why one couldn't be.
Some great PG essays that are sorta inline with what I'm saying(I've been on a big PG kick lately):
http://www.paulgraham.com/hp.html
http://paulgraham.com/langdes.html
P.S. I apologize in advance to those upset by my use of engineer synonymously with software developer/programmer, I know some people get their panties in a bunch about this.