Dec 16 2008
Usability & User experience
A few days ago I wrote a short note about the importance of GUI. But GUI alone - the set of graphical widgets, that present information and allow to perform actions - is not everything one should consider when creating application. The second, very important thing while designing application is to focus on how this application will be used, make it as easy as possible, create interface that will be easy (so easy, that users will not have to read documentation just to get to know how to perform some tasks, that application is capable of performing), interface that will not be annoying (avoid forcing user to click in many places to perform one action) and many more. Wikipedia’s definition of usability is: “Usability is a term used to denote the ease with which people can employ a particular tool or other human-made object in order to achieve a particular goal. Usability can also refer to the methods of measuring usability and the study of the principles behind an object’s perceived efficiency or elegance.” So, I think, there is no need, to explain further what ‘usability’ (in terms of designing software) is. Let’s face some real-world examples:
Control Panel link in Start Menu (Windows 95)
Windows 95 GUI was fresh, and gave much better user experience than the old GUI designed for Windows 3.x. Although there were a lot of small ‘bugs’ or things that were possible (not at the first sight) but were not easy to achieve. One of them, was creating a menu (link) to control panel in Start Menu. It was possible. The only things one should do, was to find proper key in Windows Registry (well, not the key, but it’s GUID was to be found), and create a folder, which name was GUID itself. This kind of folder pointed directly to the content of Control Panel. The same trick worked for other special folders. Anyway, the thing is, that some of my friend, that were proud Mac owners at the time, claimed, that it ’stupid’. Stupid, because it so hard to do, and Mac allows to do such things just using drag & drop technique.
Fonts in cmd.exe
When you look a little bit closer to cmd.exe (or command line console - if you prefer) you realize, that this ugly bitmap font (the default one) hasn’t changed for a long, long time. It is default font, and it looks the same (or rather: is as much ugly) in Vista and in Windows 95. Can’t it be changed? Of course, it can. And again, it could be made by digging and changing Windows Registry.
Where does my tab-close button go? (Mozilla Firefox)
Firefox was one of the first browsers that incorporated tabbed browsing - something that many of us can not imagine surfing without. But there is some strange behaviour of Firefox, when it comes to tab-closing button. If you have only few tabs open - it is always placed on every tab (on the right side on the tab title). But what happens, when user opens more, and more tabs? Well… the button disappears! Simply, none of the tabs has it. Why? I don’t know. What’s the solution? Ctrl+T for new tab, in the address bar type famous “about:config”, browser.tabs.closeButtons’ value should be 1 (to show tab closing button for all tabs), and browser.tabs.tabClipWidth’s value should be way smaller than default 140 (this value is the minimal width of the tab title, if its smaller, tab close button is being not displayed).
Did you expect that there is still so many to do in the field of user experience, usability? Is there anything that software designer could do, to make their applications better? Of course! In the first two examples the changes are obvious. In the first case, managing special folders should be the same as ‘normal’ folders, so copying them, linking to them should be possible - there is even better solution: a wizard that will let anyone personalize its start menu (similar to what it is being done right now in Windows XP and Vista, but it could be a bit more user friendly, IMO).
I am wondering, what is so hard in making ‘Courier New’ or ‘Lucida Console’ (both of them are TrueType fonts) the default font for cmd.exe? Those fonts look a lot better than default bitmap font (which is so ugly, that I wonder how anyone can actually work with console that has this font set).
And the last issue… I assume that the worst thing in the case of ‘disappearing tab close button’ is that it is silent. You’re just surfing the web, opening more, and more pages, maybe close your browser, and restart it the very next day… and there is a moment, that you realize the buttons are gone. And it’s so strange, because ‘they were always present, on all the tabs’, right? So first of all, I think that Firefox should warn user (but not with standard message box dialog that nobody ever reads) that tab closing buttons will not be displayed anymore (as long, as tabs are so narrow). I think, this message box, should have some animation showing that the button is being ‘kicked off’ from tab titles (it’s not hard to do, just a small gif containing about 8 frames of animation will do). The message box (or dialog box - better) could provide a smart wizard, that will let user choose how the browser should behave. That’s it. I think, it would be much better, and less confusing for many people.
Usability could be taught on example, there are dozens of applications around, and it is sometimes a good idea to think if they work the way users expect, or users are just used to applications’ design? How many clicks does it take to perform a simple action? And how many different ways exist that allow to perform a specified task? Are all the ways obvious? Does user need to go over and over to some kind of menus to change some properties during work? Are the most common tasks and options grouped? How? Are messages easy to understand to anybody (not only some techie guys)? There’s definitely more question that software designer focused on GUI and usability should ask while (re)designing.
At the very end I would like to point that there are some books that should be interesting for people who think that designing GUI and usability is not just a waste of time and resources. First book I think is worth reading is “User Interface Design for Programmers” by Joel Spolsky (it is also worth to take a look at his blog). The other book I think is worth reading is “Why Software Sucks And What You Can Do About It” by David S. Platt (there is a sample chapter available on David’s book page). Have you ever thought that there is no point in thinking about some small parts of the application? David presents great example: the message that user gets when they want to close application and their work was not saved. Is the standard message easy to understand to anyone? It definitely should, right? There is a thin line between sticking to standard solutions used in GUI design we see in modern apps, and the need of improving user experience. If nobody at Microsoft thought that problem of Office was in its poor GUI - Ribbon would never appeared. The same thing is with context menus: why options (entries, whatever) are being placed one under another? Is it really comfortable? Or was it the most simple solution (rendering rectangle is the simplest what you can actually do in graphic environment). I’ve seen lately some proposals to change standard context menus to circles (all the options are equally available in terms of ‘mouse distance’). There’s a lot more to think about. I just hope that modern apps are going to be more and more easy to use (so they make us all more productive, and we’ll all have more time to relax and enjoy our lives).

