I see way too much confusion in these comments.
There are a number of different skills being discussed here. Interaction design is about how a user can interact with the application, how it makes sense and flows (among other things). UI is more nebulous and seems to be used in all kinds of ways, though most people I know who talk about UI are talking about a combination of interaction design and graphic design. And graphic design is more about layout, colors, fonts, etc.
I think developers get a bad rap for designing crappy UIs when it’s often not their specialty to do so. What about the loser management who thinks these aspects are unimportant and that it’s like finger painting for kindergarten kids to design a UI? So they spend lots of money on developers but skimp on or ignore the interface?
I see developers being pushed into interaction design way more than the other way around. Developers have lots of criticism leveled at them for bad designs. Would the software be any better if UI designers were pushed into writing code after they’d already worked a full day and as an afterthought by the management? Especially without having the skills or interest in doing so?
As far as the comment “stick to coding and leave the graphic design to the experts,” I agree that it’s best to have people that are really good at an area of expertise. But if anyone wants to put the time in to really learn and understand, they could become at least baseline-competent in either of these areas. It’s not like either UI design or development are impossible to learn. But each DOES require training and practice to become good.
The thing that would actually help the most in many business settings would be for management to hire the right staff to do the job. If they can’t do that, then it would at least help to train people and get them the information, skills and resources they need to do their jobs. Oh, and yes, set realistic deadlines.
As far as their being many more developers involved in open source projects than designers. Maybe more designers need to get involved instead of whining about how out-of-touch the developers are.