Drupal User Experience

Over the summer we overhauled the Raizlabs website. It was originally developed in 2001 using Frontpage (yeah, I know). The site had accumulated a number of HTML files, a collection of ASP files, a number of blogs for personal and company use, some newsletters and assorted client scripts.

In re-designing the site I knew I wanted a content system. We evaluated Joomla, Drupal, WordPress and custom solutions.  Joomla and Drupal looked promising. WordPress was a good blog system but not designed for larger site structures. We started implementing a Joomla site and were perhaps a week into the process when we decided to change paths and go with Drupal.

The Joomla front-end experience is easier to get started with but makes it difficult to setup and interact with content quickly. The Joomla system had a lot of out of the box features but it required too many steps to do simple things.

The Drupal user experience was by contrast amazingly stark. After downloading Drupal I couldn’t figure out how you could possibly build a site using it.  It later became clear that the real value of Drupal was with it’s module system.

Critical flaw: Make sure things work out of the box. Batteries should be included.

While Drupal is truly a powerful system this is easy to overlook. The default install that you get from Drupal.org has nothing included. It’s like getting a car engine without the seats.

Dries: Oh, you want seats in your car? There’s a module for that.

There are more complete solutions and downloads available from providers like Acquia but this is not obvious. The modules are the most critical part of Drupal and if you’re not familiar with modules it’s not clear what modules you need.  They have many names that are also not obvious: CCK, Views, ImageCache, AdvancedHelp, Devel, Mollom, TaxonomyMenu.

Too much flexibility can cause problems.

Everything in Drupal is customizable. Not only can you customize your content but the system also makes it very easy to customize the admin structure, menus and commands however you want. It’s so easy to customize the administrative interface that it’s easy to get into a state where nothing works.

The admin interface should be designed to be quick and efficient for creating and editing content.  Some amount of customization is great but the system as it stands is overly abstract making it easy to get into trouble.

Be good at certain things. Don’t try to be good at everything.

When evaluating Drupal it seemed that it has support for blogs, forums, discussions, groups and pretty much everything else. It was only later that we decided that even though Drupal could do these things it couldn’t do them well.  For instance Drupal has a blog module but it’s so much harder to use then WordPress that there’s really no reason to fight Drupal to do what you want, it’s easier to integrate WordPress. Same story for PHPBB and the Drupal Advanced Forum module.  As a content system Drupal should make it easier to integrate these external products. Instead they try to re-invent these components and it doesn’t work.  Drupal is a good content system but it’s not a good blog and it’s not a great forum.

More then anything I wish Drupal would be a better cross product citizen for other PHP projects.  For example: Gallery, PHPBB, WordPress, ZenCart, etc. Plugging in other stuff that’s not part of Drupal should be encouraged.  The attitude that it has to be Drupal for everything is simply not practical.

Views and CCK

Views and CCK allow you to create all sorts of queries onto your content and allow you to customize the fields of content that you collect. It’s basically like creating your own database columns for your content.  The problem is that you can’t just take someone elses database you have to build them yourself. If I want to setup a bunch of content and views to create a little client database I have to start from scratch. It would be so much easier to take a good solution as a starting point and customize it to specific needs.

There should be a number of popular and useful views that should be included. I shouldn’t have to create my own “random post of the day” or “most popular articles” these should be canned views.

Modules and Blocks

A module encompasses a portion of functionality. It’s actually not ‘modular’ in that sense of the word. It’s more like a plug-in that extends the functionality. A block is a component that gets shown on a page.

The block model assumes that you have one core site template and that blocks are either shown or hidden on each page. As your site grows you have to have rather complex rules for when certain blocks are shown and when they are hidden. The UI to customize this show/hide functionality is rather broken. Rather then having page tempaltes with visual drag-drop interfaces for multiple pages you have to manually specify all your blocks and pages within one block template page.

I wish I could define a site structure then drag/drop content and widgets to each page in the site structure.

Terminology

With any content system there’s a certain amount of learning that has to happen. For some reason content systems don’t use terminology that is used when designing a website. They use their own abstract terms: Page, Story, Book.  If you take these terms literally you may expect that stories compose a book and a page is one page of a longer story. This isn’t how it works.

Drupal uses the term “Menu” for everything. Even if certain things are tabs, other things are trees and still others are actually menus.

Making things practical, not just possible.

Drupal has the ability to do a lot of things but in many cases these things are possible, not practical. Solutions for certain tasks are not ‘turn-key’ they involve a lot of customization and configuration. As a simple example I wanted to create a special “clients only” section on my site. Reading the docs and forums there were at least 10 different approahes for how to solve this problem. Some solutions suggested advanced permission modules, others suggested Organic Groups, still others suggested a CCK/Views approach. This seems like such a basic security scenario that there should be a simple solution to make this work (there was not).

