For a good portion of 2008, I have been writing a book on using Drupal in Education. It has been a pretty incredible process, filled with rewards and challenges I didn’t envision at the outset.
Among the challenges: I began writing the book when Drupal 6 core was still in active development, and the contributed modules featured in the book did not yet exist in their D6 versions. As a consequence, I ended up writing two books to create one; the first version using Drupal 5 to help frame the scope of the book, and the second, final, version updated to reflect the improvements and changed processes in Drupal 6.
Among the rewards: a chance to see Drupal through fresh eyes. I’ve been working with Drupal for nearly four years now; writing a book targeted for people new to Drupal, and/or with a limited technical background, provided me the opportunity to slow down and examine procedures we had come to take for granted – things like adding a new content type, or adding a view. CCK and Views are critical to building a site within Drupal; we haven’t rolled a site out in the last couple years without these modules. The process of documenting their use helped me see the barriers that new users face when trying to learn these modules for the first time.
And while we are on the subject of Views, one of the other rewards of writing the book was being able to focus on the improvements between Views 1 and Views 2. The conversations and the development of Views 2 have been ongoing for over a year, and the work and effort has resulted in a tool that is more powerful while being easier to use. The ease of use of Views 2 in Drupal 6 shifts how we can develop, as Views 2 eliminates even more problems that used to require custom development.
The other realization I had throughout the course of writing the book centers around how we approach training in general, and Drupal-based training in particular. In discussions of training and usability, one main challenge revolves around identifying your audience: who are you training? What are their skillsets? What do they need to know to work effectively?
Most Drupal sites have at least three primary types of users: people who read content in the site; people who create content in the site; and people who maintain the structure of the site. There can (and usually are) overlaps between these roles, and some larger sites also have additional roles: for example, people who only add video content, or administrators who only edit/moderate content. And this is where things start to get interesting from both a training perspective and a book-writing perspective. Administrative tasks -- things like creating a new content type, building a navigational structure, configuring user profiles, configuring groups, etc -- are mostly strategies designed to meet needs. These strategies, once built into a site, provide a structure that people can use to do their work. The better these strategies have been executed, the easier it is to work within a site, and the more usable the site is for all stakeholders.
Which is all a long way of saying: site admins need to learn how to solve problems with Drupal. Other types of users shouldn't have to care. They are coming to the site to do work, and they shouldn't need to be bothered with *how* the site runs. From a training perspective, this results in multiple trainings around a single site
And with that said, the more we can simplify managing Drupal for site admins, the better. On more complex sites, we are already creating custom interfaces to make site administration easier, or less "drupal-ly."
Really, I'm still digesting the lessons (I think/hope) I have learned regarding Drupal, training, and usability. I'm going to be optimistic and assume that these thoughts will become more coherent, and if/when they do I'll share them here.
In the meantime, now that the heavy lifting involved in getting the book out is behind me, I'm looking forward to devoting more attention to other projects. In the upcoming weeks, we'll be doing some (much needed/long overdue) work with DrupalEd, and doing some more work with RSS Import (along these lines, but with an eye toward making this happen). We have some code that we have developed on some ongoing projects we need to release out, including some Drupal 6 code that can be used to create an amazingly flexible and simple online portfolio application. We're also still in the pipeline for the Knight-Drupal Initiative; as progress occurs I'll update this space.