Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at cf.Objective() 2010 (Minneapolis, MN) with:

The User Experience (UX) Of Manually Sorting Data

By Ben Nadel on

I have a love-hate relationship with the gesture of manually sorting data. On one hand, I know that in some situations - like a PowerPoint presentation - manually sorting data is a critical part of success; yet, on the other hand, I know that in most situations, I have an extremely negative reaction to the desire to manually sort data. But why this dichotomy? At first, it was frustratingly unclear; but, I've spent the last few months meditating on the problem space and I think I figured it out: it's a combination of mental model and uniformity of sort.


 
 
 

 
High Fidelity - sorting records.  
 
 
 

Let's talk about mental model first. As user's we have a ton of mental models that help us make sense of the world around us. And, sometimes, we want to manually organize data such that it aligns seamlessly with our own internal mental models. For small sets of data, this can make sense; but, as soon as the volume of data begins to grow, this approach becomes unwieldy.

As a thought experiment, if I gave you three movie titles and asked you to sort them based on how much you enjoyed them, you probably could. But, what if I gave you 10 movies? Or 100 movies? Or a 1,000 movies? Do you think that in a list of a 1,000 movies, you could consistently and accurately differentiate between cross-genre comparisons? Is "Terminator 2" really better than "When Harry Met Sally;" or, is the way you experience movies far too complex to even model correctly in your head?

A wonderful play on this shortcoming can be seen in the John Cusack movie, High Fidelity (2000):

I'm reorganizing my records tonight. It's something I do in times of emotional distress. When Laura was here I had them in alphabetical order, before that, chronologically. Tonight, though, I'm trying to put them in the order in which I bought them. That way I can write my own autobiography without picking up a pen. Pull them all off the shelves, look for Revolver and go from there. I'll be able to see how I got from Deep Purple to The Soft Boys in twenty-five moves. What I really like about my new system is that it makes me more complicated than I am. To find anything you have to be me, or at the very least a doctor in Rob-ology. If you wanna find Landslide by Fleetwood Mac you have to know that I bought it for someone in the fall of 1983 and then didn't give it to them for personal reasons. But you don't know any of that, do you? You would have to ask me to-

The reason this scene works so well in the movie is because it's so outlandish - so laughably complex - that it highlights the emotional distress that the character is clearly experiencing.

Manually sorting data in an attempt to bend it to the will of your mental model works; but, only for very small sets of data. When you start dealing with larger sets - even moderately larger sets - you'll find that this approach can only be applied at great cost to efficiency and consistency. In such situations, you really should defer to external models like Alphabetical or Date-based sorting - a model that can be applied quickly and with precision accuracy.


 
 
 

 
Job Bluth - card illusion - tricks are what a whore does for money.  
 
 
 

Mental models - and their deficiencies - speak to the feasibility of manually sorting data; uniformity of sort, on the other hand, speaks to whether or not the right problem is being solved. If a user wants to manually sort a collection of data in an attempt to artificially separate several subsets of data, I see this as a massive red flag that the wrong problem is actually being solved.

For example, if I gave you 104 playing cards and asked you to sort them such that the first 52 cards composed a full deck and the last 52 cards composed a different full deck, you could certainly do that. And, doing so would allow me to (somewhat) quickly jump to the beginning of the second subset of cards.

However, manually sorting the cards in a non-uniform fashion indicates that I'm probably asking you to solve the wrong problem. Even without truly knowing what the problem is, I would posit that splitting the set of playing cards up into two completely disconnected sets of 52 playing cards would likely be a more effective step towards solving the actual problem that I'm having. This is because data that is uniformly sorted is, by all logical means, easier to consume.

At a core level, I think most users understand this. But at a conscious level, they only "know" that they feel pain; and they have a hunch that manually sorting data may be a way to alleviate that pain. As a User Experience (UX) designer, it's my job to examine that user-pain, trace it back to its source, and then solve the problem that the user is actually having, which is rarely a need to manually sort data.

If I had a user come to me with a list of Contacts and ask me to let them sort the list manually, I could do that. But, it would likely be a disservice that does nothing more than funnel the user's pain into a different form-factor. What I should really do is ask the user why they "feel" that they need to manually sort the contact list? And they might say something like this:

Well, I've grown this list of contacts over a number of years, and, honestly, I don't really care about most of them anymore. But, I don't want to delete them because, well, you never know, right? So, what I want to do is move my most commonly needed contacts to the top. And then maybe even have one of those 'In Case of Emergency (ICE)' contacts be the first one on the list.

If I took this information and provided a manual sort feature, it would result in a single collection of data that has a non-uniform sort. And, like I said before, this is a huge red flag. A more appropriate solution (or set of solutions) might be to:

  • Allow the user to archive contacts.
  • Allow the user to create several separate lists of contacts.
  • Allow the user to flag certain contacts as "favorite" that are automatically replicated in a different list.
  • Allow the user to flag one or more contacts as "Emergency" contacts that are automatically replicated in a different list.
  • Create a list of contacts that is automatically populated with the X most recently accessed contacts.

