Dries Buytaert

Responsible maintainers

When a popular Drupal module is not maintained properly, it creates all kinds of problems: people can't upgrade their websites, they have to backport security fixes, etc. As a result, the Drupal community has a strong desire to make sure that important modules are always stable and up-to-date. In practice, however, this isn't always the case. Sometimes, important modules are slow to be upgraded, or have stopped being maintained altogether.

It is remarkable how many people think Drupal will never quite manage to realize its full potential unless we make sure that important modules continue to work. I don't necessarily share this belief. However, if some people think that this part of the Drupal development model is broken, we have to try and fix it.

Now, some people demand that we force developers to help fix and upgrade the most important modules in a timely manner. That is, of course, fundamentally flawed ...

You need to realize that if you created a Drupal module that thousands of people depend upon, you created a successful Open Source project. Successful Open Source projects need responsible maintainers in order to sustain. As the maintainer of your project you are in charge, and you have to take responsibility. Period.

We can't force volunteer developers with no particular interest in your module to help you maintain it, nor can we hold them to deadlines. Open Source is all about letting people scratch their your own itch and having good ol' fun. Clearly, there is no fun in being told to upgrade someone else's code by a specified time. Plus, assigning more programmers to a project running behind schedule will make it even later (The Mythical Man-Month).

This is an organizational problem. We can't solve it with a technical solution. So what to do instead?

Well, we have to accept and acknowledge the fact that a project the size of Drupal is always going to be a bit broken, and that command and control won't cultivate the Drupal wilderness. Drupal got built by people who chose to build it, not by people who were forced to. Rather than forcing people to do something, we need a culture that uses peer pressure to encourage responsible maintainership.

For starters, an important Drupal project should not depend on a single person, especially if that person is a busy one. If you are the author of a successful project, you have to delegate responsibility and provide leadership and structure for others to help you. Avoid being a bottleneck. Avoid being a single point of failure.

In order to make your project sustain, you have to make sure that it scales and that you build a team of passionate users and developers. You have to find, motivate, guide, and empower people to take on a role within your project. You have to help others help you.

Anything else is a failure of leadership. It doesn't mean that you are a bad person or that you lack leadership skills — it might simply be the case that you are too busy or that you have no particular desire to support your project's growth — but it is a failure of leadership nonetheless.

As a community, we have to make sure that we have the right people at the right place. The people who maintain popular Drupal modules should invest enough time and energy in these projects, and they have to make sure that there is enough programmer effort available to help fix and upgrade these modules in a timely manner.

And me? All I can do is help create the right environment by providing the tools required to build a successful community around your Drupal project, by providing enough time to upgrade your modules and by cultivating the right culture. What I absolutely must do, is debunk the myth that forcing hordes of volunteer developers to rescue you will provide a sustainable solution.

— Dries Buytaert

2 min read time