I somehow doubt this is what Joyce Kilmer was thinking of when he wrote the poem Trees:
I think that I shall never see
A poem lovely as a tree.
It's unfortunate that the treeview is one of the standard widgets in a usability designer's toolkit, because trees aren't usable. They're a pain in the ass. They may be necessary for developers who are forced to work in the strict, rigid world of software development, but they are unnatural, restrictive, and just plain unnecessary for average users. Where do I begin?
Any time you're tempted to add a TreeView to your application, consider carefully. Whenever I've encountered TreeViews, I've found that a flatter, less rigid representation of the data is almost always possible-- and much easier for users to understand and manipulate. Don't blindly fall back on a full-blown tree without weighing the alternatives.
It's true that treeviews are appropriate for a few specialized situations. A HR diagram of managers and employees, for example. In my experience, however, trees get horribly abused. The canonical example of unnecessary tree use is in email clients. Google has an excellent solution in Google Mail's labels:
The old way
You create an elaborate filing system of folders and subfolders, then decide where to file a single message.
The Gmail way
Instead of folders, Gmail uses labels to give you the functionality of folders, but with more flexibility. In Gmail, a single conversation can have several labels, so you're not forced to choose one particular folder for each message you receive. That way, if a conversation covers more than one topic, you can retrieve it with any of the labels that you've applied to it. And, of course, you can always search for it.
I've aggressively adopted the label approach, because it's so much more reflective of the fluid way things are organized in the real world. Programmers may love rigidity-- to each item its appropriate folder and meticulously named class hierarchy-- but users prefer simple, flat lists.
First Pee Wee, now Gomer. If my server weren't down I'd like totally link to you. Brilliant.
Damien Katz on March 24, 2005 1:09 AMI suspect that if you're not careful, labeling systems can get just as complex as other classification systems. I think labels tend to shift the complexity towards maintenance and away from navigation. For small domains, this is a really good thing. For larger domains - maybe not.
In the end, you just have to know the customer (of course).
Jeff M on March 24, 2005 1:46 AMI never use them (despite their apparent usefulness) because they are such a pain to setup - and then you have to actually remember to apply them.
Shouldn't incoming emails be tagged with 1 or more labels automatically based on rules you set up? This part is no different than folders. It's the after-the-fact flexibility that is superior.
Next time you are about to create a SQL table with a parent-child relationship to itself, just say no!
Yeah, a few of our apps have tables like this at their core, and I really don't care for them. In Oracle, you have to use a special join syntax (CONNECT BY) to join the table to itself. :P
Jeff Atwood on March 24, 2005 2:01 AMI haven't used GMail, but labels appear to be similar to Outlook's search folders. I never use them (despite their apparent usefulness) because they are such a pain to setup - and then you have to actually remember to apply them. I suppose I could setup rules to apply the proper category - but that's more work! :) I get by with just a small set of special folders in my inbox for things I want to keep around.
How have you made the label management process easy for your users?
-Jeff M
Tree Hugger ;)
I love labels! Adobe Photoshop Album is an example of an excellent implementation--the labels themselves can be arranged hierarchically, so that picture of Joe and Ted shows up when you click either the "Joe" or "Ted" labels, or their parent label "Friends".
Mike Powell on March 24, 2005 9:06 AMI think it goes further than the treeview, to all classification systems. Too often, programmers will create complex heirarchical classification systems, when a much simpler "labelling" scheme would be easier to implement, and easier to understand for the user.
Next time you are about to create a SQL table with a parent-child relationship to itself, just say no!
Steve Campbell on March 24, 2005 11:40 AMEven the example that you give of managers and employees breaks down in any situation other than the mythical "midsize organization" - in a small company you frequently have a flat heirarcy, and in any larger organization you'll get people reporting to a personnel manager for vacation scheduling, etc), possibly more than one project manager, et cetera.
I think the notion of a relative treeview is interesting - a way to say, "From the point of view of this node, this is what the rest of the tree looks like," but I'm not sure that its ever actually terribly useful as an absolute rooted view.
Richard on March 25, 2005 2:29 AMJoyce Kilmer was not a she. He was a he.
http://en.wikipedia.org/wiki/Joyce_Kilmer
Mark Sicignano on March 25, 2005 11:06 AMThanks-- I made the correction.
Jeff Atwood on March 26, 2005 5:07 AMThis is not always true. Hierarchies are useful when users are looking at the content for the first time and a long list would make things hard to find, but navigating in the tree is easy because they know the criteria by which the content is categorized.
It becomes the opposite once they learn the content - now tree comes in the way, they learn how to search etc. So we have a problem - we need trees at a certain point in time, only to replace them later, preferably on the fly while users are becoming more experienced with the data.
Google's War on Hierarchy, and the Death of Hierarchical Folders
http://www.microcontentnews.com/articles/deathofhierarchy.htm
Jeff Atwood on August 2, 2005 3:16 AMI am a personal fan of the "Search Folder" type of functionality found on Outlook 2003 and Windows Vista. This lets me build flat lists of interesting information regardless of how it is stored.
Chris on August 25, 2005 2:58 AMHere's an interesting take on email Folders: they're easy to abuse.
http://www.43folders.com/2006/08/10/folders-for-action/
Jeff Atwood on August 10, 2006 3:35 AMWith regard to Gmail's lack of folders, I actually find it to be a pain in the neck in the absence of the ability to filter my view by label.
For instance, my mailing list account gets around a hundred emails a day - and at times I'd prefer to remove the wxPython or Plone list emails from my view, reduce the visual noise.
At the moment, I can't do that. I can view one label specifically, but that's not what I'm after.
If I could use folders in conjunctions with Gmail's rules, I'd have no problems. Labels are great, but folders are useful too. :)
PS Is this an overaggressive spam filter?
"Your comment could not be submitted due to questionable content: blxgspot matching (blxgspot)" Argh, can't even submit this comment with the b-word intact.
No website for me. :(
Liam Clarke on November 22, 2006 12:00 PMLiam, check out Gmail's filters (Next to the search button up top).
You can create a filter that applies labels and sends messages to archive instead of your inbox.
Then, you can find a message to wxPython using a search like:
label:wxpython
And if you only want to find labelled stuff in your inbox, it'd be:
label:plone in:inbox
Tada!
Jeremy Dunck on November 23, 2006 7:13 AMTags are a great way to categorise but older blogs that have hundreds of labels actually make me wish for hierarchy.
David Carr on August 19, 2007 10:02 AMUnfortunately, one of the sections of our application deals with merchandise taxonomy. You know how you can go to your favorite electronics chain website and it let's you search under electronics-computers-notebooks-blah blah blah. Yeah that's the type of stuff that our application does. So I guess the treeview is the best widget in this case ;)
Mike Brown on September 7, 2007 3:13 AMUnfortunately the same applies to file systems: the "transitivity" of the hierarchy is an advantage, but without some kind of property/label/tag management, it quickly becomes very limited.
thSoft on June 4, 2009 4:49 AMAgree. This gets into the whole "folksonomy" thing a bit, which drives the purists crazy. I think it's great.
I came to this realization when catagorizing digital photos - the is a photo of me, AND it's a photo of Tommy Lasorda, AND it's in 1985, AND... So a photo has many attributes, all of which are useful in decribing it. The best information systems, then, are ones which allow me the flexibility to tag my information, and query based on tags.
A trick, or course, is that eventually it's nice to have some standard categories. An example there is the Genre categories in MP3 ID3 tags.
Jon Galloway on February 6, 2010 9:29 PMThe comments to this entry are closed.
|
|
Traffic Stats |