I’m sure this problem has been solved many times over using Drupal however there is no current way for people to share these “solution recipes” in a way that I can download them and have things just work.

Long term experience

I think Drupal’s user experience has a lot of potential and I’m encouraged by the efforts I’ve read about for the Druapl 7 release.  Focus on the user experience is really the thing that’s going to make this not just a powerful system but a practical one.  I’m looking forward to it.

Post to Twitter

30 thoughts on “Drupal User Experience

  1. Hey
    Just to throw in a couple of comments :)

    If you have ever tried to work with a website, where its build up around a number of different projects like lets say: wordpress, phpBB & osCommerce.
    Then even before you have the project is in the air you will be filled up with the grief of just trying to get the stylesheets right, every parth will have different markup, different user admininstration and different logins – its a virtual hell to work with for both the admin & the end users (and not to mention the poor frontend coder that should try yo learn 3 different system) ive been there many times, and belive me i would rather poke myself in the eye with a screwdriver, and put drip it with tabasco afterwards

    Drupal is a complicated system, build for complicated website solution.
    The idea that its a keyturn application is imho simply is not durable – Untill we one day have a better system for making install profiles (that mere mortals one day can use) Untill then well pony up and bribe the local developer ;)

    As i see it drupal is not a system for people who just wanna have a website. – if you just wanna have a couple of pages etc. well then WordPress is a wonderful solution.

    btw I really dont se it as a problem that a module haves a name like imageCache? it says exactly what it does ;) – or am i just a geekynerd

    rawk on

  2. > I really don’t see it as a problem that a module has a name like ImageCache.

    Look at the bigger picture of a system that has ImageCache right next to Image toolkit, ImageAPI, Images, Image galleries, Image Import, Lightbox, etc.

    It’s very difficult to tell when these things are designed to work together and when they are not. It’s also very difficult to find the right setting when you need to sort through so many similar module names.

    To the other point… “Drupal is a complicated system..” YES EXACTLY… and the design has to work that much harder to hide complexity. Example: Cars and Operating systems are also complex but I don’t need to know everything about them to use them. Drupal has to do more to hide the ‘geekynerd’ code inside.

  3. I strongly disagree that bridging to other forum software is better than using an integrated solution. If the main purpose of your site is to be a forum, you’re probably better off using stand alone forum software on its own. The apps have teams of programmers dedicated to building the best forum software and that’s what its good at.

    If, however, you want a full website that includes the forum as part of it, bolting what is meant to be a stand alone solution to the side of it is a path filled with headache. You are trying to sync together two different systems. You can get it to _look_ like part of your site if you put in the effort (many don’t) but there will always be limitations. Want to promote a forum post to the front page, or use it in a view? Good luck. What to click on a username in the forum and have it show the Drupal user profile? Good luck.

    I’ll be the first to admit Advanced Forum isn’t perfect. While I’ve had some help, it’s mostly me working on it by myself part time. I’m always going to be lagging behind the “big boys”. But a forum solution that does all of what you need and most of what you want and is a first class citizen in your site is better than a great forum just sort of jammed in there and not quite belonging.

    Michelle

  4. Michelle – First off… congrats on Advanced Forum… I’m not trying to take anything away from what you’ve done. Amazing work. I really wanted to use AF, talk to me offline about why we didn’t.

    When I’m building a site I want to choose the blog software, the forum software, the shopping, photo gallery, etc. There are many solutions to each in PHP. The best choice for my site isn’t always the one with tightest integration with Drupal.

    This can change if Drupal made it easier to integrate other projects into Drupal.
    - Basic Integration – provide themed headers/footers
    - Intermediate – allow integration of permissions/users
    - Advanced – store content in Drupal

    Right now basic doesn’t even exist for most popular PHP software.

  5. I have primarily been a Joomla! user – and am increasingly learning and using Drupal. l am as “Drupal Friendly” as they come. I say those things so it doesn’t appear like I am “wearing colors” with my next statements.

    I’m curious why you didn’t try Joomla!, again? It seems to me Joomla! might be a better fit. Both are excellent open source solutions, but Joomla! is geared towards integration with other free software solutions, avoidance of geekery (unless you want to develop), and extensions focused on single-use solutions, over extensibility. The object-oriented, MVC application architecture is a big plus, too, if you need to customize solutions.

    In fact, I think your blog post gets at the fundamental distinction between the two environments. There is a video and PDF at the top of the Joomla! Beginner’s Documentation page that you might find helpful if you want to give it a go, again. http://docs.joomla.org/Beginners

    I’m very pleased with Drupal, too. The single element that is most promising with Drupal is it’s large, active, friendly, extremely geeky community that guarantees a prosperous future.

  6. Amy – I really liked the dashboard of Joomla but the structure made common tasks take way to long to accomplish. Common tasks took 10 steps and there was a lot of clutter in the system. I liked the simplicity of Joomla but my development team convinced me that Drupal was a better system to build on top of.

    Our original Joomla prototype took about a week to implement. A similar Drupal prototype was done in two days. We had zero experience with both systems starting out.

  7. Interesting. I think that’s the first time I’ve heard it took a fraction of the time to build it in Drupal. That’s encouraging, to be honest.

    But, I honestly don’t see how anyone could say “Section – Category – Article – Menu – Menu Item – Module – Position – JDoc Statement – Template” is too many steps. ;-)

    Thanks for your candid post and comments. It’s really helpful to hear intelligent review when those ideas are fresh in mind.

  8. @graiz: Discussing offline really isn’t my thing… I’m not much of a phone person.

    I think we just have a fundamental difference of opinion. I don’t think piecing together a website from many different applications is a good idea. There are some instances where it works… My camera club website uses Drupal and Gallery because I needed an advanced photo gallery and I was willing to sacrifice on the integration for this. But on sites where I want the images to be really part of the website and reusable in other parts, I use a native Drupal solution.

    I think it’s important that Drupal have a strong forum offering and not just tell people to tack on phpbb. I think it’s important that Drupal have a strong image handling option and not just tell people to tack on Gallery. There are times when wheels need to be re-invented. If you want a wheel that works properly for a new kind of car, saying just grab that wheel from that semi over there and wedge it in as best you can isn’t the answer.

    Michelle

  9. I agree an integrated solution is better then a parts and pieces.
    The problem is that the Drupal module system is exactly that…. parts and pieces. Sometimes these work well together and sometimes it’s a total mess.

    End users don’t want tools, modules and pieces… They want Solutions to site problems. Ideally these solutions can be extended, customized, configured, etc. But it should work with no futzing.

    As a simple example I installed Advanced Forum. Looked good, had all the features I needed. I was even able to import my old PHPBB forum. Great! The problem was that I couldn’t get it to function like many of the drupal forums I’d seen on other sites.

    It was never a turn it on and it works. It was turn it on and spend a lot of time configuring it. I was looking for a solution to a specific problem. Instead I was left to customize blocks, permissions and links. This gave me a ton of flexibility but I quickly felt like I was reinventing the wheel.

    At the end of the day I decided I was willing to give up flexibility for something that would just work out of the box.

    As a philosophy I think Drupal needs to start thinking about “Solutions” rather then “Modules.” To me a “Solution” is a combination of modules + configurations + defaults.

    • @graiz i think you might shoudnt use drupal then?
      im sorry to say – but the greatest strenght we have as website builders is the whole idea that drupal is build up around “web lego” and not a finished product. As i see it thats one of the reason that drupal is growing as it is.

      What i think youre looking for is better install profiles.

      if we have to bee in the car analogy: you could say that if you dont have a driver license well then you shoudnt drive the car ;)

      ooh well hopefully we can discuss even further in paris the next week :)

      • I’m totally on-board for web-lego! That is what I like about it. It’s just that you’re also saying that you can only use Drupal pieces and that I’m supposed to ignore all the other amazing community PHP pieces?

        Drupal could become the hub for all of these other PHP projects. I would love to see Drupal embrace the larger PHP community rather ignoring them.

  10. I guess we just approach Drupal differently. I don’t see Drupal as being for end users but rather for site builders who should be expected to handle a little configuring.

    Considering AF has 1 page of options with sensible defaults that most people won’t even have to change… Well, all I can say is if you found that difficult, I’m surprised you’re using Drupal at all. I’ve never tried to install phpbb but I can’t imagine it’s any simpler.

    If you’re talking about all the modules that can be used to augment AF, then that’s a different story. I agree that downloading and installing user stats, user points, user badges, privatemsg, etc, etc, can be tedious. Once there’s a winner in the features/patterns/install profiles race and it all settles down to a usable solution, I intend to put together a Drupal forum package that has everything together for you.

    Michelle

    • If there’s anything I have learned from WordPress project it’s that the line between end-users and site builders can be blurred with great design. Thanks for listening. Happy to try AF again in D7.

  11. Drupal doesn’t ignore them. There’s bridges to to all sorts of other applications. If you want to make a sort of frankenstein monster site with pieces from all these different apps, you’re welcome to do so. That’s the great thing about open source.

    What bugs me is when folks imply that we in the Drupal community shouldn’t be spending our time making our integrated solutions work better. If that wasn’t your intent, my apologies. That’s how it sounded and I do take issue with that attitude.

    Michelle

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>