Monday, March 8, 2010

OCGM and Occam's Razor

Many of you may be familiar with the concept of Occam's Razor, in short, "The simplest explanation is likely the correct explanation". I've horribly paraphrased here but give me a break. In the style of Occam's Razor OCGM is a simple and abstract set of elements for UI design in the future of Natural User Interfaces (NUI). Conveniently (and relevantly) it is pronounced "Occam".

Back in 1997 people started questioning the applicability of the current WIMP (Windows Icons Menus and Pointers) paradigm to the upcoming NUI generation of HCI. When we think of interfaces such as speech, hand gestures or touch it is very hard to think in terms of the standard GUI WIMP toolkit. So recently Ron George has suggested we think in terms of these things:
  • Objects
  • Containers
  • Gestures
  • Manipulations
You can read his original post here

I'm not going to go into the complete explanation of each of these, I will leave this up to you. I will however talk about my feelings in regards to OCGM. For one I think the acronym is brilliant. Its managed to stay in my head with barely any effort, and in the heads of the people I've told about it. But thats not the important part. Lets start with the things I like about OCGM.

The important thing I like about OCGM is the natural way it links to the idea of metaphors. One thing that keeps popping up in my research of UI design is the importance of metaphors. When a user first sees an interface they are much more likely to comprehend the interface and be able to easily pick it up if it has obvious metaphors they are used to. On a computer this might be the way that "Folders" are used to collect "Files" these are obvious metaphors to an office situation. Or how the buttons on my media player are the same as those on my video player. Metaphors allow the user to move from the real world to the virtual world with ease. OCGM can also be used to describe the real world. Things we use in every day life are Objects and of course Containers are obvious. Manipulations are the way we physically interact with things. Then we come to gestures. This one might be a little harder to pin down. But in the real world I see gestures relating to communication. When I wave goodbye to someone, this is a very simple gesture. When I say "How's your day been Bill?" this is a slightly more complex one. 

Now, moving back to computers. Imagine an interface for sorting contacts. Let's imagine this is an application on a multitouch fridge. A standard WIMP approach would be to have a list of people going down a page. Click to show each person. Open a menu to edit, save etc. Imagine giving this interface to a 4 year old. They wouldn't know what to do. Now lets think in terms of metaphors. In the real world people represent themselves as Business cards. We can store business cards in books. So these become our Objects and Collections. Manipulations are obvious drags. Our gestures might be a double tap to edit, or maybe a hold.

So at this point we have an idea of why I like OCGM, when we remove ourselves from the restrictions of WIMP we are much more free to design interfaces in a natural way. This is good. By imposing only vague restrictions in forms that are familiar to people from the real world we only restrict ourselves to things that make natural sense.

I guess this is the part where I go into criticisms. My main criticism of OCGM is in Gestures. I understand exactly what the difference is between Gestures and Manipulations but I feel that in a Tabletop or Multitouch environment (as Ron uses for an explanation) Gestures are something which do not come naturally. I'm currently torn up between the idea of one global gesture, which brings up menus. Similar to the "menu" button on android. Or individual gestures which users learn over time to perform actions. At the moment I much prefer the idea of objects which serve as tools for commands. For example imagine back to our contact organisation system, if a naive user wanted to edit the information the interface does not show an obvious way to do this. But if we had some sort of "Editing Pen" we could drag this object onto the contact and suddenly it becomes editable. Of course my problem with this approach is the clutter that could come about.

At this point I'm mostly sold on OCGM. I don't think finding a magical WIMP replacement is a huge issue, but I think OCGM sets a nice foundation. A foundation that allows UI designers to remove themselves from their restrictive environments and let their minds free. I'll of course be doing more research into this and will be thinking things through a bit myself.

If you have any thoughts of your own, the comments here exist for a reason.

Sunday, April 12, 2009

First!

Just showing my mother what a blog looks like :)

Today was a fun easters day. I woke up to a small (suprisingly large) amount of easter chocolates. Which was nice, considering I'm now beyond my child years :)

Also went skateboarding with my cousins and had a delicious lunch that my parents cooked. Amazing potatoes.

Also I like apple cider.