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.
Thanks to @mattfarina for kicking this loose from my brain on Twitter.
Comments
Wordpress 3.0 vs. Drupal
I agree with the first comment. (edit, I guess last comment actually)
Since Wordpress 3.x is moving into Drupal territory, and since you guys are looking for a common project to work on which has a specific use case. Why not create a Drupal install profile which rivals Wordpress in terms of functionaliy. Wordpress is fairly simple to re-create with Drupal, so it would be a great starting point.
I personally would love to see this and would probably stop recommending wordpress to my clients who request a blog. I much prefer working with Drupal anyways, but I feel for a blog, wordpress fits my clients needs better.
With that said, I recently took on a Wordpress 3.x project as an excuse to play around with it. I find 3.x no different than working on Wordpress 2.x. I don't think it's caught up to Drupal at all and is still a pain to work on and theme.
So with that said, D7 wordpress clone anyone? I've been personally planning on ripping wordpress themes to Drupal 7 zen-sub themes as a personal project. I would be willing to contribute a couple theme rips.
---
Drupal & Ubercart Themes and Development
Balancing the equation
Many times, I've read Drupalistas who say, "If you want to blog, get Wordpress." Now Wordpress is pushing deep into Drupal territory with WP3. I think it's time to reciprocate with a Drupal blog that competes head on with Wordpress.
My 2¢
The problem I find with Drupal is that it doesn't know it's audience.
As a developer I disable many of the modules upon installing Drupal, especially in Drupal 7.
Some projects I heavily use the CMS features of Drupal and other I use the Framework features. They may not be the best, but I know them, I like them, and they work the way I want them too.
When talking about 'UX' we need the think about the 'U' more than the 'X'. Who is the user, or who do we want them to be? what are they doing? what do they want?
Step back
There are plenty of frameworks out there. There are plenty of products out there. Maybe we're hurting ourselves by trying to be both at the same time?
I think maybe we should step back and look at how other frameworks (and products) are and then re-evaluate what we should do.
I think we can & should do both
I actually think that Drupal is somewhat unique in this regard. We started as a product, and then rebuilt the framework underneath as we went.
We've done LOTS of work improving Drupal-the-framework. I am arguing that we are at our best by also improving Drupal-the-core-product, which we haven't touched in years.
What is Drupal-the-core-product? Loosely, it's default.profile + whatever modules / APIs we decide to ship in core, although of course the two are quite closely coupled.
Yes, but
What does Drupal-the-core-product do? I guess that's what we should be asking, and I don't think anyone really knows, because theoretically it should be able to do *something* on its own, and obviously we haven't gotten there yet, nor do we know how (because we don't really know what it should do)
Perfect
Perfect. That is EXACTLY the question I was asking a year ago. I suggested we could do a community in a box, but got no feedback or viable alternate suggestions.
Core Drupal
In my opinion, d.o should be much more product centric than it is. Various install profiles already have major communities behind them, and I think the fact that they aren't featured in a really major way on d.o is a shame, and ultimately hampering where we could (and I would argue WILL) go.
That being said, core drupal (to me) should really be about building these products. So with that said, I'll propose a counter question to you Boris. Assume for a moment that I'm right about my above assertion, instead of asking what drupal should do out of the box, let's ask what drupal products our profile ecosystem needs to continue competing with the various other open source competitors we have, because feature for feature, core is probably never going to compete (at least not in a timely fashion). BUT! If core were marketed as a tool for building other drupal based products, instead of a product itself, then contrib could answer, product for product against our competition.
I still believe core (default.profile) should do SOMETHING
You miss my point. I am arguing that by shipping core Drupal to do *something* (and it doesn't have to hit it out of the park, since it only has core modules to do it with), then we attract beginner users that will grow up to be better users over time.
I think tools that don't do anything out of the box are hard to learn, and target too narrow a market.
That being said, I still think we should go back to our roots and ship a great multi-user community platform. *cough* Ning & Buddypress competitor *cough*
It Just Depends
I use both Wordpress and Drupal pretty extensively, and my point of view tends to be the opposite of WP has the better UX.
Wordpress is "easy" because much of the cool functionality that people want lives in the theme layer, and you go to option pages and configure your sliders and your blocks. Change themes and poof, it's gone. There are many many themes right now that do not have support for the WP3 features because they are theme dependent.
The new custom posts feature is great in WP, but it requires theme or plugin support from a developer to enable it for the average user. I still find it easier to knock out content types in Drupal and I have more granular control. Drupal also has much much better support for permissions that WP.
For most Drupal clients, the admin is configured with an admin theme and they see the admin menu module with only the items they can access. It is so easy I get far fewer questions problems than in WP.
I think the goal for Drupal should be to be a better, easier Drupal...which probably boils down to starter kits that ease the setup process.
Drupal sucks
Comparing Wordpress and Drupal... will always result in "Drupal sucks". At least as long as most primitive use-cases and tasks are galaxies away. It is true that we need more Drupal users. But not for the user experience. Instead, we need them to raise the pressure, on most simple features and functionality.
It is solely about dumb-a** features like building a simple menu, split into multiple levels, rendered in different blocks. It is about most simple content formatting, maintaining content and references, ensuring access and security, providing previews. Drupal heavily sucks in the most simple areas. And while we certainly improved the usability for D7, it's totally the most basic functionality that makes Drupal loose in comparison with other systems.
The reality is that those fundamental functionalities are not bound to specific use-cases, and therefore, also not bound to an installation profile or distribution. The reality is that most Drupal core developers and subsystem maintainers rather seem to like to work on big and challenging issues, entirely revamping technical structures and behaviors. Disregarding simplicity.
Drupal itself is the product. Nothing prevents us from improving, modularizing, and extending it. Make it suck less, work on Drupal.
Great comments
Sun: great comments. I feel like we are still talking in parallel. This is not Drupal vs. WordPress, since you can't compare the two directly. Comparing Open Atrium vs. WordPress isn't even possible - in that case, for running intranets, comparing the two will always result in WordPress sucks.
Sorry, but this is the point on where I completely disagree. Those thing that you mentioned? I can think of a universe of products where those features will never be needed OR be implemented in ways that improve one UX and detract from the others UX. You still have a point of view that is tied to "site building" -- which is a completely valid product, and I think should be improved out of the box.
And I would be the last to suggest not working on core Drupal. I'd just like to have a bit more shared vision on what core Drupal is good at.... out of the box. AND I think we should tackle a product other than just site building.
I'm going to agree and disagree simultaneously
I will echo the sentiments stated here numerous times in that I think Drupal's primary benefit is the fact that it IS all these different lego blocks. With that said, doesn't it make sense to build Drupal's core administration experience as a better lego stacker? I agree, various products within the Drupal ecosystem have begun to open the community's mind to what could potentially be done from a drupal administration stand point, however that does not necessarily translate to "drupal needs to have a more clearly defined purpose out of the box". While I agree, if it did, our administration could be better, I think that's a mis-step and I'll outline why.
Drupal's power has always been it's ability to quickly take different needs and provide co-existing solutions for all of them simultaneously. Obviously no one is proposing that should go away, but giving drupal a default "site type" out of the box muddies the waters about what it can do. Drupal then gets pidgeon holed along with WP. Granted, that core purpose is different, but we're volunteering to be put into the box from a consumer perspective. Most consumers of these various web products aren't really savvy enough to understand the fine lines. (granted they're not our target audience either, but it starts the propaganda machine, and then we're killing unnecessary fud)
d.o is already starting to provide fully productized drupal implementations like Open Atrium and Managing News. We all agree there are some hurdle yet to overcome in this particular implementation, but we have a great start.
All that to say this:
Drupal 7's new administration is great. I was not a fan of the entire idea, but after seeing it in action, I'm happy to admit I was wrong. That being said, the technicalities of our administration, and the actual administration itself are two very different things. I think our technical implementation has a lot of very cool possibilities associated with it, but I think the actual admin itself is... confusing. Our administration is some hybrid of trying to give super users what they want, and complete newbs what they need. As great of a goal as that is, I think it detracts from the administrative experience drupal should have. What Drupal should REALLY have is an administration system that caters to the super users. Then that administration should have further capacity to define and deploy various administrations for the "common" user on the website. This sort of approach (which I have a number of ideas about how to actually implement) does a couple things:
1.) It provides power tools to power users out of the box. We aren't trying to cater to everyone, so we just need to cater to the super user.
2.) it gives the site admin the ability to provide administrative tools to other users on a role by role basis (or perhaps some other basis as desired).
3.) it supports the install profile ecosystem further by giving them UI to define custom administration tools for their own products which in turn provides a more clearly defined administrative system for their end users out of the box.
Bottom line, let's not muddy the waters further by giving Drupal a purpose other than the box of legos it is. Rather, I propose we simply organize our administration to be the most effective product building tool on the web. Other people will create those various purposes for Drupal profiles, and we should be trying to make their job as simple as possible.
Site building as goal
Eclipse, totally valid point of view. I believe end users evolve to become site builders, and that if we target only site builders with the core product, then our wellspring of new users climbing up the learning cliff will dry up.
Having a core product that does something, and implemented with best practices, gives a template for people to pick apart and get better at site building.
Oh, and of course, I'm bitching because "back in the day", what Drupal did out of the box was cutting edge and GREAT - it allowed end users something really full featured that other tools didn't offer at all.
My premise is that we've fallen behind in our core offering (default.profile) while our legos have actually gotten infinitely better. This is fixable, we just need to work on it :P
Even without specific
Even without specific products, Drupal could do better at marketing itself as a tool that can 'build anything'. That's how I sell Drupal all the time - if you want a blog, go ahead and use WP; if you want anything else, choose Drupal. </p>
The critical issues, as I see them are:
The Wordpress UI is’t perfect, but overall it’s a great experience. Drupal’s interface isn’t bad (in D7), but it still isn’t linear. With WP, it’s very clear that the two main areas are “writing” and “admin”. Outside of that, there’s lots of extra things we can do, but there are two main things. I can manage my site, and I can add content to it.
If we want Drupal to be a product (of any kind) or a more generic framework, I think that first time users need context. They need to see CCK in action, they need to see things grouped together with Views. They need to see a functioning blog, a functioning forum, a functioning image gallery. I’m no internet expert, I’ll admit, but it took me many months to even figure out the things I could possibly do with Drupal! In short, I think we need to be able to say to new users– if you want to build a blog, here’s how; if you want to build an image gallery, here’s how; if you want a community site with 1000 users, here’s how. This is the piece that’s missing, and I think the current way (telling people that there’s 10 different ways to do things) doesn’t work.
Drupal’s strength is in its flexibility – its ability to act as a framework that almost anything can be built upon. But shipping it without Views, CCK, imagecache, and a good admin theme seems to me to set things back. Not to mention the fact that Garland is still the default theme (I mean absolutely no disrespect for the hours of hard work that went into it, but Garland really is an aging poster boy).
I understand, however, the reasons why Drupal doesn’t ship with these contrib. modules, but I think work needs to be done to close the gap. If Drupal shipped with 2-3 front-page articles, for example (1) Making a blog with Drupal, (2) Making an image gallery, etc, it would get new users off the ground faster, and would very likely attract more of those new users.
I'm also in agreement
Drupal "out of the box" should be able to handle a very simple site as it is now. One thing I always disliked about Wordpress was the updates require downloading a huge package. In it is things like TinyMCE and upgrading meant either deleting out that stuff (and hoping it wasn't updated) or upload stuff that is already there.
I would love to see a much better approach on D.O. for newbies to obtain what they want. Developing a package/dsitribution system coupled with solid install profiles would be the best way to handle this. I've thought about ways of doing this a lot in the past and to me the best solution would be along these lines:
- Go to the D.O. download page. You have 2 options, just download the base Drupal or go to a web based wizard.
- The web based wizard would start off with some basic distributions. Things like blog, wiki, media site, forum, etc.
- After picking your base package you would then be able to select addons. Say things like TinyMCE or FCK. A secondary install profile is created for this that would install and configure these items.
I haven't thought too much about the mechanics of such a system, but I think it would be doable (with a bit of work). I haven't looked into the install profile changes in D7 that much, but I'm sure some work would still have to go in so that there's a more flexible API. If not that then D.O. would need a script to generate install profiles based upon what people select.
The biggest benefit of a system like this would be much easier installs for new users. Basically they would have a somewhat functioning site "out of the box", which has always been a big attraction to Wordpress. Also they wouldn't have to worry as much about searching out different modules to expand their site.
Another benefit would be tracking of popular configurations. Say we see 70% of the downloaded profiles include TinyMCE. Then the community would have a better indicator that TinyMCE deserves wider attention. The same can be said for numerous other modules (Pathauto, Views, Webform, etc., etc. etc.). Yeah we got a little bit of an indicator right now through the usage statistics, but I think this would provide much more reliable data in the future.
Distributions & Install Profiles
What you're talking about will actually come from distributions & install profiles. Most of what you describe is unlikely to ship with the core product BUT it might be possible to download "products" from within Drupal as part of local installation.
That is, similar to your wish list, except instead of happening on Drupal.org and then downloading, it would happen as you are installing.
As you know, I obviously
As you know, I obviously agree with this line of thought. Though, I personally believe that Drupal /does/ currently have a clear out-of-the-box goal. The target is site builders as opposed to site users. The UX for site builders is actually quite good IMHO. If we want it to be good for users too I think there's three major things that need to happen:
1. Making polished distributions is still a ton of work and it needs to be more straight forward. Work is already being done to make this a lot simpler (with stuff like features and improvements in D7).
2. The Drupal backend needs to be more customizable for non-site builders (i.e. a site-builder backend AND a regular site admin backend). I think this could be done in a module, but basically the backend is designed for people who are building a drupal site, not just administering it. Even after the D7 redesign it's still not going to be easy for regular non-techies to find their way around the backend.
3. An easy to access library of "distributions" or install profiles that users can select from when installing Drupal.
Build admin vs. using admin
Talking about a "building admin" vs. a using / editing / etc. admin is a great insight, Scott. I think you're right.