achei esta pérola nos guidelines de design atualizados para o Windows 7. a lista é imensa, veja aqui uma amostra:
Design experiences, not features
Design experiences from beginning to end, not just individual features. And maintain your standards throughout the entire product experience. For example, if you program's setup is hard to use and is buggy, users will assume your program is hard to use and buggy too. Why should they assume otherwise?
Be great at something
Think about how real users (not the marketing or PR departments) will describe your program. Identify your target users and make sure they can say "I love this program! It does A, B, and C super well!" If users can't say that about your program, what's the point? Today, "good enough" is no longer good enough—make your users love it.
Don't be all things to all people
Your program is going to be more successful by delighting its target users than attempting to satisfy everyone. Remember that it is literally impossible to focus on everything.
Make the hard decisions
Do you really need that feature, command, or option? If so, do it well. If not, cut it! Don't avoid difficult decisions by making everything optional or configurable.
Make the experience like a friendly conversation
Think of your UI as a conversation between you and your target users. Suppose you're looking over a user's shoulder and he or she asks, "What do I do here?" Think about the explanation you would give...the steps, their order, the language you'd use, and the way you explain things. Also think about what you wouldn't say. That's what your UI should be—like a conversation between friends—rather than something arcane that users have to decipher.
aqui está a lista completa: leia, compartilhe, espalhe e... aplique :) How to Design a Great User Experience