Object Oriented UX

Object-oriented UX is a tool to help design content (objects) first from a user perspective, rather than jumping straight to actions (interactions, workflows, etc) from a systems perspective.

"Always separate thinking about real-world things from the documents which describe those things. Resource before representation." - Mike Atherton

How to create an object model

To get started, take a look at an existing system or your problem statement and extract:

  1. Nouns - these are your objects.
  2. Adjectives - metadata, attributes of objects, whatever you want to call it. This can be broken down into different categories:
    • Core content (ex: project photo)
    • Metadata users might filter on (ex: date posted)
  3. Verbs - these are your actions, CTAs, or interactions. It's easiest to save these for the end and focus instead on determining key objects for your users, then what they might need or want to do with them.

Questions to ask yourself during the process

  • Is it a tangible object users cares about or an abstract system concept? We are looking for the former. The idea is to match users' mental models, not the way the system is constructed on the backend.
  • What are the objects we actually care about for the purposes of this process? Depending on your goals and scope, there may be some objects you ignore.
  • Is this an object we invented or a generally understood concept? Concepts that are unfamiliar to users need extra consideration.
  • Is this an object or an adjective (attribute)?
  • Is this an object or a collection? Collections of objects are just that, not necessarily an object themselves.
  • Are there any inferred objects? For example, actions around 'commenting' might imply a 'comment' object exists.
  • Does an object keep appearing? It might be important.
  • Do these objects fit into different groups based on what the user is doing or how they interact with them? Consider what makes sense in the context of your goals and product. For example, in an enterprise app there might be objects that fall into the administrative side and objects that end-users view and interact with.

Other areas to consider

  • Map out relationships between objects and 'nest' objects as appropriate.
  • Brainstorm actions for objects based on your users.
  • Rank your objects and nested objects. What content is most important from the user perspective?

Why object-oriented UX?

  • Match your users’ mental model, rather than thinking from a system and action-perspective (no one cares about filters, they care about what they are trying to find using those filters).
  • Engineers are often working with object-orientated coding languages. They have to reverse-engineer your design to define objects (or components. Design systems come into play here too). With OOUX, those can be defined up front. No more reverse-engineering.
  • Defining objects gives you a shared language to get the whole team on the same page. No more reverse-engineering means less room for confusion.
  • Work towards simplicity and reusable components.
  • Modular objects are more friendly to phased implementation and iteration than sprawling, linear flows.
  • In a multifunctional group, centring around objects helps focus the conversation on what matters to users, rather than debating the icon or implementation. That can come later.
  • OOUX helps define navigation from a user-perspective and optimises for contextual navigation (get to content from another piece of content, rather than an arbitrary top navigation, for example). Better for users and SEO. It's a win-win.

What can you do with an object model?

  • Examine and (hopefully) fix mental model issues.
  • Get the team on the same page about what is what.
    • I worked on a data project where the concepts were more or less a reflection of the system and the model on the backend rather than user's mental model. Terms overlapped with other products but meant different things. Taking an 'object audit' of the live UI helped get the team on the same page internally, rather than discussing abstract terminology which we all understood differently. Listing out those objects also prepared us to rethink the mental model and test with users.
  • Test your system of objects and actions before spending hours on interaction design or engineering. Interconnected objects and action can be transformed into a lightweight prototype which may be used to discuss functionality with people.
  • Estimate the amount of work that might be required on a new project or redesign. How many objects? Which are crucial? How long might that take to build? Mapping out the relationships beforehand helps avoid surprises later when you realise adding a new feature also means adding settings, user role implications, etc.
  • Brainstorm actions from a user perpsective by starting with the objects they care about and the goals they want to achieve using them.
  • Identify opportunities to standardise, componentise, and reuse from a user perspective. OOUX is a design system's best friend. How many objects do you really need? What are their relationships? If a user is interacting with these 3 objects in the same way for similar reasons, might one pattern work for all of them?
    • On that same data project, even the rough draft of the object model started to surface opportunities to unify how we treated similar objects where currently users had to remember specific and unique paths to deal with each.
  • Identify content hierarchy by force ranking objects and nested objects.

Recommended reading

These are all great but here is my preferred reading order:

  • Object modeling for designings - This covers a complete breakdown of what and how. If you need a one stop shop, this is it.
  • Object-oriented UX - My favourite article on the topic. It dives more into why and a practical case study. Good for setting the scene but I found having some idea of OOUX from the previous article helped.
  • Object-oriented UX for interaction design - A follow up to the previous article, now looking at incoporating actions.
  • What is object-oriented UX? - This quick rundown gives you a practical example if you want to dive straight in with a pile of sticky notes.