DESIGNING USER INTERFACES "People aren't trying to use computers-they're tying to get their jobs done (accomplish things)." "Stupid user": Not being familiar with a computer doesn't make a person stupid. Combustion engine ex. Simplicity is one of the biggest challenges. IMHO, it's a designer's cop-out to take the "stupid user" path. So, take a USER-CENTERED approach (vs. User Friendly) USER PROFILE · Target audience: Everyone, not just for programmers anymore. · Instinctively curious: They want to learn, and they learn best by active self-directed exploration of their environment. · Mastering their environment: Sense of control over what they're doing; see results (preferably immediate). · Skilled at Manipulating Symbolic representations: Communicate in VERBAL, VISUAL and GESTURAL languages GENERAL DESIGN PRINCIPLES Metaphors (application domain familiarity) More experience in real world than computer world (although, unfortunately, that may be changing for some). Whenever appropriate, use audio and visual effects that support metaphor. Direct Manipulation See-and-point (vs. remember and type) Recognition vs. Recall: Select actions from alternatives presented on screen. R Noun-then-verb ("Hey, you-do this.") Two paradigms: 1) Select noun, then verb; 2) Direct action (e.g., drag) Consistency (Intra-program and Inter-program) WISIWIG User Control User initiates and control all actions. Feedback and Dialog Keep user informed. Confirmation of destructive actions. Immediate feedback. Forgiveness Users make mistakes; go easy on them. Reversible actions. Perceived Stability Ex: Dimming vs. removing menu items. Provide familiar landmarks. Aesthetic Integrity Visually confusing or unattractive displays will distract and detract. Different things should look different. User control of superficial appearance. PRINCIPLES OF GRAPHICAL COMMUNICATION · Good design must communicate, not just dazzle; inform, not just impress. · Visual Consistency: Believable environment (suspension of disbelief). · Simplicity: Avoid clutter or complexity; don't need photo-realism (cartoons); icons/symbols. · Clarity: Indicators to provide cues as to what's going on. Ex. Ellipsis. IMPLEMENTATION STRATEGY/PRINCIPLES Modelessness Mode: Context in which actions are interpreted relative to mode. Different action may have different result in different mode. Often restrictive. People don't operate in modes in real life, so why should they do it on a computer? Especially confusing when entered unintentionally. Okay when: · Long-term (e.g., whole application can be considered a mode. · Short-term (e.g., "spring-loaded/special action to maintain mode) · Alert (user must rectify before proceeding) · Emulates real life (e.g., paint tool) · Changes only attributes (e.g., bold or italic) · Blocks other operations to emphasize modality (e.g., modal dialog box) Give clear indication that in a mode. Don't prevent user from important (e.g., saving, exiting) actions. Event Loop (prepared/accept any user input at any time) Reversible Actions Plain Language Separation of Information and Display USER ASSISTANCE Tutorials, help files, "tooltips" DESIGNING FOR DISABLED Vision (text size, color) Hearing TESTING Prototyping: How close to real product? Usability testing/focus groups: Sample set size; demographics. Eliciting feedback: Act of measuring distorts information; make as unintrusive as possible. Record feedback (video, log files/program capture/cookies/"big brother")