Download - Gdc2013 macton usability_is_not_random
Usability is not random #[email protected]@MIKE_ACTON
Where do we apply usability lessons?
Where do we apply usability lessons?
Tools UIGameAPI design….everywhere!
Today’s goal
Mental model for recognizing and breaking down usability issues
Today’s goal
Mental model for recognizing and breaking down usability issues
Not even going to scratch the tip of the iceberg
Today’s goal
Mental model for recognizing and breaking down usability issues
Not even going to scratch the tip of the iceberg
Not a numbers talk
TL;DL
TL;DL The only way is to watch it live
TL;DL The only way is to watch it live Choice is bad
TL;DL The only way is to watch it live Choice is bad Choice is good
TL;DL The only way is to watch it live Choice is bad Choice is good 20 Questions is all you ever need
TL;DL The only way is to watch it live Choice is bad Choice is good 20 Questions is all you ever need Learning curve is bad
TL;DL The only way is to watch it live Choice is bad Choice is good 20 Questions is all you ever need Learning curve is bad Learning curve is good
TL;DL The only way is to watch it live Choice is bad Choice is good 20 Questions is all you ever need Learning curve is bad Learning curve is good One minute is worth 12 iterations
TL;DL The only way is to watch it live Choice is bad Choice is good 20 Questions is all you ever need Learning curve is bad Learning curve is good One minute is worth 12 iterations When in doubt, be like Maya
Working definition: Usability
Total time required to solve the specified problem at the desired level of quality.
Let’s get this out of the way…
Let’s get this out of the way…
What tools do you use to measure?
Let’s get this out of the way…
What tools do you use to measure?The only way is to
watch it live
Let’s get this out of the way…
What tools do you use to measure?The only way is to
watch it liveTo make things more usable, asking good
questions is way more valuable than better tools.
What is usability a function of?Context Information
densityMessage creation
Message translation
Message response
Let’s understand each of these elements by example…
Example 1: Search
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
Context is all agreed upon information.
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
Context is all agreed upon information.
What problem are we trying to solve?
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
Do we agree on what we’re trying to accomplish?
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
Do we agree on what we’re trying to accomplish?
Magic words? Music video? Etymology?Magic store?
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
What’s the impact of such a broad context?
Must visually parse the results…
Must guess at possible answer and click link…
Must visually scan page for answer…
Scroll…
Scroll more…
Keep scrolling…
Eventually… if we’re paying attention, get answer.
If not… start over with another link
Improving, but…
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
What if we had more context?
i.e. more agreed upon information
e.g. “computational knowledge”
…or files in a file system
…or models in an asset tree
…or google-fu
...agree on more context in advance
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
What if we had less context?
e.g. generic text entry box
e.g. generic text entry box
Less context = fewer constraints?
e.g. generic text entry box
Less context = fewer constraints?
How many characters?
e.g. generic text entry box
Less context = fewer constraints?
How many characters?
What kind of characters?
e.g. generic text entry box
Less context = fewer constraints?
How many characters?
What kind of characters?
What do we know about the problem?
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
The upper limit of usability is determined by the amount of agreed upon information we start with.
This is more usable…
…than this…
…but only if we agree beforehand that we’re searching for “computational knowledge”
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
The upper limit of usability is determined by the amount of agreed upon information we start with.
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
The upper limit of usability is determined by the amount of agreed upon information we start with.
i.e. More constraints = More (potentially) usable
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
The upper limit of usability is determined by the amount of agreed upon information we start with.
i.e. More constraints = More (potentially) usable
Choice is Bad
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
The upper limit of usability is determined by the amount of agreed upon information we start with.
i.e. More constraints = More (potentially) usable
Choice is BadTo make things more usable, solve more
specific, not more generic, problem.
Choice is Bad
How do you measure it?How do you know when to stop?
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
Hunt (What we’ve seen so far…)
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
Hunt
(Know what the end result is…)
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
Hunt
Play
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
Hunt
Play “I don’t know what I’m looking for, but I’ll know it when I see it.”
(Play)i.e. Iteration, Inspiration, Creative, …
In other words, (hunt vs. play)….
A Bxform
The only purpose of any program is to transform some data from one form (A) into another form (B)
In other words, (hunt vs. play)….
A Bhunt
When you know what (B) is
In other words, (hunt vs. play)….
A ?play
When you don’t
(Play)Many choices, quickly…
(Play)Recommend more choices,
quickly…
In other words, (hunt vs. play)….
A ?play
When you don’t know what you want…
In other words, (hunt vs. play)….
A ?play
When you don’t know what you want…
Choice is Good
In other words, (hunt vs. play)….
A ?play
When you don’t know what you want…
Choice is GoodTo make things more usable, present lots of relevant, comparable options quickly.
Choice is Good
How do you measure it?How do you know what to show?
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
Hunt
PlayVery different problems. Very different solutions.
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
Amount of the problem that can be solved with any particular message.
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
Amount of the problem that can be solved with any particular message.
Message = data associated with each step of a process
Start search
Start search
Visually parse the results…
Start search
Visually parse the results…
Guess at possible answer and click link…
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
No
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
No
Search text
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
No
Search text List of possibilities
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
No
Search text List of possibilities
Mouse scroll, page click
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
No
Search text List of possibilities
Mouse scroll, page click List more possibilities
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
No
Search text List of possibilities
Mouse scroll, page click List more possibilities
Link click
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
No
Search text List of possibilities
Mouse scroll, page click List more possibilities
Link click Page result
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
No
Search text List of possibilities
Mouse scroll, page click List more possibilities
Link click Page result
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
No
Search text List of possibilities
Mouse scroll, page click List more possibilities
Link click Page result
Mouse scroll,Page down
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
No
Search text List of possibilities
Mouse scroll, page click List more possibilities
Link click Page result
Mouse scroll,Page down More page result
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
No
Search text List of possibilities
Mouse scroll, page click List more possibilities
Link click Page result
Mouse scroll,Page down More page result
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
No
Search text List of possibilities
Mouse scroll, page click List more possibilities
Link click Page result
Mouse scroll,Page down More page result
Back button
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
No
Search text List of possibilities
Mouse scroll, page click List more possibilities
Link click Page result
Mouse scroll,Page down More page result
Back button List of possibilities
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
The amount that each message reduces the search space
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
The amount that each message reduces the search space
Every problem is like a game of 20 Questions.
Example 1: SearchContext Information
densityMessage creation
Message translation
Message response
a b r a c a d a b r a
This message is made up of smaller messages…
a b r a c a d a b r a
What does the first message tell us?
a b r a c a d a b r a
What does the first message tell us?‘a’ is U+0061, which is in the ‘Basic Latin’ Unicode block
a b r a c a d a b r a
What does the first message tell us?‘a’ is U+0061, which is in the ‘Basic Latin’ Unicode blockWhich means we’re likely searching in EFIGS
a b r a c a d a b r a
What does the first message tell us?‘a’ is U+0061, which is in the ‘Basic Latin’ Unicode blockWhich means we’re likely searching in EFIGSBased on context: Most likely in English
a b r a c a d a b r a
What does the first message tell us?‘a’ is U+0061, which is in the ‘Basic Latin’ Unicode blockWhich means we’re likely searching in EFIGSBased on context: Most likely in English
In dictionary of ~110,000 common English words, there are only ~6,500 words that begin with ‘a’.
a b r a c a d a b r a
What does the first message tell us?‘a’ is U+0061, which is in the ‘Basic Latin’ Unicode blockWhich means we’re likely searching in EFIGSBased on context: Most likely in English
In dictionary of ~110,000 common English words, there are only ~6,500 words that begin with ‘a’.
Reduced likely results from near-infinite to ~6,500
a b r a c a d a b r a
…and together ‘a’ + ‘b’ reduces our search space to ~420 words in the same dictionary.
a b r a c a d a b r a
…and together ‘a’ + ‘b’ reduces our search space to ~420 words in the same dictionary.
We can start to make reasonable guesses…
(Obviously Google’s search space is much bigger than a sample dictionary.)
a b r a c a d a b r a
By the 5th message, the most likely answer is the correct one…
a b r a c a d a b r a
A lot Almost none
If context is well-defined, information density should map like this…
(Like a game of 20 Questions)
http://en.wikipedia.org/wiki/File:Gamma_distribution_pdf.svg
Not every well-formed case looks like this…
http://en.wikipedia.org/wiki/File:Gamma_distribution_pdf.svg
…but it should be in this family of distributions
If we look back at our search messages…
Start search
Visually parse the results…
Guess at possible answer and click link…
Scan page for answer…
Scroll…
Found result?
No
Search text List of possibilities
Mouse scroll, page click List more possibilities
Link click Page result
Mouse scroll,Page down More page result
Back button List of possibilities
What would that information density look like?
If your information density looks like this…
or
If your information density looks like this…
or
Your context probably isn’t well-defined.
If your information density looks like this…
or
Your context probably isn’t well-defined.
20 Questions is all you ever need
To make things more usable, map context so that most likely stuff comes first
Example 2: Screenshot DialogContext Information
densityMessage creation
Message translation
Message response
Amount of time required to act correctly
What’s wrong with this?
Need to do calculations in your head
What’s wrong with this?
Need to do calculations in your head
What’s wrong with this?
Need to do calculations in your head
Need to choose between a lot of unknown options
What’s wrong with this?
Need to do calculations in your head
Need to choose between a lot of unknown options
Options too granular
What’s wrong with this?
Need to do calculations in your head
Need to choose between a lot of unknown options
Options too granular
Lots of unused, not useful options
What’s wrong with this?
Need to do calculations in your head
Need to choose between a lot of unknown options
Options too granular
Lots of unused, not useful options
Even more unused, not useful options
What’s wrong with this?
Need to do calculations in your head
Need to choose between a lot of unknown options
Options too granular
Lots of unused, not useful options
Even more unused, not useful options
Unclear how to choose the right answer
Example 2: Screenshot DialogContext Information
densityMessage creation
Message translation
Message response
Things to Measure
Example 2: Screenshot DialogContext Information
densityMessage creation
Message translation
Message response
Things to Measure
Parsing time
Example 2: Screenshot DialogContext Information
densityMessage creation
Message translation
Message response
Things to Measure
Parsing time Thinking time
Example 2: Screenshot DialogContext Information
densityMessage creation
Message translation
Message response
Things to Measure
Parsing time Thinking time
Working on wrong problem
Example 2: Screenshot DialogContext Information
densityMessage creation
Message translation
Message response
Things to Measure
Parsing time Thinking time
Working on wrong problem Error rate
Example 2: Screenshot DialogContext Information
densityMessage creation
Message translation
Message response
Things to Measure
Parsing time Thinking time
Working on wrong problem Error rate
Learning curve is bad
To make things more usable, reduce the time needed to work out what the right
thing to do is
Example 2: Screenshot DialogContext Information
densityMessage creation
Message translation
Message response
However… message creation time improves over time.
Initial difficulty isn’t always bad...
e.g. Driving
e.g. vi(m)
e.g. maya
e.g. making games
Example 2: Screenshot DialogContext Information
densityMessage creation
Message translation
Message response
However… message creation time improves over time.Learning curve is good
Example 2: Screenshot DialogContext Information
densityMessage creation
Message translation
Message response
However… message creation time improves over time.Learning curve is good
To make things more usable, allow for some features that are only useful with
lots of practice.
Example 3: Build timesContext Information
densityMessage creation
Message translation
Message response
Latency to transform message to useful result.
Example 3: Build timesContext Information
densityMessage creation
Message translation
Message response
Latency to transform message to useful result.
When people say “iteration”…
Example 3: Build timesContext Information
densityMessage creation
Message translation
Message response
Latency to transform message to useful result.
When people say “iteration”… Easiest to measure
Example 3: Build timesContext Information
densityMessage creation
Message translation
Message response
Latency to transform message to useful result.
When people say “iteration”… Easiest to measure
e.g. Building levels
Example 3: Build timesContext Information
densityMessage creation
Message translation
Message response
Latency to transform message to useful result.
When people say “iteration”… Easiest to measure
e.g. Building levels e.g. Building lightmaps
Example 3: Build timesContext Information
densityMessage creation
Message translation
Message response
Latency to transform message to useful result.
When people say “iteration”… Easiest to measure
e.g. Building levels e.g. Building lightmaps
e.g. Compile, link, reload
Example 3: Build timesContext Information
densityMessage creation
Message translation
Message response
Latency to transform message to useful result.
When people say “iteration”… Easiest to measure
e.g. Building levels e.g. Building lightmaps
“5 second rule”e.g. Compile, link, reload
Example 3: Build timesContext Information
densityMessage creation
Message translation
Message response
Latency to transform message to useful result.
When people say “iteration”… Easiest to measure
e.g. Building levels e.g. Building lightmaps
“5 second rule”e.g. Compile, link, reload
One minute is worth 12 iterations
Example 3: Build timesContext Information
densityMessage creation
Message translation
Message response
Latency to transform message to useful result.
When people say “iteration”… Easiest to measure
e.g. Building levels e.g. Building lightmaps
“5 second rule”e.g. Compile, link, reload
One minute is worth 12 iterations
To make things more usable, reduce the time needed to work out what the right
thing to do is
Example 3: Build timesContext Information
densityMessage creation
Message translation
Message response
Throughput of message. i.e. time until can begin next message
Example 4: Stamp mode
E.g. 3D manipulators have very little context.
(“Move/rotate/scale some object”)
Redefine context:
“building things made up of connected, modular parts”
Hotkey: Modular stamp mode
Hotkey: Modular stamp mode
See ghosted set of connectable pieces
Tab another set of connectable pieces
Click on ghosted piece to “stamp”
Tab back to other set
Example 4: Stamp mode
What happened?
Example 4: Stamp mode
What happened? More specific context
Example 4: Stamp mode
What happened? More specific context Better information density
Example 4: Stamp mode
What happened? More specific context Better information density Fast and simple message creation
Example 4: Stamp mode
What happened? More specific context Better information density Fast and simple message creation Immediate message translation and response
Example 4: Stamp mode
What happened? More specific context Better information density Fast and simple message creation Immediate message translation and response Forgot: Muscle memory
Example 4: Stamp mode
What happened? More specific context Better information density Fast and simple message creation Immediate message translation and response Forgot: Muscle memory
When in doubt, be like Maya
Example 4: Stamp mode
What happened? More specific context Better information density Fast and simple message creation Immediate message translation and response Forgot: Muscle memory
When in doubt, be like Maya
The more different something is, the bigger the bridge to the old way needs to
be.
Review
Review The only way is to watch it live
Review The only way is to watch it live Choice is bad
Review The only way is to watch it live Choice is bad Choice is good
Review The only way is to watch it live Choice is bad Choice is good 20 Questions is all you ever need
Review The only way is to watch it live Choice is bad Choice is good 20 Questions is all you ever need Learning curve is bad
Review The only way is to watch it live Choice is bad Choice is good 20 Questions is all you ever need Learning curve is bad Learning curve is good
Review The only way is to watch it live Choice is bad Choice is good 20 Questions is all you ever need Learning curve is bad Learning curve is good One minute is worth 12 iterations
Review The only way is to watch it live Choice is bad Choice is good 20 Questions is all you ever need Learning curve is bad Learning curve is good One minute is worth 12 iterations When in doubt, be like Maya
Review The only way is to watch it live Choice is bad Choice is good 20 Questions is all you ever need Learning curve is bad Learning curve is good One minute is worth 12 iterations When in doubt, be like Maya
Usability is triage
Review The only way is to watch it live Choice is bad Choice is good 20 Questions is all you ever need Learning curve is bad Learning curve is good One minute is worth 12 iterations When in doubt, be like Maya
Usability is triageTo make things more usable, don’t try to
maximize usability in everything
#README
“A mathematical theory of communication” -- Claude Shannon
“The Design of Everyday Things” -- Donald A. Norman
“The Man Who Lied to His Laptop: What We Can Learn About Ourselves from Our Machines”
-- Clifford Nass and Corina Yen
Usability is not random #[email protected]@MIKE_ACTON