Interaction Design

a) Conceptual Design

  • Design and communicate a good conceptual model
  • A well-designed interface is transparent
  • Design an interface that visually communicates its conceptual model
  • Use progressive disclosure – structure the interface semantically
  • Provide meaningful paths and exits
  • Well-designed conceptual model helps in
    • Learnability to advanced beginners and competent performers
    • Ease of use, error-free use, retention over time and subjective satisfaction for competent
      and expert performers

b) Use Metaphors

  • Metaphors help users to build a conceptual model
  • Design icons and visual relative to each other to enhance the metaphor
  • Not all widgets are metaphors
  • Don’t need to take metaphors to logical extremes if it does not suit the design
  • Metaphors helps in –
    • Learnability, ease of use and subjective satisfaction for novices and advanced beginners.
    • Retention over time for all users

c) Use Constrains

  • The software encourages the user to do the right things at the right time
  • Prevents or discourages from doing wrong things and warns about the consequences.
  • Constraints are good for novices and advanced beginners to minimize errors, help them learn the interface
    make it easier and faster to use
  • May hamper competent and expert performers

d) Affordances and Mappings

  • It should be possible to determine the relationships
  • Between actions and results
  • Between controls and their effects
  • Between the system state and what is visible
  • Make controls look and feel different
  • Affordances and mappings
    • Help novices and advanced beginners learn the interface, make it easier and faster to use
      and help in minimizing errors
    • Help competent performers to retain the interface over time
    • Help in mission-critical applications

e) Direct Manipulation

  • Allow users to directly manipulate objects
  • Use the object-action paradigm wherever possible
  • Extend metaphors only as long as it does not directly contradict the mental model
    • Helps novices and advanced beginners to learnability, ease of use and subjective satisfaction

f) Visual Design

  • Use visuals for effective communication
  • Design all visual elements relative to each other to enhance the conceptual model
  • Promote visual clarity – avoid clutter
  • Use visual work together with text
  • Graphics – icons, windows, dialog boxes, buttons – need to be designed as a communicative environment
  • Clear and consistent visual design helps in –
    • Improves learnability for novices and advanced beginners
    • Aids recall and subjective satisfaction for novices, advanced beginners and competent performers

g) Consistency

  • Effective applications are consistent within themselves as well as with one another
  • WYSIWYG(what you see is what you get)
  • Sustain the context of user tasks and data. Be consistent with
    • Data across views
    • Results of actions
    • Functionality across tasks
    • Sequence of tasks
  • Be consistent between applications
  • Allow interoperability with other applications
  • Be consistent across versions
  • Be consistent in visual design
  • Consistency helps in-
    • Improves error free use for all users
    • Advanced beginners learn from other applications

h) Feedback

  • People expect physical actions to give physical results
  • Feedback makes users a feel that they are in charge
  • Give users full and continuous feedback about the results of actions
  • Be brief and direct, use user’s vocabulary
  • Establish proper ‘tone of voice’
  • User time is precious – make good use of it
  • Give feedback to help users to detect and correct errors
  • Use sound for feedback selectively
  • Be useful rather than cute
  • Sounds are intrusive – benefit as well as a drawback
  • Good feedback
    • Helps novices, advanced beginners and competent performers learn quickly
    • Allows error recovery and improves ease of use and subjective satisfaction for all users

i) Visibility

  • By looking, the user can tell the state of the device and the alternatives for action
  • Dim out actions not available currently, but don’t make them invisible
  • Provide visual clues to allow users to understand where they are, what they are doing and what they can do next
    • Helps novices, advanced beginners and competent performers to learn the interface, makes it easy and error free to use and enhances subjective satisfaction
    • Improves the retention over time for all users

j) Standards

  • If all else fails, standardize
  • Following GUI standards helps in
    • Learnability of the interface for novices and advanced beginners
    • Reducing errors in operation for novices, advanced beginners and competent performers

k) Forgiving

  • If error is possible, someone will make it
  • Design to minimize the occurrence of errors
  • Make errors cost free
  • Make actions reversible
  • Warn about irreversible actions before doing them
  • If you allow users to customize, provide a way to restore defaults
  • Forgiving interface
    • Makes it more learnable and easy to use for novices and advanced beginners
    • Allows error recovery and enhances experience and subjective satisfaction of all users

l) Minimize User Memory and Task Load

  • Minimize use of user short term memory
  • Put knowledge in the world
  • Users are better at recognition than recall
  • Provide visual clues
  • Use the power of constraints and forcing functions
  • Allow for more efficient operation when the user has learnt the operations, (knowledge in the head)
  • Let the computer do what the computer can
    • Ensures learnability and ease of use for novices and advanced beginners
    • Minimizes errors and improves speed

m) Modality

  • Use modes judiciously – avoid unnecessary modes
  • If using modes, give constant feedback about current mode
  • People are often disturbed while they are working, or they often change their mind
  • Modes may even be necessary
  • Modes can be used for helping novices and advanced beginners
  • Careful use of modes can make an interface learnable, error-free use, easy to use and fast to use for novices and advanced beginners
    • A modeless interface will allow competent performers and experts the ease of use as well as speed of use

n) Multiple Input Paths

  • Allow users to specify inputs through multiple paths
  • Users have different habits at different times
  • Users in different stages prefer different methods of input
  • Users familiar with a different software will find it quicker to learn your product
  • Multiple input paths affects
  • Learnability for novices and advanced beginners
    • Ease of use and speed of use for competent and expert users

o) Customization

  • Modify look and feel – Colors, mouse buttons, tool bars, layouts etc.???
  • Enhance functionality – Develop custom style sheets, color pallets, add words to dictionary, add names to address books etc
  • Empower the experienced user to improve productivity through customization – Help users customize user tasks (rather than computer tasks)
  • Provide multiple inputs paths – Allow for keyboard shortcuts and type-ahead systems
  • Customization
    • Helps competent performers and experts to improve speed and ease of use and minimize errors
    • Threatens novices and advanced beginners with complexity of mental models