Bottoms Up: Problem Solving in the Drupal Community

by George DeMet

The increasingly rapid growth of the Drupal project has been the subject of some recent debate and discussion within the community. Some Drupal developers have argued that the core software is getting too large and too complex to sustainably maintain, while others have expressed concerns about the evolution of the business ecosystem and the perceived consolidation of developer talent. (A more detailed summary can be found here)

While these kinds of debates can sometimes get fairly heated, I think the fact that these issues are being discussed openly is a tribute to the strength of the community and a point of difference between Drupal and other software projects.

Drupal community

Back in the fall of 2008, as the global economy was teetering on the edge of oblivion, I happened to be reading Jared Diamond’s “Collapse”, a book that explores the reasons that some human civilizations flourish while others fail. A section of the book that describes the “bottom-up” approach to solving problems employed by the people of the Papua New Guinea highlands resonated strongly with my recent experiences at DrupalCon Szeged.

Before the arrival of European colonial powers in the 20th century, New Guinea highlanders lived for thousands of years with no centralized authority. Decisions in each village were made by community consensus, with anyone able to chime and and offer their opinion on a matter under discussion. There were no formal leaders or chiefs: some people were informally recognized as “big-men”, whose voices were more influential than others, but these people otherwise had no special status or privileges.

As Diamond describes it:

Decisions were (and often still are today) reached by means of everybody in the village sitting down together and talking, and talking, and talking. The big-men couldn’t give orders, and they might or might not succeed in persuading others to adopt their proposals. To outsiders today, that bottom-up approach to decision-making can be frustrating because you can’t go to some designated village-leader and get a quick answer to your request; you have to have the patience to endure talk-talk-talk for hours or days with every villager who has some opinion to offer.

Anyone who’s spent any amount of time in a Drupal module issue queue, participated in a discussion on groups.drupal.org, subscribed to a Drupal e-mail discussion list, or participated in a Drupal coding sprint will immediately see the parallels. Decisions are rarely made quickly within the Drupal community; they’re discussed, debated, and argued over at length before a consensus is reached. Even when everyone involved is in agreement, people still often feel the need to chime and express their opinion. And while there are some folks whose opinions carry more weight than others, they can still be overruled by the will of the community.

Just as the outsiders often find the experience of interacting with New Guinea highland villagers a frustrating one, navigating one’s way within the Drupal community also often requires patience and perseverance.

Lest anyone be concerned by the fact that I’ve just compared the Drupal community to a tribal society lacking in advanced technology, Diamond points out that over the years, the people of the New Guinea highlands developed sustainable farming methods so sophisticated that Western agronomists draw inspiration from them even today. These methods were iterated over thousands of years, with people freely and openly sharing knowledge with each other, then building on it with each succeeding generation.

Likewise, Drupal innovates through the free and open sharing of information, with each release building on the lessons learned from previous versions. This is one of Drupal’s key strengths, and an advantage it has over other platforms that are either tightly controlled by a single entity or have less robust developer ecosystems. I think it’s important that the community recognize this and embrace it as a natural part of the open source software and community development process.

At the same time, I also think it’s also important to recognize that not everything in the community can or should be driven by consensus. Even within bottom-up societies, there are numerous examples of “top-down” problem-solving techniques being applied to issues that go beyond the immediate needs of the existing community.

A couple years ago, I argued that as the popularity of Drupal continues to grow, it's inevitable that the majority of its users will become people who are not involved in or even aware of the community that develops it. Being able to meet the needs of this audience will require going beyond purely consensus-driven approaches because not all voices will be equally represented in the discussion. Consensus-driven models assume that all interested parties can participate in the decision-making and we need to be candid that as the community continues to grow that cannot and will not always be possible.

We’ve already seen that successful execution of large community projects like the drupal.org redesign, the Git migration, and the bi-annual DrupalCon conference requires some degree of structure, project management, and leadership. This is why the Drupal Association has spent the last year hiring staff members and restructuring so that volunteer board members are less responsible for the day-to-day operations of the organization. These moves will not only strengthen the Drupal community, but also make it easier for more “invested, but disengaged outsiders” to become involved.

I also think we need to be cognizant of the fact that as we debate and argue in the open, there are more people watching than ever before, and many of those people lack important context or background on many of the issues that face the Drupal community. Frank and open discussion is a good thing, but it needs to be respectful of others and not people away from the community. That’s why we have a Code of Conduct, which provides an excellent set of guidelines on how to interact with others in a way that preserves the Drupal community’s welcoming spirit.

Drupal is not in a crisis, but it is growing rapidly, and rapid growth sometimes requires change. The people of the New Guinea highlands faced numerous changes to their environment, population growth, and other challenges over their 46,000 year history, yet still succeeded in developing one of the most stable and sustainable civilizations in human history. I believe that the Drupal community has the potential to succeed in the same way.

Comments

What a well-written, thoughtful post. Love the metaphor. Next time I'm in a 300-comment issue I'll imagine myself sitting around with the rest of the villagers driving some outsider crazy!

Now, we've to ask ourselves once more whether Dries had all of this in mind when he originally intended to register dorp.org (Dutch for "village") on 2000-04-28, and only a typo made it become drop.org, which in turn, became drupal.org one year later, on 2001-04-26.

Awesome analogy! :)