August 19, 2006

One button to rule them all...

I don't normally write about work here, but I've recently gotten a request recently that has been driving me crazy. I won't go into details, but the basic issue is this-- we have a screen with several form fields to fill out. At the bottom right we have your basic pair of submit and cancel buttons. At the bottom left we have buttons that do other things-- navigation and print. Last week we got a request from users to combine some of these together, so that the navigation and print buttons will also save.

In my view, this is a big mistake, but in addition to the specific issues it brings up, it has also prompted me to think about what we should be striving for in interface design. On the one hand we have simplicity, which is the direction I always find myself pulling in. This is an exaggeration, but I think something like this should be the ultimate goal:

Interface ideal: simplicity

On the other hand, I find that my clients very often pull in the opposite direction. Believe it or not, the following is actually less complicated in some ways than screens I have had to build, and in a sense represents what I suspect they might articulate as their goal, which is to have anything and everything on one screen that might be relevant to the task:

Interface ideal: completeness

I see a nightmare in this, but in cases where there is a lot of data and variables, I suppose you can make an argument that this is more efficient than a series of less complicated screens.

For that matter, there's also a third ideal which I haven't pictured. It's kind of the opposite of the old Really Big Button That Doesn't Do Anything, and that's The Button That Does Everything For Me. Of course, this button doesn't exist, and cannot exist, at least until computers can suck all our wants and needs out of our brains. And then really, will we even need buttons anymore?

So back to the multi-function buttons...in essence, the clients claim that being able to click on one button is better than having to click on two. If all that was involved in this was button clicks, than I suppose they would be right. However, it gets more complicated than that. First, there is no "save" implied by the button labels as they exist now, so by adding functionality we would be surprising the user by saying that we're going to do one thing, and then doing something else. Second, even if the user knows what the buttons do, what if the user enters some data, then realizes he's made a mistake, or has lost track of something? Suddenly those multi-function buttons are not so attractive, because there's no way to neatly back out without saving bad data, or going back and manually re-entering the original information.

It has been suggested that we deal with these problems by providing additional buttons that are clearly labeled "Submit + X", but this has problems of its own. Namely, we wind up adding new buttons for every combination of functions that we want to have on the page. This particular case has us going from five to eight, but there's no guarantee that we couldn't end up with ten or more if this kind of thing were to take off.

Unfortunately, I don't really have a conclusion to this yet, aside from a kind of mantra of "One button, one function. One button, one function." We'll see where this ends up, but for now I'm just hoping to get more data. I'm not so arrogant as to think that the interface as it exists now is perfect, but the notion of piling functionality into these single-click buttons strikes me as highly unproductive in the long run, even if it makes one customer happy in the short run. With any luck we'll be able to find out what the problem really is, and address that instead of chasing after phantom efficiencies.

Posted by Jason at August 19, 2006 03:44 PM