The Development -> Staging -> Production Workflow Problem in Drupal

Anyone who has developed a relatively complex Drupal site will be able to vouch that, while launching a new site is relatively simple, continuous integration becomes very tricky once the site has actually gone live. This problem becomes especially pronounced when there is more than one developer on a project, and when the project is being built using proper development methodology.

The following example will illustrate this problem more clearly, as well as explain the use case of the Context / Features / Spaces module stack that we are writing here at Development Seed.

Building a site

This is a story of how Zak, Sara, and Ben are about to get screwed on a site build. But don’t worry, they find the Kool-Aid at the end. It’s called features.

Zak (a web developer) and Sara (a designer) are building a community site for their favorite indie artist (let’s call him Ben). Their original project plan dictates that the site will have a blog, a forum, and an image gallery. Zak has experience developing websites in Drupal, so they choose to use Drupal as the platform for their site. They set up a development server to allow them to collaborate and decide on subversion as a mechanism to store their changes.

To build their site, they:

  1. Assemble a collection of contributed modules, namely views, cck, and some other lesser known ones.
  2. Design and create a custom theme for the site.
  3. Create a number of views and content types to handle the site content using the Drupal user interface.