The cathedral, bazaar, and Drupal development

In "Diaries of a Core Maintainer #6: A tale of two developers", Angie "WebChick" Byron describes the differences in the approach of two hypothetical developers, Sloppy Sam and Perfectionist Pat. Her article is about a year old now, but if you haven't read it yet, and you have never worked on a bazaar-style software project, I really recommend reading it to understand how bazaar-style software development works (specifically the Drupal development process). As you'll see from her discussion, even a relatively novice software developer can make an impact on a system if they understand how the system works.

(If you haven't heard the term "bazaar" used related to software development projects, the name comes from the book "The Cathedral & the Bazaar ", by Eric S. Raymond. It is a terrific book about the development of open source software. You can find the book at that link at Amazon, or you may also be able to google "cathedral bazaar pdf" to find a free online version of Eric Raymond's initial paper. That paper may be shorter than the book, but I'm sure it's still a great read.)

How a bazaar style project works

The "if" in that first paragraph is what I want to write about here today, i.e., "if you understand how the system works, you can be a contributor".

There are several things Angie mentions in passing about Sloppy Sam that new developers may have never experienced before (and older developers may not be comfortable with), particularly these items:

  • Sloppy Sam searches to see if her desired feature already exists.
  • She opens her IRC window and and asks a question in #drupal.
  • She posts her code.
  • She marks her code "patch (code needs work)".
  • She later upgrades her issue to "patch (code needs review)".
  • Sam gets some attention from Reviewer Rodney because he recognizes her name as an active contributor.
  • Sam asks for a "review swap".

To me, understanding some of these terms and concepts are barriers that keep some developers from contributing to open source projects. Once you get past these barriers this development style becomes old hat, but until then it can be a little intimidating.

I'd like to do more to help break down these barriers, and while I'm not currently active in the Drupal community (I'm mostly preparing to move back to Alaska at the moment), I hope the following pieces of information about the Drupal community and development process will be helpful to new Drupal developers.

Drupal developer and support information

Here are some links to Drupal developer and support information that correlate closely to the bullet items I've made based on Angie's article:

Drupal Issues You'll find the issues Angie mentions in this list of Drupal issues. Besides those issues, you'll also want to use the Drupal search form to see if a project already exists to solve the problem you're currently thinking about. (Just go to the Drupal home page and use the search form there.)

Drupal IRC Channels Here's a link to information about the Drupal IRC channels. You'll see that there are many Drupal channels available. If you're not comfortable with IRC software, just Google for "irc client software", download and install that software, and then point it at one of these channels. You can lurk around on the channels for a while to see how people commonly talk about various issues. This may help you feel more comfortable before just jumping in.

If you are a Mac OS X user, I recommend trying the free Colloquy IRC client. If you like it you can make a donation to their cause, but other than that it is free.

Drupal Developer Guide and Information Here's a direct link to the Drupal developer's guide.

Drupal Patches Here's a direct link to the "Drupal patches" page, which currently contains links to known Drupal bugs.

Contributing Code And here's a link to information on contributing code to the Drupal project.

Drupal Support For Drupal support, there is the Drupal mailing lists. There are Drupal mailing lists for support, development, themes, documentation, and much more. There are also the Drupal support forums. These forums contain hundreds of thousands of question and answer posts related to Drupal installation, installing, upgrading, developing modules and themes, and more.

Drupal bazaar development

I hope you take a few moments to read Angie's terrific article, and I also hope the links I've provided here will be helpful to you.

As a final note, Angie is one of the authors of the excellent book "Using Drupal". I own a copy of this book, and I highly recommend it, especially if you're setting up a new Drupal installation, and you want to know how to install and use many of the most popular Drupal projects that are currently outside of the "Drupal core". Here's a link to Using Drupal on Amazon's website: