Feed Sign in with OpenID OpenID

Simon Willison’s Weblog

Usability and interface design

Graphical User Interfaces

This course covers HCI with a heavy emphasis on implementation. We will be developing the interface/interaction components of software using Java, in particular the AWT and Swing toolkits.

The course will consist of one piece of group coursework and one exam. The coursework will last from week 3 to week 10 of the course.

Swing is huge. No one can be expected to know all of Swing, but we will need to be able to use the library documentation to find the classes we need when we need to use them.

Usability

Usability is functionality. If a user can not use a feature the feature may as well not exist. Usability can be measured through evaluation, which differs from testing in that testing checks that the sofware does what the developer intended while evaluation checks that the software does what the user wants it to do.

How do we get usability? We build it in from the start. Designing for usability is a key part of the development process. It can not be tacked on at the end.

There are four design methodologies that relate to usability:

User centered design
The design takes in to account data gathered from the end users of the system.
Particapatory design
Similar to user centered design, but the users are actively involved in the design process. This technique was developed in Scandinavia in the early 80s thanks to a Norwegian law which required the workers (through their trade unions) to approve any software being introduced in to the work place.
Experimental design
?
Iterative design
The initial design is evolved and improved over many iterations

HCI is a multi-disciplinary activity. It involves more than just designing software, and ends up being part management consultancy, part anthropolgy and part code hacking.

The usability trinity is:

  • Users
  • Task
  • Environment

Task-based design activities include collecting information on the tasks that users will be completing using the software.

Another way of looking at the usability design process is the following:

  1. Understand how the user’s tasks work at the moment
  2. Think how these tasks could be done better. If the organisation needs software it means that their current working practises are inefficient, so it would not be a good idea to build a system to support their current practises without first considering their weaknesses. The model you come up with is called the envision task model.
  3. Build the software to support your model.

People do not like being told to change their working practises, so usability engineering using the above method can be very difficult.

This is Usability and interface design by Simon Willison, posted on 27th September 2002.

View blog reactions

Next: XFML 1.0 soon

Previous: Functional programming

2 comments

  1. "There are four design methodologies that relate to usability: [...]" Don't know who's giving that course but that's just wrong. Iterative design is a way of designing, but isn't an alternative to user centered design for example. Your design practices should be user-centered *and* iterative. The other two don't make sense either. Participatory design was a dead-end replaced by user centered design when people realised that letting your users make design decisions doesn't work.

    Peter - 29th September 2002 18:49 - #

  2. Just a little addition: Our lecturer also mentioned the term "Developer particiation" which is apparently the opposite to user participation. The developer should become actively involved with the users world, in order to fully appreciate the complexities of the working practices that they are designing for.

    Natalie - 3rd October 2002 15:04 - #

Comments are closed.

Previously hosted at http://simon.incutio.com/archive/2002/09/27/usabilityAndInterfaceDesign

A django site