Thoughts on the DriesNote: Towards Drupal "Contribution Credits"
UPDATE: putting theory into practice, I'm now hiring someone at Pantheon to contribute full time.
Two weeks ago at DrupalCon Amsterdam, Dries Buytaert gave his traditional State of Drupal, or "Driesnote", presentation, outlining his thoughts on scaling open source communities. I thought it was one of his best presentations to-date: addressing a pressing concern within the community with both a philosophical outlook and some specific proposals to start a wider discussion. It's a pressing topic, and I wanted to add my own two cents before my thoughts became too stale.
While there are differing opinions on how Drupal is fairing internally as a project, publicly available metrics suggest a plateau in activity. There are many ways to interpret that data, and while I think there is real cause for concern — hence the timeliness of this Driesnote — I also think there is also cause for optimism: the project is by any account one of the most vibrant and active open source efforts in the world right now, and there is abundant opportunity.
That said, it's my opinion that the Drupal project needs to innovate if it is to continue its rise and maintain sustainable growth over time.
At the moment there's a fair amount of angst in the community over increases in technical complexity with Drupal 8, as well as the increasingly large commercial ecosystem growing around the project. The former question is important context for this debate, but not one that I want to address right now. We'll see whether Drupal 8's re-architecture will be a win or not, but this question is ultimately orthogonal to how an open source project and its commercial offshoots form a healthy dynamic.
The "business of Drupal" is booming, but what does this mean for a community-driven open-source project? How can entities profiting from the project contribute back? Should that be a concern? If so, why? How much? What, if anything, should the project do to make it easier or more attractive for these entities to contribute?
These are privileged problems to have — successful open source project seeks to reconcile growing commercial success with a decade of community driven development! — but they're still problems. Let's dive in.
I really like the framing of open source projects as a public good. I could go on about that at some length, but I that's not really the topic here. Suffice to say I think it's a great way to think about projects like Drupal. The real question is what does this suggest we do?
In his keynote Dries lays out a few high level options, and then a few specific suggestions for how those could be implemented. At a high level, he suggests that we focus on "selective benefits" to contributors, who would be recognized as "privileged groups":
The most common solution... is taxation; the government mandates all citizens to help pay for the production of the public good. Taxpayers help pay for our basic education system, the road system and national defense for example. Other solutions are privatization, civic duty or legislation. These solutions don't apply to Open Source.
It's my belief that we should embrace the concept of "privileged groups" and "selective benefits" in the Drupal community to help us grow and maintain the Drupal project. Furthermore, I believe we should provide "selective benefits" in a way that encourages fairness and equality, and doesn't primarily benefit any one particular organization.
This has elicited some pushback, but I think that's mostly an unfortunate side-effect of language and style rather than substance. In contemporary dialogue, "privilege" has come to mean something more exclusive than is intended here.
Basically Dries is suggesting that the Drupal project confer benefits to individuals and companies that make contributions. A key idea is an algorithm doling out "contribution credits", which would be recognized directly and also exchangeable for specific benefits.
While there are a lot of questions about how "contribution credits" could be implemented, at a high level it makes sense. If we want more contributions, we should institutionalize incentives. I don't believe that should be a controversial idea.
Furthermore, we already do this to some extent today, both formally (e.g. benefits for financial donors to the Drupal Association) and informally (e.g. the promotional benefit of having your name on an important piece of code). Refining this existing organic system into one that's transparent and quantifiable seems like a great place to start.
The Devil is in the Details
Of course, the details are tricky. In practice, Dries suggested a few modest ideas that revolve around changes to drupal.org:
- Badges on individual pages indicating contributions: the "gamification" of contributions.
- Adjusting listings in the Drupal services directory to promote contributors, rather than simple alphabetic listings.
- Offering prominent advertising — e.g. a major splash on the drupal.org frontpage — based on an individual or organization's "contribution credits".
There are also a few things Dries hasn't said directly that I believe we should be able to build a consensus around. And then of course there are a number of challenges.
The Drupal Association is Key
One of the best things Drupal has going for it in this effort is the Drupal Association. It's come a long long long way since its early days as a collection of geeks stumbling through the formalities of non-profit process.
The DA is professionally run, financially independent, and has the resources needed to implement the technical and business initiatives required. It's also uniquely positioned to be a "fair dealer" when evaluating and granting "contribution credits". Most contributions happen on or through drupal.org, and any changes there would go through the DA.
The only question I have is whether the association sees this challenge as within its mandate or not. That will be interesting to hear.
The Value is in the Data
When it comes to how and when someone would be granted "contribution credits", the good ideas rely on collecting more and better organized data about project activities. The question of how one recognizes the individual and her employer is unsolved, as is the problem of how we would track and recognize contributing activities outside code commits.
The latter is really a tough question: community organizing, documentation, and even just contributing to the conversation around a change in code are all vital contributions that currently go un-tracked.
While there are concerns that any algorithm would be game-able, I think the concern around un-valued contributions is a bigger one. If we don't have an inclusive metric for allocating "contribution credits", we run the risk of creating unbalanced or perverse incentives, or simply turning people off.
Smaller Players are Concerned
While there are more and larger companies using Drupal, the bulk of the economy surrounding the project is made up of small companies and freelancers. There is concern that these changes could "squeeze out" smaller participants.
I don't see much of an argument for a squeeze. While it's true that making contribution more visible and allowing "contribution credits" to be exchanged for advertising would put non-contributors at some disadvantage, I don't think this is a damaging blow for non-contributors. They're getting along fine as-is and would continue to do so.
However, I do think there's a real question as to how much a small entity has much to gain from spending their "contribution credits" on banner ads. Unless drupal.org is transformed into a much better and more promotional platform, it may not be a great source of leads for new business. It's important that anything we do here is a "win" for the bulk of the commercial ecosystem, e.g smaller entities, which will require more creative thinking.
A Few More Ideas
I wanted to close by adding a few more ideas. I am assuming at this point that the Drupal Association gets on board with the overall objective and commits to driving the technical and organizational changes required.
What else might help drive participation? What else might "contribution credits" be exchanged for?
More Personalized Marketing
While more labor intensive than running banner ads, I think the Drupal Association could consider staffing and running "demand generation" marketing programs featuring contributors. The same "contribution credits" economy would apply, but rather than redeeming these for ad impressions, a contributor could be a part of a weekly case study or webinar, or other more personalized marketing activity.
When I helped run a small but growing consultancy, the question of how to go after DrupalCon was always fraught. The sponsorship dollars are never easy to come by, and for a shop that doesn't have a dedicated sales and marketing team, staffing the conference always means taking billable resources out of action. To soften the blow, the DA could offer sponsor-type benefits — tables, logo placement, etc — in return for "contribution credits" instead of cash.
Promotion on Drupal.com
Currently drupal.com is a personal project of Dries Buytaert, which is certainly his prerogative. However, it is also the natural home for commercial activity around Drupal. If the DA were to assume stewardship of that property as a dedicated place for promoting Drupal and its contributors, it could open up new possibilities.
The DA could do this without drupal.com of course by creating a new property or subdomain focused on generating interest and opportunities for Drupal professionals. IMHO doing that through drupal.org will be slow and difficult as the purpose of that site is to support the community project. A dedicated promotional vehicle (or multiple vehicle) makes sense.
I think this is a really valuable discussion to have. I'm particularly curious as to what people think of my specific framing of "contribution credits" as a way of better conceptualizing the economic idea behind this notion.
I'm also particularly interested in what other kinds of activities we need to think about recognizing, as well as how to engage members of the Drupal community outside the shops, agencies, and big customers in this conversation. What would most motivate the individual module maintainer? How can non-profit foundations contribute? What about gigantic entities like the Australian Government?
This is a really good time for this conversation as I think we can expect some upswell of interest with Drupal 8 coming soon and all the "modern PHP" development (hashtag: #phprenaissance) going on. Let's hear more voices!