Concepts and tasks - towards a general usability plan for Drupal

Events happening in the community are now at Drupal community events on www.drupal.org.
solipsist's picture

Reading the presentation Dries posted on his site (http://buytaert.net/files/usability-testing-minnesota.pdf) I saw a lot of my own thoughts regarding the usability obstacles in Drupal echoed. Thank you all involved for all the efforts that have gone into doing usability research on Drupal. I believe the results we're seeing are invaluable.

I'm posting this as my own reflections on what I've seen and reflected over so far. It's opinion and not statement of fact and I'd like to hear your opinion on the issues I discuss below.

First of all, it is evident there are layers of issues here. Some of these can be addressed by an improved user interface, others must be addressed by better availability of information. I have ideas for solutions to either, as to whether these ideas are workable or feasible remains to be discussed.

Regarding communicating concepts

There are issues at the conceptual level, something I recall facing when I started with Drupal 4.6. Thanks to the patience of and kindness of people in #drupal-support, I managed to get my head around nodes and how you go about building a site in Drupal. I realized what a node was and how content was managed within Drupal but it wasn't clear to me at first looking at the Drupal 4.6 default Pushbutton and trying to make sense of it, wonder where all the information came from and how I changed this and that. Unfortunately it seems people are still struggling with the same problems and here are my thoughts with some suggestions for solutions.

Drupal uses a number of concepts and much of the discussion appears to be about whether we should change these concepts to make them easier to grasp. I fear that doing so brings the risk of making them less powerful. It is my opinion that a better way to go is to become better at teaching users about them.

A comment from the slides was that Drupal made (one or many) of the users feel stupid and it wasn't exactly appreciated. Unfortunately I don't think we can ever prevent that from happening. What we can prevent is making users feel lost, like missing a map and a clear goal in sight. A CMS is an advanced tool and you need to approach Drupal with a little humility.

However, that doesn't mean users should feel embarrassed at not grasping the concepts. The solution to the knowledge problem lies somewhere between educating and simplifying. I fear there's a risk with "dumbing down" something in order to make it more accessible, thresholds should be lowered but cannot be eliminated without loss of meaningfulness. One example can be found in magazines about science. You can compare science as written in its popularized form to what you find if you pick up a copy of Cognitive Linguistics or some other scientific publication. The popularized form is always glossing something over, and if it's poorly written it becomes inaccurate, or even false. Good writers know their readers as well as the subject matter and can communicate the critical concepts in a way that fits in readers conceptual framework. We need to take a similar approach to documenting the powerful features of Drupal, and revealing them at levels at a time. An onion skin approach to documentation if you will.

Further, as the study revealed, such information must be made available, and not on a help page but in context in a way that's convenient to the user. I think existing design patterns can provide us with good examples of in-context help. Hitting F1 should show relevant documentation and if it doesn't exist locally, the handbooks are searched. The user could also click a button to see results from the drupal.org support forums. These are solutions that are relatively easy to implement.

Regarding the interface

Drupal is quite "scatter brained" since to accomplish a task you have to go through a series of steps that requires getting to terms with the technical components of the task or system the task uses. The usability work done show clear examples of how users are required to understand the internals of Drupal in order to use the external interface. A task-oriented interface could very well be the solution to some of these problems.

In order to create a task-oriented interface we first need a good understanding of what tasks users need to carry out in order to build a site. One way to do this is to do more usability studies, of new users as well as experts (in the usability sense of the word) and see what methods the expert uses and how the new users go about learning these methods and where they look for clues. New users will help us understand how to make these powerful methods more accessible, and experts will show us what method we want to model after. Existing site recipes are another source for step-by-step tasks.

We need to be aware that we do not want to stereotype the types of sites you can build with Drupal, running the risk that people fail to see the flexibility of Drupal. We have to cater to the needs of the majority while at the same time not hide the powerful flexibility of our favorite CMS/CMF.

Secondly, I believe we need to focus on abstraction. The modular approach Drupal uses means that tasks are composites, existing of a series of actions involving a number of subsystems very with degrees of interface coherence. By creating an abstraction layer on top, and putting these tasks in a context, turning them into one task instead of many, users do not have to worry about which module provides fields, whether it's CCK or node. A user can just create a new "content type" and add a new "field", in one single task, only having to deal with the abstractions with no need to understand the underlying architecture.

A look at existing design patterns that would enable a task oriented administration panel in Drupal would be a good start. A task oriented administration panel can be built on top of what we already have. I have a couple of ideas for a contributed module that would focus on actions, and would allow users to carry out tasks that normally would take multiple steps and using many different modules and settings screens, in one seamless sequence.

I'm throwing these ideas out here and I'd really like to hear your opinion, whether you agree or not and if we can identify a general direction for improving the usability of Drupal. I've been following the discussions here and there's been a lot of great discussion on separate problem areas. Perhaps it's better to try to get some kind of overview. Either way, these are my two cents and I'll do what I can to contribute towards improving these aspects of Drupal.

Comments

Starting Somewhere

NiklasBr's picture

Valid ideas. This is a discussion in need of input from every camp.

The usability testing from Minnesota echoes true, having many memories of my own introduction to Drupal, I have been an active Drupal user for less than 15 months, and just in the last year I have really only now begun getting to know the deeper parts of the system. I have also observed many of the problems when introducing and testing the admin interface with first time users.

These are my scattered thoughts. Please excuse me as I am still new to this community.

To me, it looks like Drupal has three paths to choose when going ahead with the usability issue:

  1. Abstraction
  2. Context sensitive/inline help
  3. A unified frame(work) from which all modules are controlled

Neither one is exclusive nor are these the only ones, just what passed my mind when I read the U of M report and Solipsist's comment above.

Alternative one, abstraction, is what the Minnesota study confirms that Drupal need more of: Abstraction worked excellent in the first step when setting up the fresh Drupal installation. Extending this thinking to other tasks seems like a natural thing to do.

I know it is very tempting to just program something like a mirror of what is going on under the hood and for power users this is sometimes even a good idea as it might offer a very fine-grained control of the module in question (I am not necessarily making any difference between Drupal Core and Contributed modules here, for the sake of simplicity). Just as Solipsist says, Drupal is in need of some abstraction, this mainly due to the module based system it is (which somewhat ironically is also its strength but results in a discordant message to the user).

Alternative two, context sensitive/inline help, is probably easiest to implement (think; onFocus/onBlur. Even :hover would probably do just for simple, unobtrusive explanations of some functionality) and can also augment the other alternatives. However, just about any usability expert (self-titled, by reputation or otherwise) will tell you that any help that is not a direct part of the working interface is far from optimal. I agree to a certain degree.

Alternative three, some kind of unified framework. The concept of modules and their synergy is not a hard one once you are aware of the possibilites. However, learning them and especially finding ones way around them seems to be a major obstacle. This alternative is in line with what Solipsist suggests in an action oriented/task focused interface. Modules should be grouped (preferably non-hierarchically) according to what the user expects to do with the modules.

This alternative could also be expanded to a complete framework on how modules, not only are grouped according to task, but also share the same UI space.

But isn't that what Drupal already does Well sort of, but the headlines seems to have no real impact on how the users navigate, and there is a lot of navigation going on in the admin interface do do what we have to do. There is no API for grouping according to task, no documentation or consensus on what tasks go together. Usability testing is not optional here.

As for what I plan to do. I have some still very sketchy, for this summer, plans for building on the findings of the Minnesota test and bringing it to application with a site Solipsist is responsible for. I hope what comes out of that will be generalizable enough to be implemented into Drupal on a wider scale. More on that later I guess.

--
fyrkantigt.se av Niklas Brunberg

There's a start on reworking

catch's picture

There's a start on reworking the top level admin categories to be slightly more self-explanatory - some stuff is simply mis-placed at the moment. http://drupal.org/node/228236 We didn't try it during the testing (not really good practice to change the task half way through), but I think most of us at the testing thought putting 'content types' in 'site building' would've made a big difference for at least some users. A lot of small things like that which require very little code but a decent amount of thought.

In general I agree that the UI should ideally be as self-documenting as possible although a new contextual/inline/task-based help system would make a big difference where that falls short - and is likely to be a lot easier to do in the short term.

A big part of getting things unified more fundamentally is getting fields into core I think - so that the way content is attached to nodes follows a centralised, standardised system with common ui components. Again, at testing this was quite a big issue - the complete difference between the handling of the title, body, custom fields (and menu settings, etc.) proved to be a real obstacle to completing tasks.

edit: by the way - good ideas here in general. I mirrors much of my own conclusions (so far) on this issue.

Unification

NiklasBr's picture

An excellent initiative you link to. However, I am afraid it is missing the larger target by just throwing good guesses in the air (have to say that some of the later suggestions look pretty inviting, though). We have to have the larger target in mind: how should we design it to emphasize that which the users want to achieve? This was the kind of "testing is not optional" I was talking about in my third alternative.

To do such a thing we have to take usability as serious as you in U of M did in your testing; that of science and if that is not posible at least use a coherent best practice. We have to know that what we do will improve on Drupal usability.

No good programmer optimize their code code just by guessing, you try different approaches and measure each one and then choose the best or improve where you find the bottlenecks. This principle applies to designers as well.

In response to the fields, reading the slides again (wishing I had a more thorough documentation to read before going further, do you happen to have any such to share?) it occurred to me that it was probably not any inconsistencies within Drupal which was any special roadblock for the users but rater the perlocutionary act of the interface which the user is not able to interpret as they are new to the Drupal context.

Ps. I hate writing this down because I know I should contribute by doing some actual testing and not just be a wise-guy about it.

Edit: Oh, saw your later post with additional info from the testing.

--
fyrkantigt.se av Niklas Brunberg

List of all UMN Usability Issues

eigentor's picture

I've listed all issues that have so far been created in Webchicks original Wiki post:
http://groups.drupal.org/node/9241 (at the bottom)
I mention it here in order is does not get lost. So far I think this was missing. Maybe someone can redo it in a more prominent place.

Life is a process

Life is a journey, not a destination

Eigenator: that's great

catch's picture

Eigenator: that's great work. There's a spreadsheet of all the other issues we found somewhere, but I don't think it's on here yet. I'll try to find out.

Would it be a good idea to

btopro's picture

Would it be a good idea to have a wiki in similar fashion to the one webchick started that allows for other usability suggestions? There are a ton of good improvement ideas around here and I think it would be a really good way of organizing everything that's at least been discussed by people other then drilling down through the group feed. We could continue to build a link farm off to drupal issue topics like she has at the end of her wiki.

I've attached the

catch's picture

I've attached the spreadsheet to: http://groups.drupal.org/node/9241

Cabinet of horrors

eigentor's picture

Reading the spreasheet is quite an eye-opener. Uh, oh - so many problems and obstacles.

Life is a process

Life is a journey, not a destination

Usability

Group organizers

Group categories

UX topics

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: