There are 8 golden rules of user interface design, as proposed by Ben Shneiderman, a UX and UI design pioneer.
1) Strive for consistency
2) Enable frequent users to use shortcuts
3) Offer informative feedback
4) Design dialogs to yield closure
5) Prevent errors/Offer simple error handling
6) Permit easy reversal of actions
7) Support internal locus of control
8) Reduce short-term memory load
I would propose a 9th rule,
9) Be flexible when implementing these rules
Specific client needs will dictate how to prioritize the usage of these rules. The client should never be taken out of the equation, and it might be the case that one or more of these rules results in superfluous and obtrusive design (as well as an additional development expense). Where simplicity is one of the main guiding principles in UI design, and to paraphrase Ockham’s razor, we should not make use of more guidelines than are necessary to successfully accomplish our task. This is, of course, not to discard the importance of these rules, but rather to reconsider their usage contextually; this will ensure that they are applied toward the success of a design, and not otherwise.
Specifically, let’s take as an example rule 2. While enabling frequent users to use shortcuts may be helpful for some desktop applications, this would almost certainly not be the case on the application’s smartphone counterpart. Yet another example, this time considering rule 8. Advanced applications for power-users would need a vast number of features and therefore a more complex interface; although we would be adding to the short-term memory load, in this particular case, such a design decision might be appropriate.