User Interface means how a software looks on a user's screen. It is obvious that people will have less interest in using a software with bad user interface. So, user interface of a software must be good or excellent. In order to do that, software engineers must follow some rules for user interface design called golden rules. There are three golden rules and they are:
Place the User in Control
Users want to control the computer but does not want to be controlled by the computer. So, user interface constraints specified by the designer must simplify the mode of user's interaction with the computer. User interface must not frustrate the user. Design principles that places the user in control are:
Interaction modes must be defined in a way that will never force a user to do unnecessary or undesired actions : User must not be forced to do operations which he/she feels unnecessary. For example, user must not be forced to do spell check operation for editing a word, letter etc,.
Provide flexible interaction : Different users choose different types of interactions like mouse, keyboard commands, voice etc,. User must be given the chance to choose. For example, drawing complex shapes via keyboard commands frustrates users but doing the same via voice is simple.
User interaction must be interruptible and undoable by the user : User should be able to interrupt even when in a sequence of actions but without losing any progress. Also, any user action must be undoable.
Define interaction based on skill levels and allow the interaction to be customized : Users may be normal people or computer experts. It is better to allow some macros to be created by expert users to replace the same set of instructions used many times.
Hide all the technical internals from the normal users : User must go into the world of the software application when using it i.e. he/she should have no need to think about the operating system etc,. For example, users doesn't need to use operating system commands when using a software and should interact with the software itself.
Direct interaction with objects that appear on the screen must be possible : User must be able to manipulate objects needed to perform a task as if it was a physical object. For example, zoom an image or stretch an object to increase scale etc,.
Reduce the User's Memory Load
A software must not force a user to memorize anything. On the other hand, it should provide recall feature to provide data when it is needed by storing it in its memory. Design principles that reduces the user's memory load are:
Reduce the need for short term memory : Some complex tasks need users to memorize some recent data. User Interface must be designed such that visual cues are provided to the user which helps him/her in reusing previous results etc,.
Defaults must be meaningful : Suppose there are some properties like volume etc,. The default values of such properties must be meaningful i.e. generally used. But, user must be able to change the properties if he/she wants to. Also, user must be able to reset the properties to their default values.
Define intuitive shortcuts : There are many mnemonics like Ctrl + C to copy, Ctrl + V to paste, Ctrl + X to cut etc,. These shortcuts must be designed such that they are easy to remember i.e. Ctrl + C to copy is easy to remember as C is for Copy etc,.
Layout of the interface should be based on its real world counterpart : Suppose a software is designed to book a ticket for a train, bus etc,. The user interface must be in a way such that it looks like its real world counter part i.e. the screen must look how form (paper) looks like.
Display information in a progressive fashion : There should be levels of abstraction. For example, there are different types of underlines like double underline, single underline etc,. According to this principle, user interface must be such that general underline must be shown at low levels of abstractions and users can go to higher levels of abstraction by a mouse click etc,.
Make the Interface Consistent
User Interface must display or acquire information in a consistent fashion. This includes organisation of visual information according to design rules common to all types of screens, defining and implementing mechanisms for navigation from task to task consistently etc,. Design principles that makes the interface consistent are:
User must be able to put the current task into a meaningful context : The interface must be in a way that enables the users to know the context of the current task. So, there should be some indicators which say from which task did the user come here and to which task he/she can go from here.
Maintain consistency across a family of applications : This rule suggests that a set of software applications should implement same design rules if possible so that interaction gets easier with time.
If previous models have created user expectations, do not make changes unless there is a good reason : Suppose a special feature is provided in a previous version of the software application and its popular among its users, do not try to remove it or change it.
Hence, the golden rules for user interface design.
More articles: Gold