Usability lab specs
From Inforail
Contents
User interface design [with an emphasis on 'question oriented']
Keywords: information overload, usability, learning curve, discoverability, information in the interface, information in the users' memory, reasonable defaults
You're working on a hypothetical program, the purpose of which is to help someone manage the bills in their household.
What has to be done
- make a list of tasks which people usually deal with in this context, and devise a list of objectives for your future program, ex:
- make sure all bills are paid on time
- predict how much money I will need next month
- determine where most of my money goes, etc
- make a list of questions typically asked by people who would use your program and interact with its interface. Once you do this, you'll have an idea about WHAT TO SHOW
- what is the total amount of money I need to pay?
- have I got any debts?
- when is the nearest deadline?
- separate the program into logical modules for specific tasks, ex:
- input of information about bills
- displaying the statistics for a given month
- generate a report that compares various periods of a year, etc
- For each of these, draw a sketch that uses various graphical widgets in order to provide answers to the questions listed in the previous point.
- Once you do this, you'll have an idea about HOW TO SHOW that information.
Contents of the report
- list of objectives your program will help users achieve
- list of questions answered by the interface
- list of windows the program will have and sample sketches for each window
- these can be drawn in anything you like, I suggest one of these:
- Microsoft Visio [for Windows programs]
- Glade, http://glade.gnome.org/ [for GTK-based programs]
- Inkscape
- these can be drawn in anything you like, I suggest one of these:
Each design decision must be supported by a rationale (ex: "I chose to represent this using a scrollable dropdown list because ....").
Note: no, there is no need to do any actual programming yet; this task is just about prototyping and figuring out what you want to obtain in the end.
Suggestions
- Less is more, more is less
- KISS: keep it simple, short
References
- http://en.wikipedia.org/wiki/Learning_curve
- http://en.wikipedia.org/wiki/GIMP (usually provided as an example of ugly UI, but I like it)
- http://blogs.msdn.com/jensenh/archive/2008/03/12/the-story-of-the-ribbon.aspx (a presentation by Jensen Harris, one of the key-people behind the ribbon interface introduced in Office 2007)
- http://en.wikipedia.org/wiki/Human_interface_guidelines
- http://en.wikipedia.org/wiki/Widget_%28computing%29
- http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0465067107/ref=sr_1_1?ie=UTF8&s=books&qid=1253049928&sr=8-1 (great book about interfaces in general, there is no focus on computer programs - it's about the usability of appliances, devices, cars, etc)
- http://railean.net/index.php/2008/07/28/information_overload_is_real
- http://railean.net/index.php/2009/01/04/remove_taskbar_become_more_productive
- http://railean.net/index.php/2008/11/11/question_oriented_ui_design
Design patterns
- http://www.welie.com/patterns/ - Interaction design pattern library
- http://developer.yahoo.com/ypatterns/ - Yahoo! design pattern library
- http://quince.infragistics.com/UX-Design-Patterns.aspx - Quince UX design patterns listing