drupaloob

Evolving Drupal UX by building Products

With the release of WordPress 3, there's a whole new set of discussions about Drupal vs. WordPress.

I'm going to try and explain my views on UX in Drupal, once again using the lego analogy.

First, I propose that you need a defined purpose to build great UX. WordPress focuses on blogging, and thus has an excellent blogging product.

With WP3, they've even integrated their version of multisite / Aegir out of the box. BuddyPress is an example of a product that sits on top of this base infrastructure. So now WP does blogs as well as multi-user social groups / communities.

In Drupal, we've optimized for a big box of lego. And there are a LOT of pieces in there. Pirate bits, space ship bits, viking bits. And lots of blocks that fit together pretty well if you're creative and pick through looking for ones that match in colour and so on.

I could talk about the WYSIWYG editor that ships with WP as an example. They took the base piece, customized it, and now have a rich text editor piece that fits exactly into the blogging product. It's not even a block! It can't get re-used easily with all these pirate bits! Sometimes, it's OK to plug in that perfectly shaped lego piece that isn't really a block at all.

But that's really hard to do if you don't have a defined purpose. Because something that is perfect for a large community site isn't going to be great for running an intranet. And an open everything access & permissions model is great for the former, and dangerous for the latter.

So, if we want to improve Drupal UX, we can't just take out a big UX brush and improve everything. There are certainly base building blocks and flows that we can improve, but on top of that, it will be need to be optimized for different use cases.

Just over a year ago, I proposed that Drupal could be a great social community out of the box (as in, core install profile). I'm not so sure anymore, but I think we should continue to have the discussion "What should Drupal do out of the box?" so that a) new users have a reason to use core to accomplish a task beyond "it can build anything" and b) we can experiment with optimizing UX for that purpose. This will teach us lessons that can be re-used and rolled into all Drupal-based products.

And, in general, I would like to see more people trying to build nicely polished products that have a defined purpose: this is what will move us forward in the UX department. Dries has a discussion on the business model of products / distributions that is important - because we'll need to fund development over time.

Drupal out of the box: let's make a community

First off, I need to apologize to @webchick for being called away from the Drupal BoF at Open Web Vancouver last night. It was great to have her here to do a run through with @chx1975 of where we're at with Drupal 7. I was around just long enough to once again raise the issue of what the default install profile will do.

We've come quite far in major core improvements, but we don't have a story for what Drupal is when you do a default install. What should Drupal do "out of the box"?

There is a placeholder issue for this now: #483987 Decide on direction for default install profile. As I've seen the UX process continue, I still see us focusing on building and constructing. The changes there have been excellent, but I think we're missing an opportunity to have a truly great out of the box experience. My codename for this is "drupaloob".

The first step is deciding the story for this. WordPress is a blog. We are not a blog. We are a multi user system. Can we turn on a minimal OOB experience that showcases some of our multi user and other strengths? In the words of President Obama, "Yes We Can!"

My personal opinion and outline for this is that we should ship with a "Community in a Box". I've documented it on groups.drupal.org. Regardless of the details of comments on or off, promoted by default, and other finer points, here is my user story for this Community in a Box:

A community site with front page articles, a community blogging section, discussion forums, and shared image galleries.

Anyone is welcome to sign up for an account and participate in the forums. After some time in the forums, users are invited to become contributors, and can post blog posts and photos, as well as submit unpublished articles.

The blogging functionality is a community multi user blog. It is not meant as one users blog, but rather a large community that can post quick thoughts responding to each other and sharing their ideas. (Note: this is in here because people get confused about "blog" functionality -- this is meant to highlight that having a community blog is not the same as a single user blog, so don't expect to be able to change titles and designs etc. -- your blog posts are in a shared, community space)

Editors are around and police the forums, as well as reviewing and publishing articles and other material for the front page.

The photo galleries are shared galleries: like the forum and the community blogs, users upload them to share, rather than in their own space. There are weekly suggestions for new gallery categories, and users can also tag photos with whatever they like to mix and match how the photos are grouped.

While I'm piling wishes on top of dreams, I'd even like to use the wizard that has been in core since Drupal 6 to make several parts of this OOB experience optional. That is, right at the beginning, users would have two options.

One would be to do an "express install" that would install everything with the defaults as I've outlined above.

The second would be to engage the wizard and answer a series of questions and options:

Do you want forums? yes/no
Do you want a community blog for contributors? yes/no
Do you want a community photo gallery? yes/no etc.

What do you think? What would you want people to experience when they first install Drupal 7? Edit the wiki, leave comments, or create some patches against default.profile.