Take a debate about a popular OS mainly directed at personal computing as compared to its competitors, give it an infinite amount of time, and you will always see the debate resolve around a discussion between two stereotypical kinds of people :
- The “design” clan. These guys are craving for a clean design. They believe that things like features, flexibility, and user independence are incompatible with a good design, and as such they are ready to ditch those in their quest for the perfect design that works best for the majority.
- The “openness” clan. They care more about the things which the design clan ditches, because they think that the perfect design does not exist for more than a person and to and that optimal results require a flexible system and an user that’s ready to take some time to learn it.
The first group also frequently invokes user experience or usability as the main virtue it’s looking for, but that’s wrong use of words. In fact, even the “design” word is wrong when describing them. Usability experts define usability at the combination of three factors :
- Can the user figure out how to use the system and use it without errors ? (what most people call usability)
- Can it use the system in a fast and optimal way ? (efficiency)
- Is the user satisfied with the system ? (satisfaction)
The second factor is a virtue that only the openness clan may get to its fullest extent. As an example, in the world of text editors, vi is fast and efficient, but it requires some tedious learning, so it’s not for everyone, and the design clan will just ditch it right away for not being a perfect, universal design. Both clans are generally satisfied with the systems they’re advocating.
There’s an issue in this dichotomy, in my opinion. It’s the way people somehow assume that a complex system will always prove to be tremendously complicated to learn and use. The equation of complexity and complication on user’s side is as fundamentally wrong as it’s extremely widespread on the internet, and it’s not until this myth is busted that the two groups mentioned above will manage to stop silly fights and unite to advocate and create the optimal system.
Why is it so wrong ? Why is it a myth ? Because equating complexity and complication for the user is nothing but totally forgetting two major aspects of design :
- Defaults : I don’t know why so many people overlook these… In short, nothing prevents one from creating a “universal design” that’s likely to be loved by most people within a flexible system. It’s just a matter of putting the right set of settings as defaults on the system. Those that are satisfied keep that set of settings, those who want a device better suited for their specific needs and are ready to take some time go have a look at the available settings. Everyone’s happy.
- Hierarchy : Another fundamental part of good design. Take an “old-style” candybar Nokia cell running s40. It may not look like it, but it packs hundreds of features and settings, which can go as specific as providing users with the ability to switch to a different ringing mode when the phone is connected to a power adapter. Still, when you open the menu, what’s displayed is not a list with hundreds of items, the iOS way. It’s an icon grid with 9 items. Such is the power of hierarchy.
And before you say “but using hierarchy means having users dig through its levels for common tasks” – no, it doesn’t. Hierarchies don’t have to be symmetric. On s40, as an example, like on most other old-fashioned mobile OSs, you don’t have to open the menu for calling (type the number and press green key). On Symbian, you don’t have to do it for texting and other communication-related activities either (type beginning of the contact name, select contact, press “right” key). Even when you do have opened the menu, you get direct access to the most frequently used items (messaging, multimedia player) while less frequently used ones (calculator, specific settings) can totally be one or two layers of hierarchy away. If we go to the desktop world, we can also mention Word/oowrite (many people use them as a rich text editor without having to care about their full word processor complexity thanks to the very existence of toolbars) or Windows Vista’s start menu (recent items and search at first level of hierarchy, full list at second level).
In short, let’s say it once again, complexity = complication for the user is a myth, pure and simple. If designers and developers take the time to think about defaults and hierarchy, nothing can go wrong for the user, no matter how complex the system truly is.
Complexity does have its issues, though. It is complicated, not for users, but for designers and developers. The more complex a system is, the harder it is to design it, and the more diluted design and implementation efforts become. Thus, in a world of finite development resources, it is important to limit complexity in order to make optimal use of these resources. What this in turn means is that more features simply for the sake of more features or for selling the new version of a piece of software is rubbish. Features must be useful. Features must be well-thought. Priorities must be set, and available development resources must be examined.
But never, ever, should people consider that features are the enemy of users per se. Only badly designed ones are.