A lively discussion happens whenever UX folk gather to discuss how a UI has been organized. We all have our opinions, but our reasons are often unclear.
Many of us start an analysis by pinpointing personas (roles) and then figuring out the tasks our target users want to complete in order to meet their goals. We spend a lot of time focusing on the tasks and writing them up in various ways, using use cases, stories for agile or storyboards. These stories help us keep the requirements in line, and are guidelines to test against during development.
But is this task-focused design approach the best way to help our users meet their goals?
There’s an alternative that can use our task-driven personas to provide a simpler navigation structure for users. Instead of tasks, it’s focused on objects (think nouns).
Object-focused design is an approach used by software development, and has a long and distinguished history. This basic and elegant UI design approach doesn’t seem to get the press that it deserves, so we’re presenting it again.
Tasks are Secondary
The original “object-oriented” methodology has been around since the 1950s, so it’s not a new concept. We’re very happy that Tom Dayton has brought this topic back to the forefront in an article entitled Object-Oriented GUIs are the Future.
Although the term “object-oriented” is primarily associated with software programming, Dayton’s definition reminds us of how it can be applied to a broader context:
“‘Object oriented’ in this sense has nothing to do with whether object-oriented programming is used. Instead, it means that the user interface as perceived by the user is oriented to the users’ domain objects rather than to the computer software applications.”
Pioneers in GUI design in the 1980s (I’ve listed some related reading at the end of this post) built upon research about the most intuitive paradigm—and hence, interaction—for users, which is noun-verb, not verb-noun (see Why Verbs are Hard to Learn [PDF] by Dedre Gentner).
In fact, several early operating systems were designed from this concept and have evolved the thinking into some of the more intuitive GUIs in use today:
Dave Collins’s classic book, Designing Object Oriented Interfaces defines the following characteristics of object-oriented user interface design:
- Users perceive and act on objects
- Users can classify objects based on how they behave
- In the context of what users are trying to do, all the user interface objects fit together into a coherent overall representation
Let’s look more closely. As users, it’s likely that we are first inclined to think about the object first, and secondarily – what we do with it. This is a major distinction.
Here’s an illustration of the difference. When a user wakes up in the morning and starts to organize the day, which mental model is more likely?
Although in this case the verb connected with all nouns is “wash,” we’d venture that users are thinking noun-verb, not verb-noun.
For a quick real-world example, look at some travel sites. We looked at the classics: Orbitz, Kayak, Expedia, Travelocity, Priceline—every one of these sites includes the objects flights, car/rail, hotels and deals.
Design with Objects
What does this mean for us as UX designers? Well, for more intuitive designs, try keeping these rules in mind:
- Navigation is centered around objects—nouns, not verbs
- Objects are always the primary representations in the UI
- Actions (verbs) performed on the objects comprise the tasks
- Tasks are secondarily represented by actions on objects
In summary, using tasks as a basis for interface design adds another layer for users to work through. So keep it simple, and use an object-focused UI instead.
What do you think? Do the most usable sites use an object-oriented approach? Please share your thoughts in the comments.
- Book: Designing for the User with Ovid: Bridging User Interface Design and Software Engineering by Dave Roberts, Dick Berry, Scott Isensee, John Mullaly
- Book: Object Modeling and User Interface Design: Designing Interactive Systems, Mark Van Harmelen
- Wikipedia: Object Oriented User Interfaces