The success of a software product depends on the fact that it is:
Useful: It should have the required functionalities to solve real-world problems.
Usable: It should be usable by the audience it was designed for.
Used: Not only should the product be potentially usable; it should also be actually used by the customer.
A good interface makes the software more usable. However, designing an immersive interface is not a straightforward task and, therefore, it has evolved into a separate discipline. Ben Schneiderman (an American computer scientist) proposed eight rules that can result in a better experience for an application’s user:
The interface should be consistent within itself. For example, the font should be the same for all buttons, the style of all textboxes should be the same, a color scheme should be followed throughout the app, etc. Moreover, there are some universal designs that have become a standard across all apps due to their popularity (e.g., a floppy disk represents the save functionality, an arrow to the left is to “go back”, etc.).
Shortcuts are for experienced users to use to execute tasks more quickly. For example, CTRL+Z
can be used to undo an action.
The interface should respond to the user’s actions so that the user knows that the system is currently processing or has processed the request – this response may be visual or audible. For example, a click sound when a button is pressed, an “error” dialogue message, etc.
A task usually involves input, processing, and output. Once a process has finished, it should convey to the user that it has been completed successfully or unsuccessfully. This way, the user can prepare for the next set of actions they will perform.
Before an error is committed, the system should be able to minimize it(e.g.,greying-out a button on a form before the required details have been entered). However, in the case that an error has already occurred, the interface should detect it, inform the user about it, and provide a set of actions to rectify it.
The interface should be designed in such a manner that the user has a sense of reversing an action (e.g., entering data incorrectly, deleting the wrong data, etc.).
The user should be in control throughout a process, i.e., they should have the authority to pause or cancel an operation. For example, a cancel button while a progress bar is being displayed, a back button to change settings in an installation wizard, etc.
An interface should not rely heavily on the user’s short-term memory; otherwise, the user may have to navigate back and forth between multiple parts of the interface to gather the required information. For example, using menus, intuitive shortcuts like CTRL+S
to save, breadcrumbs to show the current path, etc. are used to decrease the reliance on a user’s short-term memory.
Free Resources