
User Interface Design Part 2
User Interface Design Pt. II
This article continues the discussion on user interface design. In the first part, we looked at some ideas and methodology in the design process, asking questions like what makes a good screen design and what can be done to make a screen easy to use? This article looks at the bigger picture; how do the different screens work together, what constitutes an intuitive and productive application and what techniques can be used to assess this?
Click Analysis
One of the most effective means to assess the productivity and workflow of software is to perform a click analysis. That is, to count the number of clicks needed to achieve the fundamental tasks. For example, once the application is open, how many clicks does it take to create a new file, save the file or import some data?
Having gathered this data, it is possible to take a step back and examine the number of clicks taken to achieve various tasks. This analysis need not be exhaustive; it is acceptable to examine only the key tasks within the application, or perhaps a set of localised tasks within a specific part of the application. Ideally, the most common or important tasks should take fewer clicks than the minor ones. If this is not the case then it is usually a good indication that the design and workflow of the system need to be improved. Do you really need to drill through menus, submenus and dialog boxes to access the desired functionality or could it be made available on a toolbar?
For instance, if it emerges that the number of clicks required to access a particular important screen varies quite widely, then it is an indication that the navigation system needs work. This will vary depending on the nature of the application but, ideally, the important functionality should be no more than a few clicks away.
Identifying a problem tends to be easier than fixing it and it is better to avoid the problem in the first place. So what proactive methodologies and techniques can be adopted? The following sections consider a few.
Goal-Driven Design
In order to achieve a productive application, the design of the user interface must be goal-driven. The developers or user interface designers must stay firmly focused on the purpose of each screen and its overall goal. Instead of flooding the user with hundreds of options, a developer must decide upon the most efficient logical flow of user interaction and design a screen or sequence of screens accordingly.
Many operating systems, such as Windows, have very established design patterns that approach user interaction in different ways. For example:
- Wizards:
- Tabbed Pages:
A sequence of pages with "Previous" and "Next" buttons. Users achieve their goal in an intuitive step-by-step manner.
One screen, with tabs at the top, allowing the user to "flip" between pages of information. This approach is typically used to fit a lot of information into one space.
While there are plenty of patterns available, which should be reused, choosing the correct one is critical. Wizards, for instance, are very popular but force the user down a single path. The user can choose whether to complete the wizard or not, but cannot pause part way through and cannot typically interact with other parts of the system, e.g. for reference. Tabbed interfaces are even more popular and more commonly misused. Tabbed pages do not indicate a “proper sequence” of interaction; rather, they should be used for a series of independent operations, and certainly not to cram information.
At OCC, ascertaining the goals of an application is an iterative process. The first phase is to examine the functions of the system, and predict what tasks will be the most common and important. The subsequent phases introduce amendments and new requirements based on user feedback.
We accord great value to user feedback as this is always a great source for ways to improve our software. It can sometimes be the only way to identify problems, especially the small ones.
Translating the goals of the system into a user interface is by no means easy. Microsoft, for instance, have recently completed Microsoft Office 2007, which has seen an investment of billions of dollars over many years, predominantly to improve the user interface. Breaking away from classic user interface designs (and mistakes) takes a significant amount of work.
For software of any scale, it is important for developers to keep in mind "How can the common tasks be made as easy as possible?" For example:
- Promote Related Functionality:
From any given screen in an application, it is possible to know or guess what the user may want to do next. Providing easy access to this functionality not only helps the user move on quickly, but also assists unfamiliar users. Windows Explorer offers a “task pane” which advertises some of the typical actions relevant to the user’s activity.
- Building Flexibility:
While developers may expect the system to be used in a certain way, the reality may be quite different. Users may want to achieve the same goal via any number of different routes. User interface designers should anticipate this and offer as much flexibility as possible in terms of navigation systems and the appropriate division of large screens into smaller ones.
Allowing out-of-sequence actions to be performed in this manner is very beneficial to the user, who will much appreciate the ability to “come back and change things”, should they need to. This is especially beneficial to inexperienced users who may not be aware of every step required to achieve their goal.
Avoiding Dead Ends
Another common problem in large applications is hitting a software brick wall. Halfway through a task, the user finds that one of the features they need to use is disabled. When the reason for this is unknown, the user is left with the difficult task of making trial-and-error changes to re-enable the feature. To eliminate this scenario, disabled features can be accompanied by:
- Explanations:
When something is not possible or a feature is not enabled (and the reason is not obvious), the user should be told why. In SPOCC, we use a system of notification icons with tooltips.
- Tips:
In many cases, telling the user why a feature is disabled is insufficient. The user may not know how to fix it or even where to begin. Offering a bulleted list of steps to fix or address the problem will help users to continue working without getting stuck.
Context Sensitivity
We have already discussed the idea of promoting related functionality using visual elements such as task panes. This concept can be developed further by adapting the appearance of the user interface and the behaviour of the application to the context of the user’s current activity. For example:
- Tailoring the User Interface:
It is generally helpful to bring functionality related to the current activity to the foreground. Not only that, it can also be worthwhile to push unrelated functionality to the background. While the main menu should typically remain a static place to access all functionality, the toolbars and context menus can be changed, partially or completely, to suit the current activity.
- “Intelligent” Behaviour:
Most applications allow users to navigate freely and independently between a number of different screens. Typically, a user’s path through the system goes unnoticed by the software. However, taking advantage of this "history" can allow the application to predict or suggest options to the user. For example, in OCC’s contract management system, if you click on "Create New Contract", you get the new contract screen. If you are viewing or have just created a supplier record, and then click on "Create New Contract", the software can infer that you intended to create a contract for that supplier. The software can therefore pre-populate the "Supplier" and related fields, required on the new contract screen. Techniques such as this probably improve efficiency only by a matter of seconds but these small "finishing touches" mount up and make for a more productive and user-friendly system overall.
Ongoing Development
User interface design is a challenging field. Bugs aside, there are plenty of gripes to be had with most available software. A single application cannot be expected to work exactly the way each of its users would like, as people tend to use software in their own way. However, user interface designers and developers can strive for a design that suits the user best, and should attempt to improve upon it.
At OCC, we draw upon our own expertise with software, along with our clients’ experiences in order to deliver applications that work for them. We strive to produce software that is not only functional, but easy to use and intuitive. We certainly do not claim to have perfected it, but we are open to suggestions.

