Empirical User Experience Design Through Action Costs
I haven't fully fleshed out this idea, but I wanted to write about it and see if there was anyone else who had done something similar already. What I'm talking about is a numeric way of measuring usability and ease of use for mobile user interfaces. Well, probably any user interface on a computer really, but for now I'm thinking about just a modern smartphone.
The way I imagine it working is that you name a "task" and then assign it a ranking based on the number of "actions" it takes a user to get to that task and back again from the home screen. Various actions would cost more points, and the goal would be to have the smallest number possible. For example, sending an SMS text message would be a type of task, and every single movement you needed to make to accomplish that task would be ranked and totaled.
Let's assume we're talking about a phone with a touch screen - iPhone, Android, S60 5th Edition, Palm Pre, etc. - the most basic action is a "touch", which would be ranked as a 1. Now, to me, some actions cost *a lot* more than others. Any time you change contexts - for example, changing to a completely new screen - would cost 5 points. Menu items would cost 2, but hierarchical menus would cost 4 or even 5 per level. Scrolling could cost 4 points per "page" of info. "Modes", dialogs, hidden items, or stuff that changes contextually would cost even more, as I think there's nothing more frustrating than looking for an option you *knew* you had seen before, only to have it disappear because of some arbitrary mode you didn't realize you were in.
Decisions are also a cost as well. Just because a menu is easy to "use" doesn't mean it's easy to *understand*. If you've got seven items on a menu or 10 sections on a form, then that should cost more to use since the user has to waste mental cycles choosing something from a giant list of options.
Now, ready for this part? I think the cost of the action should be *multiplied* by the number of actions you've taken already. So as you have to do more, the costs for that action cost more and more. A menu item that's one button away from the home screen would cost 8 (2x4), but one that's buried 8 levels deep would cost 32 (8x4).
I also think that additional ways of doing the same thing should also contribute to it's cost in an additive way. If you can send an SMS from 10 different areas, then each of those tasks should be penalized with a +10. Why? Because you have to take into account the learning process of new users. Being able to communicate a single way of doing something increases the chance they'll hear and see that way of doing things more than once. In my mind, having 10 ways of doing the same thing decreases the chance you'll learn how to do something the same way more than once, which is confusing.
Plus penalizing additional ways of doing something would help those constant debates that go on about which interface is better. If someone says, "Well, sure you can send an SMS with a 10 if you do it that way, but if you do it this other quick way it's only a 4!" Ok, but that's confusing to everyone else, so you get a +10 penalty, you know-it-all, which means your UI *still* sucks. This could also prevent GUI designers from tacking on quick fixes to difficult UI problems.
Finally, "soft keys" and randomly placed physical buttons are hard to find and generally so confusing they should get a massive penalty right off the bat. Having to "hold" stuff to get options suck as much as double-tapping. Swipes and other gestures have to be learned, so they get penalized too.
Now, how much every action should cost, I'm not sure. But I think it'd be a great way to start a conversation and standardization of UIs, don't you think? Whether something is "intuitive" or not is so subjective. Tell me how much total "action cost" something has. How many touches, drags, menus, context changes, minor decisions, etc. does a task require?
Let's look at changing my ringtone on an N97 from a blank screen:
- I have to hit the side switch to active the touchscreen. (Random physical button: 20).
- Press the menu button (Random physical button: 20 x 2).
- Touch the Settings icon. (12 icons on screen: 12 x 3, Context change - physical buttons to touch screen: 20 x 3)
- Choose the Profiles option from menu (6 menu items x 4, Context change - icon screen to menu screen: 20 x 4)
- Choose the Normal option from menu (6 menu items x 5, Decision - which profile am I using?!: 30 x 5, Context change - one menu to sub menu: 20 x 5).
- Choose "Customize" from dialog (Decision - Customize or Activate: 30 x 6, Context change - dialog: 20 x 6)
- Choose "Ringing tone" from list of fields. (11 fields x 7, Decision - which field?!?: 30 x 7, Context change - dialog to form: 20 x 7).
Ok, you get the idea - I'm already at like 987 and I haven't even selected a ringtone, saved and returned to the main menu yet. See how as you go farther into the options, the cost of decisions and menus gets higher? That's a good way of estimating the frustration of your users, I think, and an empirical way of judging whether UI changes have been for the good or bad.
What do you think? Is there anything out there like this already? I bet if you spent the effort to test GUIs on real users to get a feel for their frustration levels (and thus get accurate rankings), then codify everything up, you'd have the basis of a pretty kick-ass UX book and consulting company.