Wednesday, September 21, 2005

Vista designers – beware of dynamic information

I just watched an interview with Kam Vedbrat, a lead program manager on the AERO team which redesigned the User Interface of Windows Vista.

The interaction design industry needs a set of formulated rules. Really. Axioms describing the few do's and dont's that we actually know about, preventing old mistakes from being implemented over and over. After all, we're dealing with a science here.

I'm thinking of the window buttons (close, maximize, minimize) of the Vista calc(ulator) window: The actual options light up first when the user hovers the mouse pointer over the buttons.
Apple has almost the same mistake going (although not as severe) with the close, fit-to-content and minimize buttons of the aqua windows: The function of each button is revealed (although I wouldn't say apparent) first when the user hovers the mouse over these buttons.

The same design mistake can be found later in the interview, as Vedbrat demonstrates the Vista task bar: as he hovers over each task bar item, a minimized preview of the corresponding window is shown immediately above.

In this case, the ole' screen space excuse is noted into the log.


However,

a user interface can be said to consist of two elements: information and information. One is static, and the other is dynamic.
If one of them is to take up more screen space than the other, it's the dynamic one: The location and content of minimized windows is constantly changing. What is constantly changing, is constantly harder to find (let this be an entry into that set of interaction axioms).
What's even worse is that minimizing yet another window will change the location of other, already minimized windows.

Besides, if what is said in the interview (about the amount of windows an average user uses) is true, namely four, screen real-estate really isn't a problem here. Although the Mac OS X (in?)famous dock also has its problems, it does show previews of each minimized window, constantly visualized. Good Apple. Now if only the minimized windows were to stack around their application icon somehow...

Tuesday, September 06, 2005

Monotonous interfaces and context menus

Among the top 8 (see below), point 5 seemed to have annoyed you the most. I shall clearify "our love of choice" further, starting by quoting myself: "[the GUI] would lack any settings /.../ related to changing the way you interact".

I think customization is a good thing, even necessary, as long as it's limited to aesthetics such as icons, wall papers, window backgrounds etc. Changing the way interaction takes place, however, isn't.
The reason is that in order for a user to reach an autonomous stage, the stage in which interaction doesn't require the user's full attention, interaction mustn't present any "ifs".

Compare this to pipelines in a CPU. As soon as an evaluation may result in a branch, the pipeline breaks. In the same sense, a user has no way of keeping one step ahead of her actions if her way is paved by trivial decisions.

Such a monotonous interface (Raskins terminology) has interesting consequences. Take your favourite file browser's context menu for instance. What if we removed every menu item that can be accomplished in any other way?
  • Double-click instead of Open
  • Drag to application icon instead of Open With...
  • Drag to desktop printer instead of Print
  • Move to trash instead of Move to trash (what were they thinking...?)
And so on.

Do this throughout the interface, and we will have obtained something cleaner (less-cluttered), with clear, atomic interaction metaphors. For a new user, the basic concepts of interactions would have to be learned: "send this document to the printer by dragging its icon onto the printer icon".

What could be in a context menu, according to my book, are options directly related to the document: manipulation of meta data. So I've put together a small example of how access privileges could be altered using a radial context menu (which unfortunately doesn't have too much to do with monotonous interfaces...).

The file's are below 400 kilobytes each:

radial_rights.wmv
radial_rights.xvid.avi

Naturally, the example implies "Properties..." / "Get Info..." and the other menu items be removed from the file browser's menu.

(Sorry about the ads and stuff - if you know of a better file hosting service, drop a comment)

Friday, September 02, 2005

Top 8 Reasons HCI is in its Stone Age

1. Screen Corners
Let me introduce you to one of the greatest mysteries of our time: After more than 20 years of research, development and competition in the field of HCI, not one single leading operating system developing company has come up with an OS that utilizes the four corners of the screen. Any five-year-old earth child has probably already figured out that the screen corners are the easiest points to hit - the only locations hittable without looking. Ray Charles figured that out. Stevie Wonder figured that out. And they would probably make a better design team than any money-driven market thugs.

It gets better: The irony is that we argue about whether systems should be application-centered or document-centered, probably the two most important entities in a computer. Have you ever seen a system which lets you, out-of-the-box, hit a corner in order to do anything at all even remotely related to anything having anything at all to do with a document or application? So maybe documents aren't the most important entity in a computer. Browse the internet by hitting the screen corner? Check mail in the screen corner? Get Info in the screen corner? System preferences in the screen corner? Switching applications in the screen corner? No, or, well. In Mac OS X you can trigger Exposé by hitting a screen corner, although Exposé rhymes bad with point six below, so that hardly counts.

