Jan 25 2007

Human Computer Interaction

Over the holidays I read a magnificent book titled Designing Interactions by Bill Moggridge.  It’s an incredible collection of history combined with interviews from many of the great computer interface designers and entrepreneurs from the past 30+ years.  The stories are superb, the interviews well done, and the pictures are incredible.  It’s a must read for anyone serious about designing computer software of any sort.  It’s a big book – I petered out about two thirds of the way through it as Moggridge shifted from storytelling to predicting the future – but I fault myself for trying to consume it at one time (and expect I’ll go back and try some of the later chapters again.)

The other day, as I pounded away on my keyboard and moved my mouse around the screen clicking away feverishly, my mind started wandering on the “there must be a better way theme.”  My mind wandered to an afternoon that I spent playing Guitar Hero with my friend Dave Jilk and it occurred to me that there have been three companies that came out of my fraternity at MIT (ADP) that have built companies commercializing unique models of human computer interaction.

Guitar Hero from Harmonix Music Systems is the first and one that Dave and I were both involved in early in their life.  While the first person shooter video game metaphor has been around forever (think Asteriods and Space Invaders – the category was NOT created by Doom – just made more fun and bloodier), I eventually wore out on video games because I got bored of killing things.  When Harmonix came out with Guitar Hero, I got a copy but didn’t do anything with it.  A few months ago I finally started playing with it and immediately became addicted.  So have a bunch of other people as it became one of the top ten games of 2006.  Interestingly, much of the buzz around the Nintendo Wii has been similar – rather than using a joystick to move a killing machine around a fantasy world, we get to interact with games much more physically – through a different interaction metaphor. 

The Roomba from iRobot is another example of this.  Colin Angle and his partners ultimately created a consumer based robot that does one thing extremely well – vacuum your floor.  Metaphorically, they’ve simply wrapped a bunch of software in a consumer device that enables a radically different and fascinating human computer interaction model.  If you’ve got a Roomba and a dog, you’ve also learned that the animal computer interaction model is a blast to observe.

Oblong is another company that came out of someone’s brain that resided at 351 Mass Ave in Cambridge (yup – it must have been something in the water.)  The best way to describe Oblong is to ask the question “do you remember Tom Cruise in Minority Report?  Remember the wall sized computer he controlled with his hands.  That’s what John Underkoffler and his partners at Oblong have created.

It didn’t dawn on me how important this was until I started putting the pieces together that our current UI metaphor – which started at Xerox, was popularized by Apple, and mainstreamed by Microsoft – is starting to grow long in the tooth.  I’ve been using a T-mobile Dash for the past few months and while I love the device, the Microsoft UI is immensely frustrating.  I’ve trained myself to be incredibly efficient with in (and largely control the phone functions with speech), but the iPhone bashed me over the head with the current level of fatigue that I (and I expect others) have with their current UI metaphors.

While Amy likes to ask me – when she gets frustrated with Windows – “what was wrong with DOS and the command line anyway?” it prompts me to wonder why I’m sitting at my desk pounding away at a keyboard.  There are – and will be – better ways.  It’ll be fun to look back N years from now and say “boy – that WIMP UI sure was quaint” kind of the way we think of “C:\>” today. 

Update: This morning, as I was reading the Wall Street Journal Online, I saw Walt Mossberg’s review of Enso from Humanized.  Excellent retro stuff – now I get to type “Run Firefox” to run Firefox.