Technical blog and writings by Micah Webner.

State of Drupal 2011 survey

I just finished taking the State of Drupal 2011 survey, and if you use Drupal in any way, you should, too. I thought I'd share some of my responses here, where I can also expand on them without getting too long-winded for a survey.

Drupal core provides stability. Drupal contrib provides agility. Core development should focus on building a well-written, reliable, secure platform with critical APIs that everyone can use. Contrib can extend core in many directions. Distributions, install profiles, and - more importantly - good cookbooks and tutorials can alleviate potential confusion about what contrib modules can work together to build great sites.

Drupal is a community built on scratching one's own itch, but as the Drupal community grows, so does the variety of itches. As a site builder outside the core developer community, I see a lot of pulling and arguing about what should and should not be part of Drupal 8 core, along with a lot of excitement and push to start building new things now that the long feature freeze of the Drupal 7 release cycle is over.

For instance, the block module needs to be overhauled. This has brought a lot of debate about following approaches taken with the Panels module vs Context module. Personally, I think a solution that brings a sensible API to blocks, consistent with the rest of core, leaves the door open for any direction, as long as contrib can build on that foundation without having to reinvent it first.

Yet at the same time, I see Drupal 7 adoption languishing because key fundamental pieces of contrib are not yet in place. This is due in part to the focus on D8, but also because the same roadmap debates have slowed development of these D7 modules. That's not to say that there hasn't been tremendous innovation in D7 contrib already. Just look at Drupal Commerce or Workbench for examples.

Meanwhile, Drupal 6 still provides 90-95% of what I need to complete most website projects, especially because I can write some simple custom modules to fill in where contrib doesn't quite provide what I need. Those custom modules tend to be very site-specific, so they don't translate well for sharing back to contrib, but I believe the methods used are well-suited for tutorials, which are a key part of open source software that I think are getting lost in all of the other discussions.

Features and install profiles are great for providing functionality, but the most important tool I've found in Drupal are tutorials that have guided me to the methods and thought processes for building better sites. (I'll still hold up Jeff Eaton's Photo galleries with Views Attach as the biggest influence in how I build sites today.)

There is a lot of talk about what Drupal core needs to include so that users can download Drupal and build a website. But Drupal is not WordPress. It's not a turnkey solution, and probably never should be.

Drupal's strength lies in providing a solid yet versatile foundation for site builders to create great websites, but it does require some actual site building skills. Drupal is not a tool for people who want to throw together a collection of HTML pages. It's for people who are willing to take the time to analyze their content and their audience and make careful decisions about how to store and present that information in a way that allows future expansion as either the content or the presentation mechanisms change.

In the past year, I've worked a lot with stakeholders who learned to build websites by creating a bunch of blank "under construction" pages, or want to start by building links to all of the pages they're going to write eventually. This approach completely fails with Drupal, or any CMS, because it puts content last in the process. Drupal cannot, and should not, be fixed to allow these users to build websites. Drupal has taught me to think more about my content and plan before building. Drupal would probably suck if it ever became so "usable" that it allowed people to build websites without planning.

This post was migrated and back-dated from my original post on Tumblr, which I have decided to move here.