Of course, without an actual user to talk to, this is only theoretical; but, if my software interfaces allow a user to create non-uniformly sorted set of data, I'd be very suspicious that I failed to correctly identify and address an underlying problem.

Manually sorting data is a good thing. Sometimes. Pages in a book are manually sorted (uniform sort); slides in a presentation are manually sorted (uniform sort); emergency contacts are manually sorted (mental model). But for the most part, I would argue that manually sorting data is an ill-chosen solution to an unclear problem. And, that when our users want to manually sort data, it should be an indicator to us, as User Experience (UX) designers, that we have an excellent opportunity to dig deeper.



Reader Comments

Oh.
My.
God.

Ben... You're my density!

I recently had this dilemma with my FB contacts. I finally decided to trim and purge. I went from 3xx contacts to about a third (the low 100s... you made the cut, peanut butter lover).

Like you hint at, you really don't need to keep in touch with your friends-of-friends from middle school who you didn't even know still existed let alone need to read about how they were rooting for the NY Giants Sunday night on SNF.

But, yes, your "favorite" contacts along w/ the "favorite albums" scenarios are spot on. And I think you'll be seeing more of this "customization" of sorting on apps in the future, even though it should be there already.

If you're currently working on a contacts application/logic, you probably should have at the top of the page an, "All, sorted A-Z," "Most accessed A-Z," and maybe something like "friends," "family," and "Associates" or some such.

I think you're seeing some of this with the addition of "Tags." That said, I hate 'tagging.' It causes the same basic issue of forcing me to manually deal with something that I want the computer to do for me.

To add another scenario to your mix: document filing. My boss said yesterday, "Why is this documentation on drive X? Those should be on Drive V! Drive X should only have binaries!"

He then went on to move documentation to drive X related to the binaries on Drive X. sigh.

That goes back to your situation of "everybody thinks differently." I might file docs a certain way (related to a version of a software product), while someone else would file it by date, and another by "Working" versus "Archive."

It's the file cabinet dilemma!

Reply to this Comment

@Randall,

"Tags" is a super interesting conversation on its own! Tags is another one of those things that *sounds* good at first; you think, "Awesome, now its really easy to have things in different categories." Which is fine and good when you go to tag something. But, the short-coming of tags quickly comes to light when you go to search for data and you realize that you failed to tag things consistently. I look at tags the same way that I look as #HashTags on Twitter - they are nice to help frame a comment / conversations; but, I would never want to rely on them to look things up.

And the file cabinet dilemma is so spot on. That's a really hard one to solve, even in a digital world. When I updated my Mac OS, I noticed that they added an "All My Files" section that did just that - list out ALL my files. What a crazy idea :)

Sorting, I think, is just one of those things that cannot be solved universally. It has to be on a per-application basis because it must be driven by the needs of the user.

It's fun to think about this stuff!

Reply to this Comment

@Ben and with GMail, I now have to sort through way too much way too often. I might search for "bank" hoping to find my last bank statement, but instead I get results from "Not My Bank of New York" that sent me marketing e-mail months ago. Argh.

Anyway, agreed... not sure what application(s) you're currently working on, but it would depend on the context -- Date, size, with attachment, from, to, when created... the list goes on and on.

Btw - my contacts list in my iPhone? Some of the Notes say, "Palm-X" (CSVs ported from my Palm III to Gmail to iPhone 3G to Android to iP 4s) in them. I've contacted some of the people I have in my contacts and even they don't remember ever having the telephone number I have listed for them.

I really should update my address book.

Reply to this Comment

Funny, when you say "Sort", I can't help but think of record sorting rather than what apparently equated to "grouping, classifying" and other forms of organization.

I was thinking "How many forms of sort aside from ascendingly and descendingly does someone need?" :)

We all crave our data to be organized in a manner that allows us to get to exactly what we want with the highest level of accuracy. And to placate the user as much as possible is great until we get to that realization that they want us to organize their data in a manner that is so finite, that it really only caters to the most minuscule of audiences.

Reply to this Comment

@Aaron,

"How many forms of sort aside from ascendingly and descendingly does someone need?"

... in a way, that's sort of my point. I think *most* data has a natural sort that makes the most sense and allows for the fastest type of access for the given type of data set. And, when data needs to sorted on a custom "sort" field (for example), it's possible that that was added to fix the "wrong" problem.

But again, I'm not saying that manual sort is never valid. In fact, the desire to manually sort data is probably always valid because it's born from a pain that the user is genuinely feeling. But, I just think there's often a better way.

Reply to this Comment

@Randall,

I definitely have names in my phone for people I can't even remember :)

Now, I'm glad you mentioned GMail. The "Labels" in GMail is actually one of those places in which I could see people wanting manual sort. And, in fact, I have messed with my labels so that they are listed like this (fake data):

- _M
- _N
- _Z
- A
- B
- C

In this case, I understand that the labels are sorted (automatically) by name. But, there are a few that I want to *prioritize*; so, I add an underscore to the name so they get listed first.

Do I want to *manually* sort the list? Absolutely NOT! All I want to do is *prioritize* a few labels.

