One of the best article's I've read in the past month is entitled Heuristics for User Interface Design In short, it's a set of suggestions rather than rules, that should be kept in mind when designing a user interface or experience. I'm tending to lean away from the word interface, as an interface is only good if it's experience is effective. Gmail's experience is what affects me, it's interface is just what I look at rather than what I use.
What's even more impressive about this list is it was first developed in 1994. I don't mean to sound condescending in terms of advice coming from 15 years ago, but it's shocking to me to find interfaces such as Google's, Twitter's, and Basecamps so incredibly in line with every single heuristic recommended.
My personal favourites:
Visibility of system status
The system should always keep users informed about what is going on, through appropriate feedback within reasonable time.
User control and freedom
Users often choose system functions by mistake and will need a clearly marked "emergency exit" to leave the unwanted state without having to go through an extended dialogue. Support undo and redo.
Aesthetic and minimalist design
Dialogues should not contain information which is irrelevant or rarely needed. Every extra unit of information in a dialogue competes with the relevant units of information and diminishes their relative visibility.