User Interface Golden Rules
User Interface Golden Rules
User Interface Golden Rules
The following rules are mentioned to be the golden rules for GUI design, described by
Shneiderman and Plaisant in their book (Designing the User Interface).
Strive for consistency - Consistent sequences of actions should be required in similar
situations. Identical terminology should be used in prompts, menus, and help screens.
Consistent commands should be employed throughout.
Enable frequent users to use short-cuts - The user’s desire to reduce the number of
interactions increases with the frequency of use. Abbreviations, function keys, hidden
commands, and macro facilities are very helpful to an expert user.
Offer informative feedback - For every operator action, there should be some system
feedback. For frequent and minor actions, the response must be modest, while for
infrequent and major actions, the response must be more substantial.
Design dialog to yield closure - Sequences of actions should be organized into groups
with a beginning, middle, and end. The informative feedback at the completion of a group of
actions gives the operators the satisfaction of accomplishment, a sense of relief, the signal
to drop contingency plans and options from their minds, and this indicates that the way
ahead is clear to prepare for the next group of actions.
Offer simple error handling - As much as possible, design the system so the user will not
make a serious error. If an error is made, the system should be able to detect it and offer
simple, comprehensible mechanisms for handling the error.
Permit easy reversal of actions - This feature relieves anxiety, since the user knows that
errors can be undone. Easy reversal of actions encourages exploration of unfamiliar
options. The units of reversibility may be a single action, a data entry, or a complete group
of actions.
Support internal locus of control - Experienced operators strongly desire the sense that
they are in charge of the system and that the system responds to their actions. Design the
system to make users the initiators of actions rather than the responders.
Reduce short-term memory load - The limitation of human information processing in short-
term memory requires the displays to be kept simple, multiple page displays be
consolidated, window-motion frequency be reduced, and sufficient training time be allotted
for codes, mnemonics, and sequences of actions.
The analysis and design process of a user interface is iterative and can be represented
by a spiral model. The analysis and design process of user interface consists of four
framework activities.
1. User, task, environmental analysis, and modeling: Initially, the focus is based on the
profile of users who will interact with the system, i.e. understanding, skill and knowledge,
type of user, etc, based on the user’s profile users are made into categories. From each
category requirements are gathered. Based on the requirements developer understand
how to develop the interface. Once all the requirements are gathered a detailed analysis is
conducted. In the analysis part, the tasks that the user performs to establish the goals of
the system are identified, described and elaborated. The analysis of the user environment
focuses on the physical work environment. Among the questions to be asked are:
Where will the interface be located physically?
Will the user be sitting, standing, or performing other tasks unrelated to the
interface?
Does the interface hardware accommodate space, light, or noise constraints?
Are there special human factors considerations driven by environmental factors?
2. Interface Design: The goal of this phase is to define the set of interface objects and
actions i.e. Control mechanisms that enable the user to perform desired tasks. Indicate
how these control mechanisms affect the system. Specify the action sequence of tasks
and subtasks, also called a user scenario. Indicate the state of the system when the user
performs a particular task. Always follow the three golden rules stated by Theo Mandel.
Design issues such as response time, command and action structure, error handling, and
help facilities are considered as the design model is refined. This phase serves as the
foundation for the implementation phase.
3. Interface construction and implementation: The implementation activity begins with the
creation of prototype (model) that enables usage scenarios to be evaluated. As iterative
design process continues a User Interface toolkit that allows the creation of windows,
menus, device interaction, error messages, commands, and many other elements of an
interactive environment can be used for completing the construction of an interface.
1.4. Interface Validation: This phase focuses on testing the interface. The interface should
be in such a way that it should be able to perform tasks correctly and it should be able to
handle a variety of tasks. It should achieve all the user’s requirements. It should be easy to
use and easy to learn. Users should accept the interface as a useful one in their work.
Task analysis ensures that the design is compatible with all the necessary tasks. It Identifies actions
and cognitive processes required for a user to complete the task or achieve a specific goal.
Through task analysis we can learn from the goals of the users, what they are trying to achieve and
ensure that the design is compatible with all tasks. A detailed analysis allows the identification and
understanding of the structure, flow and the attributes of each task and through the decomposition of
tasks into subtasks and their constitutive operations we can deliver relevant information to the
process design.
We can identify the tasks that must be supported and refine the interface and include for example,
through the steps of the user, a better navigation or search for your website or application. We can
determine the appropriate scope of content and create websites and apps that meet specific
objectives or tasks of users.
Task analysis also allows us to understand how users are influenced by their physical environment
and how knowledge and previous experience of the users influences the thinking about their work
and the workflow.
This type of analysis gives us relevant insights about how to design and assign tasks and to specify
the characteristics of the interface. Task analysis can be vital to the maintenance of a system and for
migrating a task to a a new system.
The results of a task analysis include a detailed description of the physical, perceptual and cognitive
activities involved in each task and provide information about its duration and variability, the
frequency of the task, the task sequence, tasks allocations, the complexity of the tasks, conditions of
the physical environment, data and information dependencies and tools needed to complete the
task.
GUI Requirement Gathering - The designers may like to have list of all functional and non-
functional requirements of GUI. This can be taken from user and their existing software
solution.
User Analysis - The designer studies who is going to use the software GUI. The target
audience matters as the design details change according to the knowledge and
competency level of the user. If user is technical savvy, advanced and complex GUI can be
incorporated. For a novice user, more information is included on how-to of software.
Task Analysis - Designers have to analyze what task is to be done by the software solution.
Here in GUI, it does not matter how it will be done. Tasks can be represented in hierarchical
manner taking one major task and dividing it further into smaller sub-tasks. Tasks provide
goals for GUI presentation. Flow of information among sub-tasks determines the flow of GUI
contents in the software.
GUI Design & implementation - Designers after having information about requirements,
tasks and user environment, design the GUI and implements into code and embed the GUI
with working or dummy software in the background. It is then self-tested by the developers.
Testing - GUI testing can be done in various ways. Organization can have in-house
inspection, direct involvement of users and release of beta version are few of them. Testing
may include usability, compatibility, user acceptance etc.