Setting higher standards for corporate contributions to Drupal

Last week I made a comment on Twitter that I'd like to see Pantheon contribute more to Drupal core. I wrote that in response to the announcement that Pantheon has raised a $30 million Series C. Pantheon has now raised $50 to $60 million dollars of working capital (depending on Industry Ventures' $8.5M) and is in a special class of companies. This is an amazing milestone. Though it wasn't meant that way, Pantheon and Acquia compete for business and my Tweet could be read as a cheap attack on a competitor, and so it resulted in a fair amount of criticism. Admittedly, Pantheon was neither the best nor the only example to single out. There are many companies that don't contribute to Drupal at all – and Pantheon does contribute to Drupal in a variety of ways such as sponsoring events and supporting the development of contributed modules. In hindsight, I recognize that my tweet was not one of my best, and for that I apologize.

Having said that, I'd like to reiterate something I've said before, in my remarks at DrupalCon Amsterdam and many times on this blog: I would like to see more companies contribute more to Drupal core – with the emphasis on "core". Drupal is now relied upon by many, and needs a strong base of commercial contributors. We have to build Drupal together. We need a bigger and more diverse base of organizations taking on both leadership and contribution.

Contribution to Drupal core is the most important type of contribution in terms of the impact it can make. It touches every aspect of Drupal and all users who depend on it. Long-term and full-time contribution to core is not within everyone's reach. It typically requires larger investment due to a variety of things: the complexity of the problems we are solving, our need for stringent security and the importance of having a rigorous review-process. So much is riding on Drupal for all of us today. While every module, theme, event and display of goodwill in our community is essential, contributions to core are quite possibly the hardest and most thankless, but also the most rewarding of all when it comes to Drupal's overall progress and success.

I believe we should have different expectations for different organizations based on their maturity, their funding, their profitability, how strategic Drupal is for them, etc. For example, sponsoring code sprints is an important form of contribution for small or mid-sized organizations. But for any organization that makes millions of dollars with Drupal, I would hope for more.

The real question that we have to answer is this: at what point should an organization meaningfully contribute to Drupal core? Some may say "never", and that is their Open Source right. But as Drupal's project lead it is also my right and responsibility to encourage those who benefit from Drupal to give back. It should not be taboo for our community to question organizations that don't pull their weight, or choose not to contribute at all.

For me, committing my workdays and nights to Drupal isn't the exhausting part of my job. It's dealing with criticism that comes from false or incomplete information, or tackling differences in ideals and beliefs. I've learned not to sweat the small stuff, but it's on important topics like giving back that my emotions and communication skills get tested. I will not apologize for encouraging organizations to contribute to Drupal core. It's a really important topic and one that I'm very passionate about. I feel good knowing that I'm pushing these conversations from inside the arena rather than from the sidelines, and for the benefit of the Drupal project at large.

Comments

Jeff Geerling (not verified):

While every module, theme, event and display of goodwill in our community is essential, contributions to core are quite possibly the hardest and most thankless, but also the most rewarding of all when it comes to Drupal's overall progress and success.

This is the key—and one of the reasons I (and many others) choose *not* to do any meaningful core contribution in their spare time anymore... some of the big issues that have burned me out of all volunteer time are some of the issues that have made Drupal 8 the most amazing CMS release I've ever used.

But I won't keep doing them with my precious 'personal OSS contribution time' (which is more and more limited as I branch out in other communities, and expansions in my own family), because it's honestly a _job_ to do those kind of large scale changes. I'm extremely grateful to the companies that do sponsor one, two, or many full-time core developers, because they really are necessary for some of the large initiatives that all Drupal shops rely on day-in and day-out.

While calling out Pantheon in particular may seem in poor taste coming from 'Dries, Acquia CTO', I see where you're coming from as 'Dries, BDFL of the Drupal project', and I hope it inspires larger companies to understand that Drupal will only continue to stabilize and grow with dedicated core resources!

July 29, 2016
Vijay (not verified):

Hi Dries,

Just in case, if you don't know, there are so many Drupal people around/following you, take the tweet (or your comments in general) the (right) way you intended. It's very sad that it makes you feel this way when all you want to do is to make open source software great and useful.

Now to the matter on hand: though there are so many efforts from the Drupal Association to make corporate contribution visible/measurable, IMHO, it's still not an easy task to get it in. Simply put, it's easier to spend a few millions per year to be a partner of Microsoft or Oracle, than to facilitate developers to contribute to open source every Friday afternoon. I don't see any way to change this but making the client/business aware of the value of contribution and ask it as an explicit requirement.

July 29, 2016
develCuy (not verified):

From the business side of things, companies raising capital are supposed to use that money to create more value for their company, which then produces profits to make investors happy. If somehow they get some budget for contributing to core, it is actually more expensive for a company to donate hard-earned money than using the same money to pay in-house staff to contribute to core, so just a few see ROI on investing in Drupal core.

Perhaps the key is to relay on enterprises need to earn customers loyalty and to look socially responsible, those are assets that fit into the non-profit side of things, so the Drupal Association would put more effort on acknowledging contributions and report how money is actually making Drupal core better (aligned to donors expectations), that way we get enterprises happy to keep contributing.

July 30, 2016
Rakesh James (not verified):

Thanks Dries for opening your heart.
Its touches me, IMHO, please include the same on your coming keynotes.

When DrupalCon NOLA[Community Summit], i suggested one new IRC channel for the first time contributors, What i understand, most of the developers has the starting troubles. The new IRC channel will solve that problem. I feel this also important. Yes i am agreeing about the article about more Organization specific. As a Drupal Evangelist, I feel, DA has to put more effort on Evangelizing or educating Companies[From larger scale to small scale] to give back to community. I know lot of small and larger scale companies are in India are using Drupal. Most of them are yet to give back. i would like to help DA to talk them. I think its important to do it.

July 30, 2016
Ankur Singh (not verified):

Dries, As per my observation your intention behind that tweet was not wrong. But as you know that many peoples can take this in a general way or in other sense. But as per your roles and responsibility towards Drupal i can understand that you are facing challenges on daily basis so as per my thinking you were right at that time.

July 30, 2016
Matt (not verified):

Drupal wasn't built into the success it became by full-time corporate-sponsored developers, but that is what it now requires given the massive increase complexity introduced by Drupal 8. Drupal used to be built by individual freelancers and small shops like mine, who could make gradual improvement with relatively small effort while building projects for clients. Now such efforts are blocked by the bureaucracy of the issue queue and the massive increase of the size of the core codebase that makes it impossible for part-time contributors to meaningfully participate. If you want a diversity of contributors, you have to architext your software and your community to support it. If you want your contributors to only come from large companies that can afford to put developers on core work full time, well, that seems to be what Drupal 8 is designed for. But I don't see how you can have it both ways.

July 31, 2016
Gábor Hojtsy (not verified):

Well, we have it both ways currently. If you look at top core contributors at http://drupalcores.com/ several of the top contributors are either freelancers and decide themselves to contribute or not paid to work on core (at all or as much as they do) at their respective companies.

August 06, 2016
Matthias (not verified):

I agree. The question is how to "sustain" contribution. Drupal is pretty good at onboarding new contributors: code sprints, mentoring, drupalcamps, etc. It's easy to dip your toe in the water. You'll be guided to take on an easy issue, learn how to roll a patch and submit. However, the likelihood of your changes making it into core aren't that big. Smaller patches and issues easily get stale. As a result, from the pool of "casual" contributors, only few keep on contributing.

"Complexity" and "bureaucracy" are a result of a community which operates at different speeds. Paid pro contributors move at a relentless pace as they manage the overarching architecture of subsystems. The gap between pro and casual contributors has been widening. It has increasingly become difficult for the latter to keep up with the former.

I think there's a risk of a feedback loop being established which drives casual contributors to the fringe of meaningful core development. It goes a bit like this:

- Paid contributors enter core development.
- They bring focus, effort, time, knowledge and experience.
- The pace at which issues move through the queue increases.
- But complexity of the codebase and technical discussions increases too.
- Casual contributors drop out because they can't keep up.
- Extra paid contributors are needed to keep the pace and deal with the workload.
- Go back to step 1.

This feedback loop is a function of Parkinson's Law (not the one about triviality!) which states that workload expands to fill available time. We sure see this in core development.

Dries correct in expecting companies to make an effort and contribute to core. Especially those that make significant profits. Of course, Drupal has undeniably moved from being a hobbyist CMS to a serious enterprise contender. Such a move comes at a cost in terms of the crowd the product attracts. It's only logical that enterprises keep getting drawn to Drupal at this point.

