Interaction Design

Interaction design, sometimes referred as “IXD” is a subset of human- computer interaction (HCI) field. It is also a part of overall User Experience Design (UX) process. It is the study of man – machine interactions to complete a certain user task or goal. It deals with connect individual screens and guiding a user through a flow of actions. Interaction design involves understanding of user input & computer outputs when applied to software. But Interaction design is also a part of Industrial Design which involves physical products.

MicroInteractions – this is an emerging field of micro interactions which are subtle actions that shows accomplishments or feedback on some user actions. This involves light animations, motion designs, success messages, mouse-over actions, etc.

Successful interactive design uses technology and principles of good communication to create desired user experiences that are pleasurable and exciting. Below are some of the Interaction design principles.

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

    • 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

    • 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

    • Improves error free use for all users

    • Helps 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