Why don’t UXers use GOMS?

Many UXers are familiar with GOMS but I know none who regularly use it.

Do you think people regard it as outmoded or might it just be the lack of decent tools that stops it from being more widely used?

Do you have an example where you’ve found it useful, Danny - any particular design challenges, products or industries where it works well? It could be similar to what happened to the whole Rational Unified Process movement - some validity, but too cumbersome as a process and few adequate tools to use, and some more Lean methods became more common place.

I’d say GOMS is broadly applicable, rather than industry specific. But past products have all failed at letting people use GOMS efficiently.

If a product could be created that didn’t get in people’s way then I think it could be useful for:

  • competitor site/app analysis
  • communicating with the kinds of stakeholders who relate more readily to numbers, managers for example
  • getting real-time design feedback

Part of me wants to say that it’s because many of us came to UX as an evolution of other things we had done in the past, rather than went to school for it as a program.

So, by doing this, it would have created a non-standard approach in the early days for UX, which meant that we would have internalized the information largely depending on what we read and what made the most sense to us as we learned it.

Personally, I started out as a graphic designer from an advertising program, became a programmer, then an information architect, then a creative director, and then I went back to school for Anthropology. Now I manage an eComms team and we make UX part of everything we do, including business process re-design, service design, web, etc.

So, in short, I think there are many competing frameworks and methodologies out there, and because a lot of us lacked the “formal” training that an educational program would have given us, we feel overwhelmed by the amount of options, and so we just pick up things as we go along.

I had to look up GOMS by the way. Although it makes sense as a concept, I had not heard of it before.

@thatVargas I can definitely see your point about coming to UX from non-academic places.

A while ago I made a spreadsheet to help make GOMS analysis easier: http://dannyhope.co.uk/goms

It’s very crude but I’d be interested in hearing what people think about it.

Hi Danny! Thanks for sharing your spreadsheet. I perpetrated one some years ago, I think yours is way better :slight_smile:

I have used GOMS for applications that are input intensive: from internal management systems, to ecommerce apps where users had to shop 50+ items per session.

Aside from that, I usually teach GOMS in my classes:

  • Together with Fitt’s law and Hick’s law, reveals what is otherwise invisible, focusing students on the operation itself, thus serving as a great way to introduce good interaction principles and practices.
  • It is a great exercise to come up with an optimized GOMS first, and designing an interface for that interaction later (reversing the usual trend of operation being an accidental result of UI decisions).
  • As a plus, developer audiences can relate it to the arcane practice of counting T-states, and gain some respect for our discipline :slight_smile:

That said, the bunch of my current work is on applications that are sparingly used. So the primary goal there is to allow users to re-discover the app every time, as painless and fast as possible. Once the basics are covered (reduce mental preparation states, don’t make the user go back and forth between mouse and keyboard), a thorough GOMS analysis would yield very little efficiency gains, while risking to negatively hit discovery and effectiveness.

TL; DR: Most GOMS techniques are hard work and deliver dubious value. However, playing with the simplest variant, KLM GOMS, is a great way to improve your understanding of detailed interaction design. If you want to be a better designer then this kind of thing is worth doing. Thanks for making it easier, Danny. Otherwise, good quality tips (like Luke Wroblewsky’s ‘UX How-To’ videos) will give you most of the answers.

In detail… Well, first up, it’s worth saying that GOMS is a family of techniques rather than just one thing.

Most members of that family try to convert human behaviour into something like a programming language. Those techniques have fallen out of favour because they’re convoluted, require a great deal of training and effort to use and are incomplete / unrealistic / dated (take your pick) models of behaviour. The evidence that they deliver useful results is rather thin, I’m told.


Danny’s focus here is KLM GOMS which is similar to the common practice of figuring out which interaction is most efficient by counting clicks. KLM GOMS goes a bit further by adding in things like ‘thinking time’.

I rather like this technique. It has it’s pros and cons.

In its favour

  • It makes a designer think carefully about what they’re asking the user to do. It’s surprising how much effort it is to
  • It allows designers to analyse the efficiency of alternative prototypes and sketches more accurately than is possible in a think aloud test, more cheaply than is possible by building two designs and running an AB test and more objectively than sitting round a table arguing.
  • It highlights some important principles in interaction design - such as the need to keep users in a flow. Conducting a few KLM GOMS analyses is a powerful way to learn what’s good practice.

Cons are:

  • It’s a rigorous analytic technique that’s hard to automate. It can be hard work.
  • It’s not suitable for interactions that last more than a few seconds.
  • It assumes the user is familiar with the interface (so it doesn’t tell you much about novice users).
  • The ‘thinking time’ approximation is problematic.

I could go on, but that’s the gist.

With that in mind, I seldom use KLM on projects. But I do use it to help derive and teach principles and tips for interaction design which are easy to apply day-to-day.

If you’ve not had a play with KLM, I’d say that it’s worth looking at. It’ll give you a deeper understanding of what works and it’ll help you appreciate (and create) good details in design. When I teach it, I’m always surprised at how much people get from it and how enthusiastic they are about it.

Jeff Sauro has a nice example on his Measuring Usability blog which should get you started. The book The Humane Interface has a very discussion of it.

Anything that makes KLM simpler (like Danny’s spreadsheet) is good news for me!

If you just want some tips, check out Luke Wroblewski’s videos on YouTube on improving forms and input fields. They’re excellent.

1 Like

I don’t really view GOMS as outmoded, I just find the scope where it’s the most useful way to spend my time pretty limited. There are definitely places where it’s still used, but the constraints of it being expert user, ignoring non-motor-skills aspects, ignoring motor skill constraints, lack of error models, etc. mean that for the kind of “normal” web app work that I do it’s not an effective use of my time.

Simplified models like KLM GOMS are so wildly inaccurate outside of those constraints that I think they hinder more than they help. In particular over-simplistic readings of GOMS analysis can lead folk to focus purely on reducing steps/time and ignoring issues of learnability, enjoyment, copywriting, discovery, etc. Which can lead to some bad, bad decisions.

Full on CMN or CPM GOMS deal with some of the problems with KLM GOMS - but they still has a bunch of constraints, and takes a silly amount of time and knowledge to do well. That’s not really down to lack of tools — but to the fact that you need to have enough in-depth knowledge of the user groups, error rates, fast/slow man times, etc. before you can create vaguely accurate models.

I have to admit that, for me, GOMS is the wrong tool for the job when it comes to things like competitor analysis and client communication…

@adrianh have you used tools or taken the spreadsheet approach? If you have used tools, which ones?

Disclaimer: Not done any GOMS stuff for about 10 years on real projects. Like I said it’s not something I find useful. So beyond talking through it with students ‘n’ stuff it’s not something I keep track of the state of the art on.

The times I did KLM GOMS I just hacked something together myself with Excel.

Never done CPM GOMS on a real project.

The one time I did CMN GOMS by myself I hacked some code together myself to help support some of the data gathering stuff and analysis stuff. I also used another tool on a third-party project — but it was so long ago that I can’t remember the name. Some of it looked a little bit like Cogulator but it predated that project by quite some time. Might have been something they rolled themselves internally. They had a DSL they used describe the model and make pretty pictures and graphs — but this was not far of 20 years back now. I might have some paperwork on it in storage. I’ll check next time I’m there.