Short and Sweet
No matter how complex the process the means of achieving a users goal should be clearly understandable to the user tasked with achieving the goal.
There is a difference simplicity (making a complex task simple) and being simplistic (making a complex task tedious).
1. Always keep the user informed.
At all times the system should provide clear evidence to users about where they are, what is happening, what their options are, and what the consequences of their actions will be. Make it blindingly obvious at all times what every item’s type is and what its current state is.
2. Always be consistent.
Labelling and naming conventions must be always applied consistently across all modules in the application. Performing the same actions should always produce the same expected results. Landmark items used for navigation should always appear where expected and react as they did before unless the reason for a divergence is clearly evident.
Users understand faster if they are visually ‘secure’ or they are confident in the help availability.
3. Never confuse the user.
Do not use technical system-based terminology, or cryptic error messages that non-technical people don’t understand. Don’t deluge the user with information irrelevant to their goals. Less is more but again, there is a difference between simplicity and being simplistic; clever design allows the user to provide the user with at least the option of easily accessing everything they may want.
4. Always offer help.
Online help can be invoked from any view and should ideally be context sensitive. Topics on offer should explain what is happening, what is required of the user, or how to perform the current available tasks. Any such information should be easy to search, focused on the user’s task, list concrete steps to be carried out, and not be too large.