User vary along numerous dimension: knowledge of the domain, the system expertise , frequency of use, etc.
Each user has different needs in interaction with the computer. A good interface should provide support for each type of user. To ease exploration and learning of an application or a system it is important to make fundamental functions easy to learn, make frequent functions easy to perform, and to encourage exploration by minimizing the consequence of an error, by providing recovery options. In addition system defaults should produce the most likely outcome.
It should be easy to access the menus in the system. The wording of the menus should be distinct and specific to make them easier to remember. For consistency one can gray-out options that are not in use or are not valid within a specific context. Shortcuts to options/functions that are frequently performed should be provided. Also permit users to create command sequences or macros that will make their work easier. Reduce keying requirements by providing command keyword completion. Do not require the user to reenter data that can be extracted from data already in the computer. Do not require users to enter the units of measures.
The user should be able to update the information both during and after entry. That is, the user can update the information he has authority to alter. Also he should be able to recover from unwanted or incorrect actions by, a function that exist in many systems that achieve this is the ``undo'' function.