2. OS GUI's are Designed for Beginners.
Ooooh. there's nothing wrong with that, as long as you can grow with your user interface. Problem is, we outgrow it in a matter of hours, and after that the OS is nothing but a nail in the eye, a cow in the car, a space tit, a belly-barn shackle in the reunion of unjustified friends. Just something you have to hazzle with. So is it possible to design a system that's suits both beginners and professionals? (No t33n-N30, the answer isn't »Pr3f3r3nc3Zz!!!!!!!! 1337-H4XX0R5!!!«.) Leaving the question unanswered for now, let's just face the fact that we are all beginners the first few hours in our computing career. The rest of the time, we're victims. Wait... an image is forming in my mind... It's a sweaty, hard-working bare-chested carpenter with a tiny red plastic hammer in his hand. Yes. This is his tool. Yes. He's been using it since he was 5.

3. Visual Attention - Sine Qua Non
Every single little tiny-weeny little interaction-shraction requires your visual attention. And I'm not talking peripheral attention, nooooo, then we could all go home and interact, couldn't we? You have to actually drop focus on what you're looking at and move your eyesight in order to find that tiny little resize button of the window. If your screen is large enough, you are even forced to move your head to find that window resizing widget. There's more penalty: once you're done, you must relocate that thing or text you were reading before you got the divine idea of resizing the window. The same goes for moving, scrolling, closing, zooming, panning and... <insert anything here>. The Alfred Einsteins over at Adobe's somehow found out their users like to pan their documents (inside information? mole in the building?), so they assigned the SPACEBAR to invoke the »divine semi-mode of panning«. All respect to Adobe for that - they did better than the combined efforts of Redmond, Cupertino, Ray Charles and Stevie Wonder (which equals the combined efforts of Ray Charles and Stevie Wonder). However according to my book, an action as atomic as panning mustn't be mode driven. In this particular case, Adobes panning only works if the user isn't inside a text object typing, in which case that »divine semi-mode of panning« is reduced to nothing but a space. An unwanted space at that.

»But sir, all the other keys were busy!!«.
No they weren't.

Situations like these make me feel sorry for the spacebar. So big and strong... He totally rules over the other keys, and yet all he produces is... nothingness. I hope I never find myself in the situation of having to explain to aliens what the LARGEST KEY ON THE KEYBOARD does. »Well... this key? Right over here? Ah, the chubby one! It.. spaces... kind of... leaps.. a tiny bit. In the text... <demonstrates> See...? Nothingness! Hey, I know how this must sound... Hey! Wait!! No!! Come back!! But we just met!! COME BACK!!«
That's alright, they would probably have left anyway as soon as they saw me clicking »Start« in order to shut the computer down.

4. Multiple representation of the file system.
I'm talking files and folder here. One representation on the desktop and another one when opening and saving files (yes, dialogs). See point six.

5. Our love of choice
I bet you my bunny the former Soviet union could have designed a better operating system GUI than any of the software vendors of today. Not only would their GUI allow you to get the job done faster, it would completely lack preferences, freedom of choice and any settings even remotely related to changing the way you interact. And there's more: Their GUI would provide one way and one way only of accomplishing an atomic task. Imagine what that would do to a context menu!
Throw one preference at my bunny and he'll probably tell you why it's unnecessary.

By the way, did you know that one-knob faucets were originally designed for disabled persons?


6. Our Disrespect for Spatialness.
Spatial navigation is a condition for eventually being able to navigate by using muscle memory. Muscle memory, along with prediction, is superior to any other navigation method in terms of speed.
This, of course, requires that you know your own file system.

In order to explain what spatial navigation is all about, we shall delve into a comparison to (say) getting cutlery out of kitchen drawers:
Before you open the kitchen drawer (which you can easily locate since it only exists in one place and in one shape), you already know the forks are on the left side. Even if you don't, you can easily localize the forks by just looking, and you will soon have learned that forks are stored on the left side.

Adding non-spatialness to the same example would mean that you first have to locate the kitchen drawer. Even if you have a nice and shine drop-shadowed kitchen drawer in your mind, your mental model of the kitchen, you still have to associate it with the name »kitchen drawer« in order to find it. Because the string »kitchen drawer« is what you're looking for. Eventually you locate and open the kitchen drawer and see but cutlery labels - »forks«, »knifes«, »spoons« - and you are forced once again to recall what the thing you're looking for is called. ("Zirconium oxide kyocera knife"...)

You will eventually open the non-spatial drawer again... (that is, after you've located it, for who knows? It might be easier this time. Perhaps you're in a part of the kitchen close to the drawer? Or maybe the cutlery drawer is in the recent items list? Go and have a look, but beware - if it isn't there, you have to navigate to the kitchen drawer »from scratch«) ...and you may figure that this time, at least you know exactly where to look... (this is true only if you manage to find and open exactly the same representation of the kitchen drawer you used last time) ...BUT, you would then be using spatial navigation!

»Spatial navigation eventually renders the declarative knowledge of the kitchen drawer secondary to the task of opening it, making way for an autonomous stage in retrieving cutlery out of kitchen drawers.«
(WELL PUT J R Anderson, The Architecture of Cognition, 1983!! (Ok. Somewhat modified to fit the example.)

Folders hosting a large number of files pose a problem no matter what representation you use - probably because 1000 files in a folder cannot be called »organized«.
Spatial navigation is in our nature. A desktop is entirely spatial, so what's the point of having a non-spatial metaphor?

Anyway, predictability is the key word, and is along with screen corners by far the thing I lack the most in modern operating system GUI's.

7. Terminology
The terminology we use is a strong indicator of stone age: »User-oriented« design. »User centered« design. Come on! Around whom else would the design be oriented?!

8.
We wish to rotate an image, shrink it 50%, attach it to an e-mail and send it to a deaf musician.
I'll leave this one up for you to decide: Which of the following approaches do you think would prove to be the easier one?

A. Utilizing a »modern« interface: The procedure would involve several clicks, mouse drags and keystrokes, and also require expert skills in order to complete the task in less time than one minute. Moreover, in order to complete the task at all, a number of subtasks (which are actually unrelated to the task at hand) need tending to. We need for instance worry about choosing a file name and a location in the process of storing the image, and then, from the e-mail application, locating the image we just stored in order to attach it.

B. Say »Tip a quarter to the right, crop by half and e-mail to Stevie Wonder«.

By the way, did you know that one-knob faucets were originally designed for disabled persons?