People’s lives are messy, so design for imperfection

big picture ideas | Friday, February 1st, 2013

I think it’s a fair generalization that most designers are perfectionists. After all, who could stand to spend all day staring at a computer screen, aligning all the boxes and putting each pixel in place, other than a perfectionist?

Perfectionism is a useful trait when your goal is beautiful graphic design — but it can be a false friend when you rely on it to design the flow of a system that real people have to use.

Here’s the thing: people are messy. People’s lives are messy. Behaviors in real life, from buying a T-shirt online to booking an airline ticket, rarely progress in an even, uninterrupted flow.

Yet our wireframes are most often based on the “happy path” of least resistance: Screen A, followed by Screen B, followed by Screen C.

When we do dare to speak about messiness, we’re usually talking about how to handle error messages, or calling it an “edge case”. (Or, let’s be honest, making fun of our users with their low attention spans and outdated browsers.) It’s rarely an integral part of the design process.

For example: suppose you’re designing an e-commerce site that sells diapers. Here’s how the typical design team would imagine the “customer journey”:

  1. Mom arrives at site after reading our carefully crafted email.
  2. She notices our new diaper subscription program and decides to read more about it. Several pages worth (with really nice graphics).
  3. The subscription form requires knowing several things: her preferred brand of diapers; whether she’s getting a good price; and the frequency of delivery she needs. All this she can look this up in her Order History if she needs to.
  4. She completes all the items on the sign-up form, in the correct order, and submits it with no errors. Mission accomplished!

Sounds great. But here’s what really happens (trust me, this is not fiction):

  1. Mom realizes she’s out of diapers.
  2. She opens laptop and starts Firefox.
  3. Baby starts screaming; feeding and soothing ensues
    {insert 45 minutes}
  4.  Mom returns to laptop. What was I doing? Oh yeah, diapers.
  5. She opens the diaper site again. She has approximately 2 minutes on the baby clock to get this done — no time to poke around at special offers or read banner ads.
  6. She completely ignores everything on home page except the “reorder diapers” link. Something about subscriptions passes by her attention, and it seems like a good idea (she wouldn’t have to go through this every month), but she’ll have to wait until another time to figure out what it is.
  7. Password?
  8. She hears a crash in the other room. Shopping interrupted again. Time to make lunch anyway.
    {insert 1 hour}
  9. Third time’s charm. Opens laptop, signs in, finds My Account, finds the first pack of diapers on the list. Clicks Reorder. Hopes it’s the right size, because she doesn’t have time to check.
  10. Baby in her lap starts whining and reaching for the keys. Mom manages to get to checkout in record time and click “Confirm Order” before the baby gets the keyboard and manages to open three applications and send 2 emails before mom can close the laptop and throw it back on the top shelf.

There are plenty of tactical ways to smooth out her experience and satisfy the design team’s objectives (clear access to My Account, streamlined reordering, “remind me later” tool for the subscription program, etc).

But my point is that messiness should be a mindset, not an exception to a rule. We shouldn’t assume that everyone is paying attention, not distracted, not multi-tasking, never interrupted, etc.

If we would account for messiness from the beginning, we wouldn’t have to spend time adding the workarounds later … they would be baked in.

Which would free us up to do other things … like automate our diaper orders!

1 Comment »

  1. Hi Caitlin,

    I would just like to thank you for your tutorial on the use of a filter in a php page using Dreamweaver. I am part way through developing my site and decided to start using dynamic pages linked to a database. I have not sent my new pages to the remote server yet but your tutorial enabled me to successfully complete the first pages with filters. I had spent several days trying to do it using Missing Manual without success – so thanks. Now I just need to find out how to retain the sort on the Master page when I click back from the Detail page. Another little challenge. Best, Colin.

    Comment by Colin Waters — February 25, 2013 @ 3:54 pm

RSS feed for comments on this post. TrackBack URI

Leave a comment

Powered by WordPress | Based on a lovely theme by Roy Tanck | | Log in