|Programmers and usability
||[Jun. 13th, 2004|01:52 pm]
Damn, I can't seem to write about anything other than usability these days :)
Anyway when I was in the lift today (elevator to Americans) I saw a button in the panel with a picture of a bell on it. I wondered what it was for, and immediately my hand subconsciously started to move towards it in the hope of... wait for it... bringing up a tooltip by hovering over it! Halfway through I realized I was in meatspace and pulled back my hand. But even more amazingly, I found it impossible to restrain my hand which kept going back toward the button. At the conscious level I know it won't work, but my "muscle memory" is so used to getting tooltips from buttons that I can't override my instinct.
That got me thinking. If programmers are so used to computers that they expect the real world to behave like software, no wonder that there's a disconnect between programmers and users. A hacker simply can't get an intuition for the Aunt Tillie's mental model of the UI. That's why its important to have usability engineers, and to do usability tests with real n00bs rather than simulated ones. Nothing really new here, just confirmation of a well known fact.
lol... love the tooltips in real life thing :D
Seems to me that the problem is new users not HAVING a mental model of the UI -- it's just a jumble of meaningless images and buttons, with no order, and they have to remember which button does what, or what happens next.
Obviously, what's desired is that the user would understand the basic concepts -- that icons represent things visually, that menus provide most options in a structured drill-down order they can browse through to find what they want, that virtually everything has tooltips and help, and that they can just use their curiosity and play around rather than panicking.
A lot of application tutorials tell people how to press this thing to do that, etc. What new users really need is something like a GUI tutorial, that gradually adds features to the screen (a toolbar; a menubar; systray; panel; whatever). As long as it's only the fundamental building blocks; things that have no meaning beyond being GUI elements. Introduce those things, and invite them to discover how to take advantage of each one before moving on, and they'll be masters in no time.
Seems to me that GUIs are like cars: learn the basics of the vehicle and roadsigns themselves, and you can drive anywhere, anytime, for any purpose.
Makes sense. My mother for instance just can't figure out which UI elements are supposed to be clicked, which are dragged, etc. I guess GUIs look like the control panel of an airplane cockpit to first timers.
If you've taken the GRE. before the test begins there's a "mouse tutorial". It works roughly the way you say.
Wouldn't be a bad idea to write a GUI tutorial, eh? With voice and animation and everything. What a lot of fun :)
BTW, people do have a mental model of the UI -- how else would they say things like "I've saved the file in openoffice" when asked where they saved the file! Since the file appears in the "recent files" in openoffice, they think the file is somehow "inside" openoffice :-)
"I've saved the file in openoffice"
Ahh, yes.. good point :)
I wonder how you'd go about doing a tutorial like that in GNOME, with animation and voiceovers, etc? OpenOffice Impress springs to mind, but most people wouldn't have that. I was thinking that an app would need to be coded to use the actual GUI elements etc. But it sounds like you have another idea?