Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
UI Guidelines 1
Adapted from: The Human Factor: Designing Computer Systems for
People, Rubinstein & Hersh (1984)
Know your users - they are not you
How long does it take to learn the system (novice ... expert curve)
Ease of use must be designed in, not added
Reliable & robust
absence of malfunctions
tolerance of errors
protect user from harmful actions
Designers make myths.
Users make conceptual models.
User Interface Guidelines
UI Guidelines 2
Tailoring: accommodate individual differences w/o users having to make
choices at every function. (Training wheels, user models)
Productivity: using a computer should always be easier than not using a
computer.
Planning pays for itself many times!
Software Engineering is compromise. Integrated design is design of a
whole system.
Separate Design from Implementation
Use prototypes - evolutionary delivery to test design.
Quality requires planning. Quality control is not just testing!
Quality is measuring the fit of design goals to system functionality.
Can you design what you can't measure?
UI Guidelines 3
20 / 80 rule Law of diminishing returns...
Creeping elegance - last 20% of "perfectly complete" system takes
80% of the effort.
80 / 20 rule Put your effort where main impact will be.
20% of an application's code may do 80% of the user interface.
Who is the user? Meet the user.
What tasks does the user perform now?
Watch the user perform tasks.
Describe Before you Leap
Task Analysis and User Models
UI Guidelines 4
How is the task learned? Learn the task.
Where is the task performed? Perform task.
What is the relationship between user and data?
What other tools does the user have?
How do users communicate w/ each other?
What are the task's time constraints?
How do things go wrong?
What happens when things go wrong?
What work around exist?
How do user currently recover?
Develop an explicit use model consistent with task.
Know the task!
Task
UI Guidelines 5
Maintain a consisent myth.
Complete, Limited Scope Systems.
Have clear bounds that user can understand
Visible & Distinguishable System's States .
Minimize Conceptual Load.
Recognize human processing limits
Eliminate Mode Errors
c
o
n
c l
e o
p a
t d
u
a
l
no rules many
independent termsmany
rulesfew rules
Develop & Use Conceptual Models
UI Guidelines 6
Respect the Rules of Human Conversation
When people use language to interact w/ a computer they behave as if
the rules of human - to - human communication apply.
Respond with the Appropriate Amount and Type of Information.
Data is information w/o interpretation.
People are information not data processors!
Numerical Information:
Exact data is important - use tables
Relationships are important - use graphs
Dimensionality should fit the data -- 3D graphs confusing
Present what is needed, not all there is
Language && Relationships
UI Guidelines 7
The system doesn't understand the user
don't condemn user - avoid "error"
Incorporate spelling correctors -- minimize free text entry
recognize - select > recall - generate
Be Consistent in Language Use.
Consistent word, grammar and style
Don't anthropomorphize dialog w/ user -- wrong model of system to user
System is a tool not a "friend"
System should be transparent to task
The User is Always Right
UI Guidelines 8
Avoid teaching command grammars, teach command syntax through use
(intuitive).
Native language is learned by using and example, not by syntax and
grammar.
Use Application Terminology& Standard Language.
Eliminate vague, poor terms.
Make and use relevant metaphors
Avoid complex queries.
Ands can be exhaustively sequenced
Ors can be sequenced w/ priority
Teach by example, not by Formalisms.
UI Guidelines 9
Learning Aids are Part of the System
Training Wheels - teaching software that can be removed latter.
Tutorials designed & developed w/ system
Write the User's Guide First
Incorporate external myths into guide
Organize on conceptual model
Examples, examples, examples...
An index is an Information Retrieval System
Expand the Definition of Software
UI Guidelines 10
Help should not interfere w/ task
Multiple levels of help
1 show example
2 provide "manual pages" (hyper text)
3 refer user to integrated tutorials
4 refer user to human instructors or
consultants
DWIM "do what I mean"
Guess what user wants and query if they want it.
Then provide correct example (a training wheel).
Prove that Help Helps
Integrate help w/ error processing
Help should help
UI Guidelines 11
Avoid Multiple Style Models - Consistent UI
Command Based Interface Style
Punctuation shouldn't have meaning
Have command line recall & editing
Menu Based Interface Style
Keep menus short
Label menus
Have consistent menu operations
If large menu, have menu map (history path) & shortcuts
Human Interface Styles
UI Guidelines 12
Direct Manipulation Interface Styles
Respond in real time
Match objects in interface w/ external myth
Reduce homing between keyboard & pointer - provide keyboard
accelerators
Respond to Users
Provide High Quality, Timely Response
Keep users informed and comfortable
have progress indicators for long tasks
Acknowledge user's actions, then process
Confirm user's intent not literal string.
Provide easy escape, undo features
UI Guidelines 13
No surprises, don't distract.
Report errors politely, simply, and in context
State errors in terms of external myth
Don't blame the user
Avoid error codes. Error messages should be unambiguous.
Fix the problem (DWIM - training wheels)
Clearly distinguish between success & error
Design the Error & Help Behavior of System from the beginning
Handle Errors to Teach & be Productive
Error Response
UI Guidelines 14
Response Time should be Fast and Relatively Constant
Try to work in real time
Have progress indicators, percent done, announce long delays, estimate
how long task will take
Response time is part of user's perception.
Try to have response time and duration support external myth.
Should "hard" tasks should take a little longer ?
Integrate error recovery & help
UI Guidelines 15
You build it, You Test it ? You buiild it, others test it? Both ?
Specify testing & validation at design time. Have external testers also.
Use subjects that are familiar w/ system or external myth (not other
developers)
Test User Interface w/ prototypes from screen "demo" mock-ups
use representative tasks
include help and error recovery
Test the strength of the external myth
Use an evolutionary (rapid prototyping) design w/ many deliveries
exploit reusable code, object oriented tools
Failures are Catastrophes not "cute" bugs....
Testing Systems
UI Guidelines 16Design as a reflection
Design Model User Model
designer user
ideal system
actual system
Design Model User Model
designer user
UI Guidelines 17
Assume 3 competitive applications (A, B, and C) that exhibit these
performance as a function of use functions.p
erfo
rman
ce
learning and use
A
B
C
"A" is the fastest to learn and the fastest to asymptote at a moderate level
of performance.
"B" is slow to learn and slow to asymptote at a low level of performance.
"C" is slow to learn and slow to asymptote at a high level of
performance.
Are there user's appropriate for each application?
Humans learn
UI Guidelines 18
Studies supporting consistency examine ease of learning and ease of
transference from one system to another.
Internal consistency reduces conceptual load
External consistency reduces training
Assumes that easy to learn is easy to use...
However,
Humans are fast learners, but learning is “hard”
Systems are acquired to use for increased productivity
not for learning
Skilled performance is important, may require learning
Training Wheels, incorporate learning into beginning user model,
monitor performance and remove “training wheels” from UI
learning is not using
UI Guidelines 19
J. Grudin, CACM, 1989
Consistency is a major watch word in guides for developing good user
interfaces.
Consistency != perceived consistency
3 Types of Consistency
1. Internal Consistency. Easily controlled by the design team.
Command language
2. User Interface Consistency. Externally consistent with environment
or desktop. -- User Interface controls menus, buttons, dialogs ...
3. Tool / Analogy Consistency. Consistent with a model, analogy, or
external tool. -- Remote monitoring & physical gauges
Case against Interface Consistency
UI Guidelines 20
Intensive task use analysis of users is vital to user interface design.
Consistency can be centered on:
• what is most often done
• what did the user do last
• what would the user do next
Grudin's Arrow Keys
12 3
Which is better?
1 more consistent with external analogy
- correction is opposite key
2 best performance
+ easy correction, multi-fingered use
Consistency is One of Many Goals
UI Guidelines 21Thinking Fast & Slow
Two cognitive human decision making systems:
System 1: automatic, unconscious, approximate, easy, visual,
emotional / sensational, fast
System 2: conscious, deliberate, rational, precise, difficult, verbal,
slow
Most decisions are made with system 1 (default system)
Important decisions should be made with system 2.
Tversky & Kahneman, Judgment under Uncertainty: Heuristics and
Biases, 1974
Psychology of decision making
Behavioral Finance
Losses > Gains risk averse but like to gamble and take risks
Sensational, Memorial > Statistics, Factual
fears flying, prefers to drive
good story, familiar source rather that facts
UI Guidelines 22System 2 applications
Decision Support Systems (DSS) – tools for System 2
Provide “all” options. But don’t overwhelm, organize options,
provide summary “thumbnails” information
Facilitate alternatives. Expose users to non-intuitive alternatives,
help discovery of decisions.
Information based. Provide unbiased data w/o requirement for
calculation. Perform deductions (show steps if asked), provide
inferences. (minimize system 2.)
Transparent working. Explain assumptions and results with
examples, memorial stories. (play to system 1.)
UI Guidelines 23System 1 applications
Persuasive applications – sweets for System 1
Make a quick, impulsive, self-satisfying decision
Charities, Advertisers, Political/religious recruiters
Visual, emotional images: fear, pleasure, status
Exploiting System 1 for the “greater good”
How to increase system updates, backups, redundant storage?