However, the feedback loop increasingly closes the door for small and mid-sized organisations to make any meaningful contributions. Suppose larger companies keep entering the arena and sponsor dedicated core developer teams, how can individual contributors still hope to contribute anything meaningful? When SME's give their teams 2 "hack-friday-afternoons" a month, what can both core and those companies still expect to gain in terms of added value?

After all, SME's still make out the long tail of the community. And their employees who are actively contributing, do so in their spare time: late nights and long weekends. We should be wary of core development becoming an all too exclusive domain for paid pro's.

August 06, 2016
Gábor Hojtsy (not verified):

Matthias: starting from the fact that there always needs to be a patch and a reviewer before a code change is to be accepted in core, it is logical that one would need others to work with to get something accepted. Finding those others ahead of time helps work on things that are shared interests for you and the group, so it gets attention from others. Drupal would not exist if it would not be a shared interest, so there is usually a way to find such people, but it does take extra effort on top of working on an issue solution itself.

The best way IMHO to go about finding such people is to figure out how your work matches with initiatives going on in core. These have groups of people looking for contributors and are eager to help people move issues forward. Eg. the UX team is willing to review the smallest issues to improve Drupal's UX and by bringing it to the meetings, you bring attention to your work and your contribution. This may lead to the issue getting accepted as well as learning a lot more through the process. The Drupal 8 core calendar with events and information to join for each is at https://calendar.google.com/calendar/embed?src=happypunch.com_eq0e09s0k… -- each team can be joined remotely and many have varying meeting times to accommodate different time zones.

August 08, 2016
Mike Gifford (not verified):

Dries, thanks for the tweet & this blog post. I am ending my presentations with a "Free as in Kittens" slide these days because people need to be reminded that free software will only be there when you need it if you and others nurture it.

People need to give back to the community that builds this software. There are many ways to do this. Core is certainly an important one, but there is so much important work that needs to be done in this community. Popular Contrib modules really haven't been properly maintained in Drupal 7's life cycle. Work on Drupal.org is critical to bringing more people on-board and is very difficult, time-consuming work. I don't know that the focus on Core is healthy as it is just one piece of the puzzle.

The biggest thing that I can think of to encourage companies to contribute to Core (and Drupal in general) is to find more ways to highlight and support those companies that do. Featuring companies who contribute on Drupal.org would be a great start. The changes in the Marketplace are a useful step in this regard. Blogging about companies who model the behavior you would like to see would be great.

I also think that if Acquia's partner program favored companies that contributed back to the community we would also see a big shift in behavior. At a minimum though, setting a bar for all Acquia partners to contribute to Drupal would really get people's attention and start to shift behaviors.

August 04, 2016
Ahmed (not verified):

I contributed two issues to Drupal 7 core, one with an attached patch. They have been sitting still with almost no response (just 2 comments on the one with a patch) for nearly 1 year now.

Needless to say, I'm not using any of my development time again to work on core, and definately not assigning any company development time to it.

Before asking for more contributions, fix your contribution processes. Then ask for more of them.

August 05, 2016
Jeroen Bobbeldijk (not verified):

I agree. I have been involved in a few core issues too, and when it takes 5 years (I was involved for ~2 years) for a patch on a serious issue to land, I'm kinda scared to work on any other core issue as it's just demotivating when issues like that take so long to land.

I'm not sure why issues take so long, but I think it is because people don't want to take the chance of doing something wrong so they just wait until enough people agree. It's also because everyone has something to say and a patch is never good enough. I know that's how the community works, but it slows everything down a lot.

August 06, 2016
Matt (not verified):

Yes, this exactly.

A possible explanation and proposed policy correction: The community doesn't have enough faith in the test suite. If one other person thinks it's a good idea, and it doesn't break the tests, merge it. Initiative leaders can spend their time reviewing merges, reverting those that are problematic, and writing or recruiting people to write feature/acceptence tests to prevent future casual patches from deviating from the requirement that was previously unwritten.

August 10, 2016
Martin Edenström (not verified):

Pantheon? This isn't really a head to head competitor to Acquia. Have you looked into Pantheon.io's Drupal vs. WordPress client ratio? And they claim to have a total of 100 employees according to Wikipedia? An hosting firm often consist of 70-80% sales people. So you're asking a handful of developers at an hosting firm to do more for the 8 core? Maybe you should try to reach the development competency though Pantheons initiative Pantheon.io/agency instead?

August 09, 2016