Documente Academic
Documente Profesional
Documente Cultură
Issue
431
Illustration by Sue Lockwood
Object-Oriented UX
by Sophia Voychehovski October 20, 2015
Published in Information Architecture, Interaction Design
Then I learned that the first development sprint kicked off in four days. Fourdays?! My
project manager calmly told me, Dont worry. The devs only need onetemplate for the first
http://alistapart.com/article/object-oriented-ux
1/12
6/3/2016
sprint. While they are building the first template, you can move on to the next.
Huh? How was I supposed to design a cog in a machine without first roughing out the design
of the machine?
Thinking myopically worked okay when we were designing in pages on fixed screen sizes; we
could get away with quilting together pieces designed in silos. I was pretty clueless about
responsive design, but I did know that wed need a clean and simple system, not pages strung
together. And as all engineers and designers know, the more moving parts in a system, the
more opportunities for disaster.
So during those first four days, I did not wireframe one disconnected template. Instead, I
blocked out a holistic system made of reusable, interchangeable parts. Heres what it looked
like:
ThediagramoftheproposedelectionnightexperienceIfirstpresentedtotheCNN.com
team.
I presented this diagram to a conference room of stakeholders who expected to review a
single finished template. I demonstrated that I had reduced the number of components and
templates compared to our 2008 design, and that the new system was simple enough to fit on
one 8.5 11 sheet of paper! Thankfully, a critical mass of people in the room saw the value of
what I presented: less stuff to build.
The diagram I churned out in 2012 was far from perfect, mostly in that I was trying to do too
much too soon. I jumped the gun on implementation, blocking out flyouts and bar graphs. I
was still thinking desktop-first, worrying about positioning, as opposed to prioritization. I
packed in a premature homepage, a cover sheet for the experience (which I would now design
last). I took a stab at persistent top-level navigation, instead of focusing on the content
modules first.
Although imperfect, the spirit of the diagram, and the thinking behind it, hit a chord with me.
It wasnt a sitemap; it showed no hierarchy. It wasnt a storyboard; it didnt block out a task
flow. Instead, this diagram mapped out a system of things. And it changed the way I do UX.
Stripping away interaction, persistent navigation, homepage, and layout, heres the diagram
http://alistapart.com/article/object-oriented-ux
2/12
6/3/2016
Stripping away interaction, persistent navigation, homepage, and layout, heres the diagram
that I would have created then if I knew what I know now, showing a system of three objects:
States(http://www2.cnn.com/election/2012/results/state/TN/), Races
(http://www2.cnn.com/election/2012/results/race/senate/), and State-Race Results
(http://www2.cnn.com/election/2012/results/state/TN/senate/).
HowIdpresenttheelectionnightexperienceifIweredesigningittoday.
It worked: our responsive election night turned out to be the Super Bowl Sunday CNN
executives hoped for. But we did it by the skin of our teeth, working late nights and weekends
to make sure the design performed on a myriad of devices. Im not sure we could have pulled
it off with a design any more complex.
Today, Ive evolved this trial-by-fire experience into a proven, structured object-based
process. In this article, I will introduce object-oriented UX, share my process of object
mapping, and help you start doing it yourself.
MikeAtherton
It took me about about a year to retrain myself to truly think mobile first
(http://www.lukew.com/resources/mobile_first.asp), but today, I do so even when
http://alistapart.com/article/object-oriented-ux
3/12
6/3/2016
OOUX is powerful
Newsflash! This is how your backend engineers work. In the 80s, the software engineering
community began to transition from procedural languages to object-oriented languages,
which have benefits like code reuse, data encapsulation, and easier software maintenance.
Most programmers bring your designs to life using object-oriented languages like Java, Ruby,
Python, C++ or C#.
Engineers start their process by mapping out the objects that make up the problem domain
something UXers should be doing from day one. When they look at your wireframes or
prototypes, they first reverse-engineer your design to parse out the objects. They think, How
will object X talk to object Y? Will object A be made up of lots of object Bs? Which attributes
will each object have? Will this class of objects inherit from that class of objects?
On the web, we develop object-orientedly, but still design procedurally, focusing on drilldown hierarchy or linear task flows. But theres another option. In his 1995 book, Designing
ObjectOrientedUserInterfaces(http://www.amazon.com/DesigningObjectOriented
InterfacesAddisonWesleyTechnology/dp/080535350X/ref=sr_1_1?
s=books&ie=UTF8&qid=1441640610&sr=1
1&keywords=designing+object+oriented+user+interfaces), designer and engineer Dave
Collins argues that basing both front-end and backend design on object-oriented principles
brings coherence to the software development process. Object-orientation reveals deep
http://alistapart.com/article/object-oriented-ux
4/12
6/3/2016
If we are thinking object-orientedly, we will experiment with ways that each object might
relate to other objects, looking beyond the obvious. Maybe chefs have favorite ingredients? In
the object-oriented design below, a user can continually explore instances of these three
objects (recipe, chef, ingredient) without ever hitting a dead end. The content is the
navigation, and its all in context.
http://alistapart.com/article/object-oriented-ux
5/12
6/3/2016
Inthisobjectmodel,recipes,chefs,andingredientsareinterconnected,allowingcontinuous
exploration.
If this concept feels familiar, youve probably read about or practiced content modeling. In
the past five years, many information architects (see Mike Athertons work
(http://www.slideshare.net/reduxd/modelingstructuredcontentias13workshop)) and
content strategists (see Rachel Lovingers work(http://alistapart.com/article/content
modellingamasterskill)) have started focusing on systems of reusable content types, and
becoming more involved in the design of CMSes: the content creator, not just the end-user, is
a primary user.
In her book ContentEverywhere(http://rosenfeldmedia.com/books/contenteverywhere/),
Sara Wachter-Boettcher encourages us to model our content before diving into wireframes
and interaction design:
Contentmodelinggivesyousystematicknowledgeitallowsyoutoseewhattypesof
contentyouhave,whichelementstheyinclude,andhowtheyoperateinastandardized
way.
Unfortunately, the art of content modeling is still unfamiliar to many UX designers, who hear
content and assume it doesnt apply to them. This is especially true for UXers who deal with
software as a service or product design: strategies involving content sometimes fall on deaf
ears.
Object mapping
Object mapping, my process behind OOUX, is content modeling for designers who do not
deal with content in the traditional sense, but still need to design systemsand not just
systems of implementation(http://bradfrost.com/blog/post/atomicwebdesign/). While a
tight collection of reusable templates and modules is invaluable, those design patterns dont
hold meaning for a user unless theyre backed by a system of real-world objects that matches
that users mental model. Focus first on designing the system of real-world objects, then on
designing a system of implementation to bring it all to life. This is the linchpin of all my
design work, because it transforms goals into an executable system that meets those goals.
Get out your sticky notes, grab your team, and clear some wall spaceId like to walk you
through my process.
http://alistapart.com/article/object-oriented-ux
6/12
6/3/2016
through my process.
Highlightingthenounsinourprojectbriefisthefirststeptomappingourobjects.
Recognizing nouns is first-grade simple, but extracting objects does require some subtle art:
We pay special attention to nouns that keep popping up, like challenge and solution.
Those will be important
http://alistapart.com/article/object-oriented-ux
objects.
7/12
6/3/2016
Wewriteeachobjectonitsownstickynotetovisualizethebuildingblocksofoursystem.
Next, we need to define what the objects are made of.
STEP 2: DEFINE CORE CONTENT OF OBJECTS
Contentmodelingrequiresyoutosimultaneouslyunderstandyourgoalsatthehighest
levelandgetintimatewithyourcontentsmostminuteattributes.
SaraWachterBoettcher,ContentEverywhere
Quite. We just determined the macro building blocks of our system, and now we must
determine the most granular elements of each. This activity is often reserved for eleventhhour detailed design, but defining elements while in the medium of sticky notes is liberating
when you start sketching a little later on, you can focus on more creative aspects. Also,
having early conversations about what makes up each object can help you avoid moments
late in the game where an important element is left off (or extraneous) and the change needs
to be made across several design documents.
Most importantly, you can have conversations with your team such as, Should DIYers be
http://alistapart.com/article/object-oriented-ux
8/12
6/3/2016
Most importantly, you can have conversations with your team such as, Should DIYers be
able to add their budget onto a challenge? before non-designers are looking at wireframes or
layout. This helps keep conversations focused, rather than getting stuck on something like the
icon for budget.
At this point in the process, I separate two types of elements: core content and metadata.
Core content, like text and images, goes on yellow stickies. Metadataany data that a user
might sort or filter onI put on red stickies.
Thegranularelementsofeachofourobjectsaremappedoutwithadditionalstickynotes.
If your team isnt sure about a potential piece of content, write it down anyway and just add a
question mark. Move on and return to it later.
STEP 3: NEST OBJECTS FOR CROSS-LINKING
And now the system comes alive. Do a series of thought experiments for each object. Starting
with one object, consider ways that each of the other objects can nest inside that given
object. As you nest objects, you are defining the relationships between them, and, implicitly,
the contextual navigation as well. Using blue stickies, experiment with how each object might
nest its other sibling objects.
http://alistapart.com/article/object-oriented-ux
9/12
6/3/2016
Wefinishoutthemodelbyaddingstickynotesthatshowhowothercontentobjectscan
nestwithineachobject.
For example, heres how that conversation might go for our challenge object:
DIYer: Easy, the DIYer is the author of the challenge.
Solution: This is the main nested object of a challenge. We need to show all solutions
posted to this challenge.
Brand: Eh, not really? Brand will be a part of the solution modules (as an author of the
solution), but probably not directly nested into a challenge.
Product: Again, part of a solution, not directly nested. Huh. Unless DIYers can post the
products they already have at home?
Comment: Hmmm. Probably relegated to solutionshould we keep all commenting on
the solution? Or should brands and DIYers perhaps be able to post questions directly to
the challenge? We need to explore this more.
Note that not everything is figured out. Some items, like the commenting discussion, might
be best resolved during sketchingbut you will be intentionally exploring an identified
design problem, as opposed to that problem catching you by surprise.
STEP 4: FORCED RANKING
Ugh. This is the most diabolically difficult step. In the prior steps, its very important that you
wrote each element and nested object on separate stickies. Why? Because now we need to
reorder the elements, from most to least important.
http://alistapart.com/article/object-oriented-ux
10/12
6/3/2016
Ourobjectmodel,reorderedbasedonhowimportanteachelementis.
This ordered list does not necessarily provide a direct representation of what will be at the
top and the bottom of the screen. In design, priority might manifest in size or color. Lowpriority content might be placed at the top of the screen, but in a collapsed panel (yay,
progressive disclosure!). So reassure your team that we are simply prioritizing and not
designing.
While prioritizing, imagine which elements will be most important to your users. Which bits
are must-have information and which are nice-to-have? When considering metadata, think
about the most important sorting and filtering mechanisms. If the default sorting will be by
popularity, then number of DIYers who like this will be high priority.
11/12
6/3/2016
http://alistapart.com/article/object-oriented-ux
12/12