Reply to this Comment

@Randall,

... and definitely, I find the GMail search to be far more frustrating than the Google's search :(

Reply to this Comment

Interesting post Ben. The way I look at it is that often it isnt actually a sorting problem, it is a searching problem. Yes, we need to have powerpoint slides in a sequence for the presentation to make sense. So, that is a sorting / collating problem.

However, often the reason people sort things into lists (eg alpha sequence) is so it is easier to find the one they want - so it is actually a searching issue. In my view the "problem" being solved by sorting is actually "how can I rapidly find the entry I want?" and so the UX needs to answer that question by providing search capability as more important functionality than browse capapbility.

Just my two bobs worth. (Aussie - a bob is a shilling which we havent had since 1966. How some expressions linger!)

Murray

Reply to this Comment

@Ben - I do your trick with Outlook more than GTags. I do like that you can now nest tags (parent/child) in GMail.

I often send myself e-mails and add tags to the e-mails. Like for this thread I might add:
Nadel ColdFusion sorting tagging Cusak

...because unfortunately you can't take a result set and add on more criteria afterwards. You have to start w/ a new query (albeit just tack on more search words in the Search Box).

Reply to this Comment

@Ben,

These types of issues are usually only ever addressed once we begin the process over over-analyzing (is there such a thing?) the process that the user initiates when that initial dataset is returned.

If we watch the process that our users take immediately after the data is returned, and find that the vast majority of them are uniformly re-organizing the data we presented them, chances are our sorting was not as optimized as it could have been.

Chances are, we sort the way we do because we're looking to personally optimize how quickly we can consume the information with less "mental loads" ala "Don't make me think" practices.

I've always loved when an application took the simple extra step of remembering your sort order preference in the event that the default sort did not meet your liking. This at least showed the developer understood that there could be variances in preference to how people wanted the returned data sorted, and they coded a solution that at least offered an interim "fix".

Reply to this Comment

Well, Gmail search is not as frustrating as Thunderbird search, as I've discovered recently. Especially when I'm in a hurry. Tb search is s-l-o-w and sometimes doesn't give me the results I need.

Now, sorting through 13K email so that I can delete what I don't need . . . aaaauuuuuuugggggghhhhh!!!

Reply to this Comment

@Lola,

I feel your pain. If GMail didn't have some advanced search features like having "from:xyz" and "in:inbox" and "is:starred" and what not, it would be a nightmare.

By far, though, my biggest frustration with GMail search is that it is very poor at matching partial words.

Reply to this Comment

@Aaron,

"Remembering sort settings," is definitely something that I could be much better about. At InVision, we remember *some* stuff; but, not that much. Part of the problem is that we introduce stuff late, and then I get overwhelmed at the idea of how much stuff needs to be updated (code, records, interactions) *just* to remember one value.

Sometimes, its just adding one column. Sometimes, though, it requires making some shared item have a per-user setting, which involves a lot more change.

Maybe I should just start storing that kind of stuff in LocalStorage or something more browser-specific; but, then that always feels like a cop-out as well.... arg.

Reply to this Comment

@Murray,

A searching problem - yes, wonderful - I think you nailed it; this is really the core of the sorting problem - not the initial organization but the subsequent seek. Unfortunately, I think people are often misinformed about their *own* ability to find things. They believe that some manual sort based on an internal model will help them later; but, it often won't. I think they kid themselves into thinking there is a faster way to find things other than some linear sort or some keyword-bases search.

Reply to this Comment

As a User Experience (UX) designer, it's my job to examine that user-pain, trace it back to its source, and then solve the problem that the user is actually having, which is rarely a need to manually sort data.

This sentence should be in red 72 pt. font. Possibly blinking.

Although, I liked the bit from Hi Fidelity. Greatly underrated movie.

Reply to this Comment

@Matt, true. Sounds like Ben is working with someone over the age of 45. There seems to be a divide between someone who's around 45-50 years old who is used to dealing with paper versus those of us younger that have grown up with searching on computers.

@Murray, I like your two cents.

@Ben,

  • but the subsequent seek.

Right -- I often search for e-mails sent to me or that I've sent. I go to "Sent Items" and then sort by "To:" I then type the first letter of the person's name. From there, it's by date.
In essence, that's three "searches" (Sent, person, date) or three manual sorts. Again, back to the file cabinet, you might still file something similarly -- to whom the correspondence was sent (filed under "N" for "Nadel, Ben") and then the date.

Reply to this Comment

I don't understand how they sequenced the dna genome, But from what I hear they thought of a new technique That was explained as exploding the sequence Rather than a traditional sort.

Reply to this Comment

<blockquote>As a User Experience (UX) designer, it's my job to examine that user-pain, trace it back to its source, and then solve the problem that the user is actually having, which is rarely a need to manually sort data.</blockquote>

Even when the user is stuck on their solution and in denial about the pain and the problem.

Reply to this Comment

Post A Comment

You — Get Out Of My Dreams, Get Into My Comments
Live in the Now
Oops!
Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.