Tuesday, January 8, 2013

What Users Don't Know About Layout

Does it sometimes feel as though you're playing with a Rubik's cube when interacting with certain interfaces? At times, it can feel as though I can do more harm than good with the ten thousand layout-tweaking controls presented to me. Sometimes, these layout tools are in fact widgets themselves, occupying a seemingly small portion of the application space. They're not hidden away under the cover of the "advanced, break in case of emergency" section of the settings page. But I don't understand the layout of your application, so how would I even begin to go about fixing it? And does it even need fixing? Maybe it only matters if the application has gone out of its way to provide the ultimate in customization.

Let's not forget though, there are the obvious UI controls where adjusting the layout, slightly, make sense. It's these minor adjustments that don't overwhelm the user and actually make sense from a development effort perspective as well. The default layout that ships with the application — what the user sees out of the box — might work almost all the time except for the odd case of long-running text. If the user were able to correct that minor annoyance by dragging the side of the pane, slightly to the right so as to enlarge it, they win. They didn't need to sift through a pile of UI options nor are they bogged down, trying to see past all the widget wizardry to the application itself. These little, obvious freedoms we give to the user because they serve a purpose. And the re-configurations aren't so free-flowing, limiting the potential for disaster.

What this makes me think of is the good old days (naive old days) where I'd think a configuration value, a UI toggle button, a re-sizer — really did add value to the software. All things that lay just outside, but pressed right up against the application domain. It's not just a slippery slope for users — developers can trip themselves up in the madness as well. All these things really start to weigh down your software, quite early on in the development cycle too. And, if experience is telling in any sense, it's that additional, potentially superfluous options and widget magic, breed exponentially. You start to notice problems with the UI that aren't really there. You picture users interacting with your application and wondering why they cannot make the entire screen do a barrel roll.

Just as developers are their own worst enemy, so too are users. But only if you allow them. Freedom with UI layout is a really difficult thing to define in terms of user expectations. An obvious exception to this is mobile development, where space is confined, and there are so many applications out there that we can clearly see patterns that work, and and those that don't. Lot's of focus is on mobile today, maybe that's a strong point for both users and developers — less layout freedom. Not that we should institute servitude in our user interfaces, marble sculptures that look pretty and do not change. We give a little layout freedom, the kind that fixes the obvious, without getting the user or the developer into trouble.