“Programmers love hierarchy … normal people hate that”

March 15th, 2009   4 Comments

treeviewSomething I’ve been preaching for years, to any software developer who’ll listen, is: don’t use a tree view control in the user interface if your users are not highly technical and there’s another way of allowing the user to do the thing they actually want to do (which there usually is if you put some thought into it).

So I was delighted to hear Jeff Atwood and Joel Spolsky’s views on the Stack Overflow Podcast #45:


Atwood:   … programmers love hierarchy, to a degree that they don’t even understand how different they are than the public in this regard. Like they love putting everything in this little bucket, that goes in this little bucket, which is this sub-bucket of this and this, and normal people hate that. And threading is totally a manifestation of that and it drives me crazy that a lot of programmers can’t see that they’re like immediately like: "Oh, threading is good. I love threading. What are you talking about?" You know? They can’t see it at all.

Spolsky:   Right, right.

Atwood:   It’s like myopia.

Spolsky:   Yeh. I mean it’s really a function of the size of the group, and one thing I’ve learned through years and years of usability testing is that anything that smacks of a hierarchy or a tree is not going to be understandable to the average, non-technical user.

Atwood:   Yeh.

Spolsky:   You just have to learn that: if it’s a tree, or a hierarchy, like eighty per cent of the regular people are going to get confused and not quite get it.

Hierarchies are great at showing nested relationships, and they make sense to programmers, who are used to them – but most of the time the relationships don’t matter to the user. Usually the user just wants to find something and yet the tree view forces them to “drill down”, clicking down into a hierarchy that becomes increasingly complex as they click.

My request to all programmers placed in the position of having to design a user interface: avoid hierarchies unless you truly believe the end users really need the hierarchical information.

Potentially similar posts

Comments are closed

  1. User Gravatar Artur K?pa said:

    March 16th, 2009 at 12:16 am (#)

    What do you think about “category tree” at for example EBay? Is it “really need” for end users ?

  2. User Gravatar Alistair said:

    March 16th, 2009 at 11:36 pm (#)

    That’s a good example of something that I think works – but I wouldn’t describe it as a tree because they limited it to two levels of folders. Within the second level of folders you only get items for sale, not more folders.

    So, for example, say I’m looking for a nice old barometer to fix up in my hall – I’d find Antiques at the top level of the hierarchy and (without having to click/expand anything) I’d look at the 20 or so subcategories listed under Antiques and I’d try clicking on Science & Medicine (Pre-1930) to see if there were any barometers in there.

    The folder metaphor is worth thinking about. Graphical operating systems have long used this metaphor. And it works if there are just one or two levels. In a real filing cabinet you might put a folder within a bigger folder. You certainly wouldn’t have dozens of nested folders, like I’ve got in Windows Explorer. It’s crazy!

    Nested folders is one of the reasons why people stopped using the Bookmarks and Favorites lists in their browsers and started using Delicious, because Delicious’s tagging effectively gives you a single-level hierarchy, but with the added benefit that you can find something by looking for a number of different tags, or a combination of tags.

    Yes, by using shortcuts, you can effectively put a file in more than one file system folder – but it’s cumbersome to do and, again, it’s another way in which the folder metaphor breaks down.

  3. User Gravatar Rich Collins said:

    January 23rd, 2010 at 11:00 pm (#)

    Look at what a complicated mess that tree is. Maybe normal people just hate complexity.

  4. User Gravatar itauthor said:

    January 28th, 2010 at 8:28 am (#)

    "normal people just hate complexity" – yes, that's true

    Whereas many programmers just *love* complexity and kind of despise simplicity.