The User Experience

Dr Andy Evans

[Fullscreen]

The user experience

  • Many people design for geeks.
  • We need to design for the general public, but make advanced functions available for those that want them.
  • We should try to help the user by...
    • Using familiar keys and menus (e.g. Ctrl + C for copy).
    • Including help systems and tutorials.

Designing for users

  • At every stage when designing the GUI, think "is it obvious what this does?"
  • Make all screens as simple as possible.
  • Users learn by trying stuff - they rarely read manuals, so think carefully about what the default behavior of any function should be.
  • Hide complex functionality and the options to change defaults in 'Options' menus.
  • Most of all consult and test.

Initial consultation

  • User consultation is a vital part of development.
  • Users should be consulted first. If the users don't like your software, you're sunk.
  • Find out what people expect to get from the system before adding extras. If it helps draw UML User Case diagrams.
  • User Cases can be used to break a large project up into smaller bits. Do the difficult bits first!

Usability testing

  • When you think you have a bit users are interested in up and running, test its 'usability'.
  • Sit your users down with the software and get them to play with it.
  • It's useful to set them common tasks to do.
  • See how long they take to do stuff, and what they do that's unexpected. Some companies use mirrored windows.

     

  • Remember, users don't make mistakes - it's your fault if you lead them the wrong way!

Release

  • If you've been testing enough you shouldn't have any usability problems. Most problems will be bugs from users doing unusual things.
  • Can release alpha and beta versions to a broader number of testers or the public to test for bugs and at the same time ask for user comments.
  • At this point you'll need to delimit time for...
    • User improvements (should be minimal)
    • Refactoring (simplifying the code)
    • Fixing bugs.
  • If you try and do two at once it's bound to get confusing.

Summary

  • Always design assuming the user...
    • Will experiment rather than read the manual.
    • Will base these experiments on what they expect to find.
  • Always base the software design around what the user wants.
  • Always test the user's opinions and the usability as you develop.