Wednesday, September 21, 2005

Why is a tree view a poor navigational choice in software applications?

Recently I found myself staring at another Enterprise Software Application (ESA) that uses a tree view as primary navigation. A tree view on the left is usually not the right choice for navigation in such applications. Here are some reasons why tree views make a very poor choice in an ESA:

1. Many types of artifacts: Typically in ESAs, the tree is composed of artifacts like actions, files, and tasks. This type of hybrid scheme is confusing as it makes it difficult for users to make a consistent mental model.

2. Non consistent mental model: A non-consistent mental model increases memory load and makes learning difficult. Even experienced users make mistakes if there is a hybrid scheme.

3. Many points and clicks: To find any action, file, or a task, a user usually takes many points and clicks.

4. Clicks are actually slow: Though pointing and clicking seems lightning fast, but remember Fitt's Law - each point and click takes a whooping 1 to 1.5 seconds! Each find and final click may take anywhere upwards of 10 seconds.

5. Poor navigational help: A tree structure offers poor help to find and select next logical task after completing the current one. It forces users to learn the next logical step.

6. No use of spatial memory: People use spatial memory to find artifacts on a screen. However, the tree structure does not support spatial memory - makes it harder to find artifacts. It also increases the time to find artifacts.

7. Poor location information: A tree typically provides poor navigational clues - does not tell where the user is now, what is clicked, and what is open. To provide all these clues, a software developer spends a lot of energy.

8. System model differs from user mental model: A tree helps software developers put artifacts as in the systems model. This model is usually very different from the user's mental model.

9. Takes too much of space: The tree typically takes more than 20% of screen space. This amount of space for navigating from one point to another is a waste of precious screen area.

10. No corresponding content: Software developers believe that each "leaf node" in the tree must be associated with a corresponding screen. These corresponding screens typically dont contain any content and are shown blank or with content that users never need.

11. Vertical and horizontal scrolling: In most cases the tree is open. In this position the actual content is hidden behind the scrolls. This does not help users to find out where they are.

12. Difficult to implement: Contrary to popular belief, implementing a tree view by a developer is very difficult and time consuming. The basic implementation is fast, however, tweaking the tree view for good user experience is time and resource intensive.

13. Only IT users understand deep hierarchies: In our experience, we have experienced that only IT (read developers) understand deep tree structures. Others just refuse to understand tree structures with more than 2 types of artifacts (like files and folders). So, files in a folder or folder in a folder is okay, but sub-process in a process, process in a business location, business location in a business, and a business in an enterprise in NOT okay - it is confusing.

And, here is a solution you may want to look at: Tree View Removal Surgery

6 comments:

Admin said...
This comment has been removed by a blog administrator.
Masood Nasser said...

Excellent. I have always had animated discussions on how bad a tree structure was from a usability perspective. Now I just need to forward this URL.
Thanks Ripul, aur aisaa gyaan baat tey raho.

Sur Max said...

Hi everyone,
I am feeling your opinion a bit off-ajax. Major of the troubles u have described here can easily be eliminated using ajaxified tree. Well, i am working on Ruby On Rails and hence the code is in rails. Try it if u r a Rails Geek, its only a peice of cake... all the code with the filename is provided. check this out http://ajaxonrails.blogspot.com/2006/08/source-code-for-ajax-based-drag-drop.html
... and let say if all ur description is absolutely correct(only for those who don know ajax) what does a programmer do if a client is stuck to the Tree Navigation... He can do only one thing ... code the tree... he he ;-)

Offshore Software Development said...

Hi! It is a really nice posting.

Software development company
(contact: hanuseo@gmail.com)

art said...

Hi,

This article is good and informative.

Software Development Company

Free Directory

Software Jobs India

Jon said...

Interesting article, though you have a tree view navigation element directly to the right of this blog.