Grains of Sand

Be master of your petty annoyances and conserve your energies for the big, worthwhile things. It isn’t the mountain ahead that wears you out — it’s the grain of sand in your shoe.
- Robert Service

Although I must admit to knowing relatively little about Robert Service himself, this quote packs a lot of wisdom into two-ish sentences. On its face, it’s both a generally inspiring message (go do big things) and a pragmatic admonition (and here’s where you’re likely to screw it up). It applies quite well to software design.

If you’ve seen this quote before, you probably thought, quite naturally, about how it applied to yourself. But if you’re a software developer, take a moment to consider a user of your software who wants to follow the quote’s advice. She comes to work. Drinks a bunch of coffee. Jumps on the computer. Gets revved up! Ready to do Big Things! Make lots of progress! Don’t get bogged down in petty annoyan…PLEASE WAIT, PROCESSING REMAINING LETTERS OF THIS SENTENCE. DO NOT CLICK REFRESH WHILE THIS OPERATION MAY OR MAY NOT EVER FINISH.

Her ambition inevitably wanes, if imperceptibly, as her shoes fill with sand. I’m going to do something great! degenerates into When will this be over? and I wonder if I could convince Freddy in IT to show me how to bypass the company firewall to get on Facebook?

The experience of using most web software is made of petty annoyances. Getting work done is the art of becoming adept at surfing those petty annoyances. These are the metaphorical grains of sand in their shoes that confuse, frustrate, and exhaust users. As I started to think about software design in this way, I noticed just how many annoyances there really are from a user’s perspective, many of which we developers rarely consider in great depth.

Sluggishness. Unfamiliar terminology. Unintuitive (and sometimes downright invalid) application states. Laughably bad online help. Illegible typefaces and font sizes. Inscrutable error messages. Inability to anticipate the effects of actions. Inability to undo mistakes easily. Cluttered design that turns “finding what to click on” into a linear scan of the entire screen.

Usability advocates will, of course, correctly say they’ve been telling us this for a couple of decades now. I, for one, am ready to truly listen and try my best to act on it. I’m eager to see what can happen if we developers knowingly sensitize ourselves to the cognitive friction–even subtle things–that our software induces.