If only the battle for better user interfaces could be won so easily. The problem is, electronic products today are becoming incredibly complex. Device manufacturers, whether they’re building massive routers or miniature MP3 players, are constantly adding more functionality in an ongoing effort to outflank the competition. It’s a battle of “mores”--more features, more megapixels, more connectivity options--and it’s creating products that people find harder and harder to use.
Ask yourself, when was the last time you truly mastered a television remote? Or a cellphone? And if you did, how much of your life (and patience) did you lose in the process? And what about the products that you or your company have created? Do your customers find them easy to learn and use?
There’s a good chance they don’t. Last year, a researcher at the Dutch University of Eindhoven found that about 50% of returned products are in perfect working order. So why are they returned? Because consumers can’t figure out how to use them.
A bad user interface can kill a good product, be it an Internet phone or an industrial control system. Fortunately, there a few good ways to prevent this from happening. First, realize that the user interface can be a true differentiator and work on it from day one. By this, I don’t mean that your UI should be sexier than everyone else’s, but rather, should complement how your users actually work, think, or play. Ease of use must be designed in, and tested with real users, not added as an afterthought.
For inspiration, think Google. It offers an almost endless parade of services, but its home page is simplicity itself. So simple, in fact, that even your grandmother can use it--which is why everyone else does, too. Much the same goes for the Apple iPhone and Nintendo Wii console: they’ve both redefined their respective markets, not because of revolutionary functionality, but because they introduced user interfaces that people can actually understand and enjoy.
That brings us to the next principle: Never overestimate your users. Even the brightest user will have a bad-brain day. Meanwhile, the average user will possess, surprisingly enough, average intelligence. So don’t blame your users if they have trouble learning your system or if they press buttons in some “foolish” way that causes an international incident. Whenever Jonathan Swift, the author of Gulliver’s Travels, wrote something, he would read it out loud to his uneducated house staff. If they didn’t understand it, he edited the text until they could. Take the same approach with your customers when creating UIs, and you’ll help prevent user errors--while building an enthusiastic client base.
Next, choose the right platform. The most brilliant UI is useless if it locks up or becomes unavailable because the system is too busy doing something else. In a car, for example, a busy telematics system that takes seconds to respond to a voice command or touchscreen press isn’t just annoying; it’s downright distracting, much to the detriment of the driver and anyone else sharing the road.
Likewise, if the HMI for a chocolate factory control system stops responding whenever the system experiences a high level of motor control, then operators can’t take action if a critical event occurs. Fifty thousand ruined candy bars, anyone?
The more complex the system, the more likely such problems will happen. To avoid them, system designers must choose operating systems and middleware frameworks that can provide a guaranteed amount of CPU time and memory for user-interface functions, regardless of how busy the system becomes. Such resource guarantees can also thwart denial-of-service attacks and other network-based exploits that monopolize system resources and thus prevent users from accessing the UI.
Most importantly, choose the right UI. Don’t limit yourself to a conventional WIMP (Windows-Icons-Menus-Pointer) interface. Improvements in noise cancellation and speech recognition technology, for example, are making it easier to create voice-controlled interfaces for a number of environments and applications.
In fact, some systems do best with multiple forms of computer-human interaction, not just one. Consider, for example, an in-car infotainment unit that offers 3D navigation, realtime traffic reports, CD/DVD playback, and iPod connectivity. A voice-controlled interface, with its ability to minimize driver distraction, is a natural choice here. That said, some functions will always be easier to control with a quick and simple button press. Thus, the system may also need a touchscreen, along with a few physical buttons.
But here’s the thing. It isn’t easy to determine up front which functions should be controlled by voice, which by touchscreen, which by physical buttons, and which by some combination of the above. You must work closely with users to gauge which mode of interaction (or which combination of modes) works best and then fine-tune your interface accordingly.
All this calls for a software architecture that not only supports multiple forms of user interaction, but also allows a feature to be controlled by a GUI one day, and by a voice interface the next. In other words, you need an architecture that keeps your UI design options open. The bottom line: To create a successful interface for any complex product, you have to go beyond skin deep. You must be concerned not only with the layer that the user sees, hears, or touches, but also with the underlying software that ensures the interface always responds quickly and decisively to user input.
Because, after all, users don’t want to simply look and click. They want to feel that they’ve conquered something as well.
Known in many circles as the "Godfather" of the embedded software industry, Dan Dodge is currently CEO of QNX Software.