For those who saw my talk on this topic at UX Australia 2012, you may wish to jump down to the part on applying mental operators.  Otherwise you should go through the deck on slideshare.

Despite having touched on the GOMS Keystroke Level Model (KLM) while doing my Masters of Information Architecture, it wasn’t until I read about it in Jef Raskin’s The Humane Interface last year that I discovered just how simple and useful it could be.  I was able apply it immediately on an investment banking project I was doing at Deutsche Bank in London and was a little bit miffed that I’d managed to come this far without someone teaching it to me.  I was working with some very talented people at EMC Consulting (formally Conchango) at the time and almost no one there had heard of it yet alone used it on a project.

Doing Keystroke Level Model analysis makes you a better designer as it forces you to think about how humans interact with technology at a level that you probably haven’t before.  You learn which types of interaction tend to create more work for your users (like big scrolling drop-downs) and have to think at a detailed level about automation and how people chunk tasks.

Speed isn’t everything and other factors need to be taken into account – but to some degree I would argue that speed always matters.  Elegance and economy of form is a fundamental quality of any type of design and we should always ensure that we are allowing people to achieve their goals with as little work as possible.

Doing KLM almost seems too easy until you get to the part when you have to apply mental operators.  Here are the 6 heuristics from Card, Moran and Newell as cited in The Humane Interface (p 77):

  • Rule 0: Initial insertion of candidate Ms
  • Rule 1: Deletion of anticipated Ms
  • Rule 2: Deletion of Ms within cognitive units
  • Rule 3: Deletion of Ms before consecutive terminators
  • Rule 4: Deletion of Ms that are terminators of commands
  • Rule 5: Deletion of overlapped Ms

Basically you start by adding an M everything.  You then delete any Ms that would have already been anticipated as part of a previous M.  Any Ms that are part of a cognitive unit (such as a word, number or name) are then deleted.  Any M’s preceding Ks that are habitually pressed are removed.  Finally, any M that overlaps an R (system delay) is also deleted.

When I first read this I thought it was impenetrable but it really just comes down to chunking.  The most common chunks you will see will be pointing and clicking (MPK or think-point-click) and typing a word (MKKKK – with a K for each keystroke).  Personally, I find it easier to think about chunking and add my Ms as I go.  Some KLM sources use a specific value for drag and mouse button click, but for back of the envelope calculations simply using P for a drag and K for a mouse click is sufficient.  Most click and drag behaviour is just a variation on MPK (think-point-click).

I encourage you to start using this on your own projects – once you make a start its amazing how quickly you pick it up. Generally KLM is best for modelling fairly short interactions and tasks so don’t get too ambitious.  How this applies to touch screen interfaces is an interesting topic but something I’ll have to cover in another post.