|
2005-09-13 23:35
It’s been a while since I contributed to this thing, but I haven’t run out of things to say. The main reasons for the delay is waiting to hear back from an email and talk to my hosting admin to get a setting or two changed. For that reason I thought it was time for another Lemma post, where I explain something which I might later rely on in another post. Alternatively, these Lemmas may actually be “proto-categories”; that is, discussion on a subject which I think is important enough for a one-off post, but, until amassing some undetermined number of posts on the subject, not worthy of a category of its own.
Helpfully, that introduces an important concept: the balance between creating structure (like categories for blog posts) and the distraction that unnecessary structure can produce. Another example would be how directory trees or menus should be structured. Clearly a directory containing a single file makes it harder to navigate to that file (in some circumstances), but I don’t think there is a mathematically derivable value which is ideal for all directories. This minor uncertainty is perhaps what makes good design and good structure so hard to achieve: on the surface there is no clear distinction between right and wrong, as every person using a system will have a different approach or different strengths.
Acknowledging that, though, I have come to appreciate that there is a valid methodology which can be applied to design decisions, based on the principles of usability. For simplicity and hopefully relevance, I am mostly talking about computer software and website usability, such as is worked on by Open Usability and Jakob Nielsen respectively, but my eye for usability has stretched far beyond that as I will discuss later.
What really got me started at understanding this field was an article about usability testing of KDE software, and how clearly an expert could demonstrate a difference between two design ideas. Not only would the improvement be obvious after being pointed out, but beforehand a user or developer could be completely oblivious to the problem. The idea of making the invisible become visible was so compelling that I instantly found myself analysing things as a usability expert, suddenly finding a vocabulary and set of tools for explaining what most people still see as acceptable annoyances in software.
When you log on to a Microsoft operating system and you are bombarded with a dozen “popup dialogs”, “popup windows”, “alert balloons” and so on, you are are not being given an informational or administrative aid, but a system which is broken by design. I could debate individual anecdotes, and am happy to concede the issue is more complicated than this, but I am not happy to go without condemning the general problem. A new term is needed for this blatant disregard for the humans that are just trying to use a computer as a benefit to them: “This is a usability nightmare.”
The problem is even more exasperating when you consider that for most tasks, good interface design is a solvable problem, and in many cases a solved problem. For clarity, let’s look at some specifics. I may not be an expert on usability (hence my difficulty evaluating the style of my own blog) but I have some ideas I can contribute to explain some of the basis of usability. In the following I will use “interface” as a synonym for “design”, and discuss software and non-software topics without drawing distinction.
- An interface should be internally consistent, making similar features accessible in the same way
- An interface should be externally consistent, making use of a user’s pre-existing knowledge of computer systems and their knowledge of the “real” world by using metaphors
- An interface should make commonly used features readily accessible, and not allow less commonly used features to distract users
- An interface should take into account the different physical abilities of users and different physical situations under which it must be used
- An interface should not require users to spend more time than is necessary to complete a task (by expecting the user to do the interface’s job, or by actively hindering the user)
- An interface should not hide features from those who need them
- An interface should limit the user’s ability to perform invalid tasks
- An interface should provide feedback to the user such as showing the state of the interface or any problems encountered
Of course, the list used by experts is probably much longer, or more formally justified, but at the very least, usability must be about not making the user waste their time, whether in a state of confusion, or through making mistakes, or through unnecessary work.
At this point, though, I have to defer to the experts. Usability is such an important issue for so many areas of design that ISO have taken time to codify and standardise collected wisdom on usability. ISO standard 9241-11 (1998) titled “Guidance on Usability” defines usability as:
The extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use.
This is a very nice way of expressing it, which overlaps with my own understanding of usability.
I cannot finish, though, without condemning various usability nightmares I have noticed in the world around me.
- Can we all agree that handheld remote control devices for consumer electronic goods are a usability nightmare? For a start, each device seems to come with its own, and each one is designed as if it is the only one you will ever need. No modular design, they don’t plug together or overlay each other. It is understood that we are happy to carry around and find space for 2 or 3 of these things, and at home I regularly see a pile of 6 next to the TV due to deprecated devices, or an attempt to support multiple formats. Also, don’t think that an “All in one” remote will fix the problem, it just adds to it because by the time you’ve programmed it, you don’t know what all the buttons you’ve programmed do any more, especially as you have to set it to the correct mode before you press a button. Give me a(n) (Open)Zaurus running a MythTV frontend any day.
- In particular, cable television is a nightmare, not just because of the extra remote it requires, but the huge unwieldy channel lists, the unresponsive software with it’s distracting screen overlay, the fact that the box needs to be hard reset every now and then, the fact that it requires an extra box and extra power lead, the fact that you have to use a remote to navigate the menus instead of a mouse or even trackpad. The pathetic three character seven segment LED displays on the front don’t even get the name of the provider company right.
- Not being able to select the text in error message popup dialogs. Having software with bugs is one thing, annoying the users with popups is another thing, but forcing us to write the error down on a piece of paper or a text editor is an insult! When replacing the commandline interface, don’t abandon important features like this in the process of making something “modern”.
- Even worse, popup dialogs which can’t be resized. I can understand setting a default size for consistency and minimality, but refusing to allow a user from changing the size of a window should require a very good reason, especially when the error message they are trying to present to you goes off the edge of one of them, hiding the most useful part. On the console this never happens, at best you can scroll up to see what you missed, at worst you have to
grep or head or tail or less or > the output.
- Blog, wiki and general web text entry. How long have people needed to write expressive text, even formatted text, into a webpage to be submitted to a server? Probably 5 minutes after the
<textarea> tag was invented, but at least as long as webmail has been around. Why this requirement hasn’t be a driving force behind web standards I don’t know, and with the invention of XForms this is now embarassingly absent. Make the text box resize with the browser width while you’re at it, too.
- Bins. How long have we had bins? There hasn’t been much innovation in the last century or two, and yet designers make elementary mistakes. Think, one of the purposes of bins with lids is to store dirty things away from people trying to keep their hands clean, such as when cooking. Bins are dirty, because they contain dirty things. Then why do they still make bins which require you to open the lid by hand?! There is plenty of precedent for using a foot pedal on these bins, so let’s consign “manual” bins to the museums.
- And speaking of opening things with your feet, some people have difficulty using their hands. Some people have no hands at all, or arthritis, or deformed fingers. For them, I can only imagine that every door they face is a potential hurdle to living a comfortable life. For the rest of us, why are we letting ourselves go to the extra effort of working around someone else’s poorly designed door handles? I regularly have to use a door, the handle of which is almost a perfect cylinder, about 7cm radius and 7cm depth, made of smooth cold metal. There is smooth indentation in the side to provide some purchase on it, but the number of people who have had the handle slip from them (the door is on a returning mechanism) and potentially had fingers trapped trying to catch it is reason enough for the handle to be sent for destruction. Again, completely solved, such as the Range 111 from this company.
- (If you didn’t think it had happened already, this item marks my decent into madness). Socks. Everyone knows that you can never find a pair of socks, but there are very few solutions to this problem. Wearing odd socks is not generally appropriate, nor is wearing no socks. You could buy socks of such varying colour and pattern that checking for a match is easier, but that doesn’t necessarily mean the socks stay together or are easy to find in a pile. Buying just one type of sock only works if you buy a lifetime’s supply, as after a while it will be impossible to find compatible replacements (dependent on how stringent your requirements for a match are). Companies hiding a unique but clearly distinguishable code of some kind on the bottom of the sock would be good, but would again not make finding the matching sock much easier. One solution is to collect up a few days’ used socks inside a washable bag, but that means leaving a bag full of dirty socks somewhere, and still requires some processing to rematch the socks after the cleaning process. My recommendation then is to buy plastic holders which have two joined circular grabbers, so you can put one sock in each and wash them as a pair. The administrative cost is minimal, and I don’t believe it adversely affects the cleanliness of the socks during the washing.
- (It gets worse:) Cakes. If your job was designing a box or tray for cakes, which would either have a lid or some wrapping placed over the top, could you really claim you were not a complete incompetent who shouldn’t be trusted with any job more complicated than breathing if you didn’t make sure the height of the box / tray was bigger (by a margin) than the height of the cakes it would contain?
- Cups. Do you use cups? For drinking out of? Do you like them to fade or warp or cloud? Do you like replacing them when they break or chip? Do you have cupboards which can take enough cups for everybody and guests without having to stack the cups? Then why has anyone ever bought cups that don’t stack and aren’t built to last? Why did I actually have to do research to find out there is a range of affordable, appealing, usable, polycarbonate beverage containers and crockery out there? Oh, and polycarbonate is not just for kids. Ever wanted to have champagne glasses on the patio? The durability of these things is also due to the requirements of the catering industry, so this is professional grade.
- FLOPPY DISKS?! I recently had to help transfer a file from someone’s laptop, despite being somewhere surrounded by thousands of pounds of networking and computer technology. We were left with the choice of waiting 24 hours for the owner of the laptop to go home and pick up their USB pen drive, or asking someone to go and hunt for a floppy disk they thought they might have somewhere. In the end common sense and Ethernet prevailed, but it was a close call. Some mixture of wireless USB, bluetooth and improved BIOS support should finally kill off the floppy drive in the 3rd decade of this century.
Thank you, I feel a lot better now. Of course, these are minor concerns, and not nearly as worthy of note as the usability successes out there, although sadly usability is one of those things where, if you do your job right, no one notices. Let me give two examples of usability efforts I have made which I think have paid off.
- Highlighting important words in long blog posts. It should be obvious that this aids readability and thus usability, firstly because it gives the text some features, making it easier to navigate, and secondly, clearly, people often use highlighter pens on dead-tree documents for just such a purpose.
- Webpage button text. I recently did a simple usability test on a web application I have been writing, by asking someone to complete a task with it. On one page I have the option to type in data and have it added to a list, which appears below the data input part of the form. Despite me having put the “Submit” button for the list below the list and separate from the data input part, the user insisted on using that button, rather than the “Continue” button located right next to the data they had just entered. This is not the user’s fault. I am familiar with instances of user error, but the interface I had produced was ambiguous since it relied on an idea of “continuing” which was not immediately clear (well, expect for in the instructions at the top of the page which the user didn’t read). I simply had to change the button text to “Add to list” and “Submit list” respectively. Of course, then the PHP I had written which checked for a variable of value “Submit” failed, which is a good lesson in adaptable programming.
Hopefully that says it all. What’s the opposite of a usability nightmare? A usability dream come true.
|