There are those that don’t agree with me that user interface design and user interface programming requires skills that are hard to find. Perhaps they think this is something I say to fatten up my paycheck. But if they bother to inquire I always tell them the same story:
UI design and programming is like throwing a dinner party and the programmer and designer take on the role of a host.
Think of a dinner party you have gone to. Some people, some food. These are the basic requirements for a dinner party. Without these elements there is no dinner and no party.
Throwing a dinner party usually involves other tasks as well. Tidying up, laying the table, making dinner, putting on music, lighting some candles. However, chinese food out of the carton fulfills the same basic requirements.
Not seeing the difference between these two means you cannot make user interfaces.
The software developer that can look up from the code and look at the interface in front of him and spot that the table isn’t beautifully laid, that there is no music, she is a host. He has a sense that when the users open the interface it is a reflection of him. And she wants it to reflect well on her.
It’s not a question of an eye for detail – sometimes it’s the big picture that needs to be improved. It’s not a question of understanding the requirements – these things are often not documented in requirements but inferred from the design. It’s a question of playing host and wanting the guests to feel welcome.