Web Design

Should Drupal Be Better?

I accidentally stepped into a flame war this morning.

It started with a blog post by Bryan Braun, which made the point that Drupal's default backend interface is embarassingly bad.

Fanboy disclaimer: I'm actually a huge Drupal fan.  I could talk all day about why FOSS is always the best solution, and why Drupal is the best open source CMS.  I just gave a talk at BADcamp in which I argued that Drupal is much more than a CMS and is pretty much limitless as a web app platform.  That said, I think it's okay to admit shortcomings; this is a community-driven project.  But I'm getting ahead of myself.

Bryan is right, of course.  Drupal's backend interface does not hold up well compared to other modern web apps.  His blog post was tweeted by The Weekly Drop, and favorited and retweeted multiple times after that, so it's easy to say I'm not alone in my opinion.  But the article was criticized by Steve Purkiss:

And that's when I stepped in it.

Steve & I exchanged tweets for the next half hour, and then Jeni Tehan decided to gang up on me too:

Oh my goodness!  I shouldn't, but I will.  Let's break this down.

You should customize the backend

Yes, this is true.  If your customer is (a) not technically profficient and (b) is expected to create their own content after you deliver the product, then it's a very good idea to customize the Drupal backend.  This isn't hard; the Drupal admin theme is as easy to customize as the front end theme, and there are already some excellent contrib themes at Drupal.org.  Prominent projects like Panopoly have already done a fantastic job transforming the backend into something that is clean, modern, attractive, and friendly.

Steve also argued that customizing the back end isn't even that hard; you can do it with a premade Feature that you reuse for every project.  He's right.  You could also use a fancy distro like Panopoly, which has already done the work for you, and even Spark has a D7 version.

But in my opinion, that illustrates the problem: Drupal demands this level of work because the back end needs it.  Wordpress' back end is very clean and easy compared to Drupal's, and doesn't need customization.  Yes, Drupal does way more than Wordpress, but we'll get into that later.  Drupal 8 does a much better job of the back end, which brings me to the next argument.

Drupal 8 will fix all this

Also true!  Personally, I'm very excited about Drupal 8.  The backend is receiving a lot of love in the form of Spark and Scotch.  (Even though Scotch didn't succeed at its initial goals, I believe it's still having impact.)  In fact, one could argue that the default back-end interface in D8 is "good enough."  Of course it's not Gmail, and maybe that wasn't a fair comparison in the first place.  Creating content in a CMS is probably more involved than writing an email, and demands more data.  And maybe the real issue here isn't the UI, but the UX, which is also the responsibility of the developer (or more broadly, the vendor).  I've started to hear the term "AX," or "Author Experience," and I'm glad that this is something that is being considered.  Using a website on the back end will always be different from using a website on the front end, and it raises different issues.

Does a better Drupal 8 let D7 off the hook?  Arguably, yes.  Is D8 "good enough?"  We don't even have a beta version yet so it's hard to say, but my gut feeling is yes.

But my point has more to do with the emphatic defense of D7.  It's okay to admit that a product has flaws.  That is, in fact, why we're working on a new version.  I have too much professional respect for Steve to accuse him of being a fanboy, but I don't think you do the product a service by defending something that's really a flaw.  D7 is still the best CMS on the market--by far--and yes, this flaw is easily correctable by a developer worth his salt.

But let's consider this from the standpoint of the larger market.  Drupal still lags behind Joomla in terms of market adoption.  That's staggering; Joomla is a terrible product and it still has a larger market share than Drupal!  Why?  I don't really know, but a good guess would be marketing and the network effect.  That's certainly the case with the closed-source content management systems; they succeed because corporations do a good job of selling them.  That's Drupal's competition.

My point: If we act like a bunch of fanboys and refuse to admit the shortcomings of our product, we're not going to do a good job of selling it.  I firmly believe that good salesmanship demands honesty.

You can't be simultaneously simple and powerful

This was Jeni's point, and it's a point that's been made by others: We shouldn't load Drupal down with every feature.  It should be clean and lean and flexible.  Let's get rid of things like Dashboard, and give each developer the ability to carve a back end that works for that project.

That's also true - Drupal is already a beast when it comes to performance, and we should do whatever we can to make that better, not worse.  But the argument falls short because every Drupal site still needs some sort of back end.  And given that fact, I don't see any good reason why the back end shouldn't be beautiful.

I pointed out before that Wordpress' back end is much easier to use than Drupal's.  You could argue that's because Drupal is more powerful, but frankly, that's a poor excuse.  Companies like Apple have made a name for themselves by offering products that are both powerful and easy to use.  This isn't a forum about the quality of Apple's design aesthetic, but the point is I reject the notion that we have to sacrifice beauty or ease of use for the sake of power.

Let's unpack the Wordpress comparison a bit more.  Drupal fans love to claim that Wordpress is nothing more than a blogging platform.  That may have been true six years ago but it isn't really any more.  To give just a few examples: BuddyPress turns WP into a full-fledged social network.  WooCommerce gives you a fully-featured online store.  Advanced Custom Fields gives you the same power as CCK - still not as powerful as D7, but at this point we're very far from blog territory.  I could go on.

Even without making that point, I could still point out that there are 27,000 plugins on Wordpress.org - that's more than the number of modules at Drupal.org.  Sure, a lot of them are related to blogging, but what happens if you install a couple dozen modules?  The back end is still clean and simple.

And that's really my point, and I think Bryan's point too.  "Drupal is powerful" is a poor excuse for Drupal being ugly.  And if D8 is already doing a better job (which I think it is), then that proves that it is possible for Drupal to do a better job.

So what?

Yay, I won my argument.  But so what?  Especially if Steve already pointed out that what I want exists in D8, what's the point in talking about it?  What's the point in Bryan talking about it?  Well, there are several takeaways here.

  • There's work to be done.  Bryan already answered this question better than I could.  He pointed out that there are lots of open tickets for Drupal core that have to do with usability, including many for D7 that are still open.
  • There's more work to be done.  Scotch isn't going to get into D8 core because not enough people helped.  Spark still has lots of open issues.  You should help out.
  • Let's adopt D8.  There's been talk of developers leaving Drupal because they don't like the changes in D8.  In fact, that's the raison d'etre for Backdrop.  The argument in favor of D8 is that it's better.  I buy that argument, and this is a great example of why.  I can't wait to use a back end interface that's clean and attractive and doesn't require a lot of work before I ship.

Finally, Bryan already answered this question.  He had the first word, and I'll let him have the last:

We raise awareness. We explain that if Drupal is succeeding, it is despite its authoring experience, not because of it. We acknowledge the issues that exist, and we chip away at them in the core issue queues as much as we can. Then we celebrate every victory we have (three cheers for the improved installation interface!).

I agree.  Drupal is already the best CMS on the planet, but that doesn't mean we shouldn't make it better.