Jakob Nielsen writes about the 10 Usability Heuristics for UI Design. These are rules of thumb, which most often (but not always) hold true:
- System status should always be visible.
- The system should use the same words as the users.
- All actions should have easy “I did not want to do that” functions like undo.
- The system should adhere to standards and be consistent in its presentation.
- The system should avoid erroneous states with constraints and useful defaults.
- Make actions, elements and options visible to replace recall with recognition.
- Frequent actions should be personalisable.
- Reduce the interface to required information; form follows function.
- Support users in detecting, diagnosing and recovering from errors.
- Provide useful, searchable help.
The heuristics have persisted since 1996, that is, the time back when interface design was mostly clunky and grey; even several revisions have kept them mostly intact. I guess there seems to be something to them if they survive that long.