The Contribute module left a bitter taste in some people's mouths, and some people comments were a little a bitter.
Figuring out how to improve the sustainability of Drupal needs to be an ongoing discussion with a gradually evolving approach. It is important that Drupal and every Open Source project has an ongoing discussion about sustainability where everyone can share their views and experiment with new ideas and approaches.
The Contribute module is an experiment that ignited a discussion. It is important to recognize what works and what doesn’t, acknowledge and learn from mistakes, and continue to have this discussion. Sure, there will be varying opinions and results, but the discussion must always be permitted to happen.
My first mistake: The Contribute module is definitely not a technical dependency
The Webform module doesn't depend on the Contribute module to function properly. Honestly, I did not expect that adding this dependency would be so disruptive. This was my first mistake... adding any new dependency is disruptive especially if someone is managing a large multisite installation.
Conceptually, the Contribute module's message is for the broader Drupal community. This message is originating from my work on the Webform module, therefore it should have stayed in the Webform module. In time, I hope this message gradually works its way through the Drupal core issue queue and reaches the entire Drupal community.
My second mistake: Not fully thinking through my approach
How people interact and communicate in online communities is interesting (to say the least). The truth is people say and act in ways that they would never do in person. I am a born and raised New Yorker, which requires a thick skin to defend yourself, yet at the same time you need empathy to get along with so many different groups of people.
My first mistake was adding the dependency; my second mistake was including people's Drupal.org user profile pictures without explicit permission. Once this was brought to my attention, I immediately removed this feature and apologized.
My approach to highlighting core contributors was copied directly from WordPress. I would guess that WordPress gradually evolved this concept and implicitly got permission as they added contributor profiles. There is a lot that the Drupal community can learn from the Wordpress community. We should look outside the Drupal community to see how other communities are working to solve the challenge of sustainability.
People are going to make mistakes along the way
During this journey, there was a comment about being 'horrified' to have it implied that someone would support the Drupal Association (and the Contribute module). I am not active in the Drupal Association, but I can't watch people continually criticize the Drupal Association. The Drupal Association is a team of people whose sole purpose is to support and grow the Drupal community. They are going to make mistakes along the way. At the same time, everyone in the Drupal Association is approachable and genuinely cares about Drupal. Every month at the NYC Drupal meetup, I share a 'Drupal' beer (or two) with Neil Drumm ( drumm). It seems very extreme to be 'horrified' to support an organization that someone as awesome as Neil is working for; which is ultimately us… the Drupal community.
I think the biggest challenge for the Drupal community and the Drupal Association is evolving Drupal's governance and sustainability.
Who, what, where, and when should we be talking about governance, sustainability, and community
Governance and sustainability are critical to a healthy community. How a community works and supports itself needs to be open, transparent, and welcoming to people outside the community.
Yes, I think this conversation begins in the software. The message within Drupal should be concise and direct. A secondary but fantastic benefit to starting this conversation in the software is that Drupal's user interface would then allow us to translate this message into every language in the world.
Some people argue that they should be responsible for having this conversation with their clients and not the software. This is the current approach in our community; where Agency A pitches Drupal to Company B and Agency A is responsible for Company B's engagement in the community. In many cases, Company B's participation stops at Agency A, and Company B has limited or minimal involvement with the Drupal community, even though in many instances Company B will use Drupal longer than it works with Agency A.
My third mistake: Not talking about supporting the Drupal community with my client
Personally, I did limit Memorial Sloan Kettering Cancer Center's (MSKCC) initial involvement with the Drupal community. I was new to the concept of Open Source and Drupal; I said to MSKCC, "Hey look at this amazing 'free' software, you should use it". It took me six years to finally ask them to them to create an organization profile on Drupal.org and another two years to ask them to become an organization member of the Drupal Association. Not immediately understanding and explaining the importance of being a member of the Drupal community when I introduced MSKCC to Drupal is my third mistake.
We need to collectively start asking our clients to be contributing members of the community.
As an experiment, I went through a bunch of the top Drupal agency's client list and case studies, and a large majority of agency clients that are using Drupal are not organization members of the community or the Drupal Association. Some companies are not ready to contribute code to Open Source, but every company has some fundamental appreciation for Open Source because they are relying on it for their website. But a basic understanding of its value vs. participating and in a sense, owning its growth - i.e. contributing - are two potentially vastly different matters. Most companies would have no problem creating an organization profile on Drupal.org which would also help them recruit Drupal developers. The problem is that as a community we are not asking our clients to be active contributing members of the community.
Everyone should encourage their clients to be a member of the Drupal Association because it strengthens the community and gradually makes it possible for these companies contribute something back to Drupal. At the very least we can have all the Fortune 500 companies that use Drupal listed on Drupal.org with a Drupal Association membership badge that says they support Drupal.
Who should be contributing to Drupal?
The answer is everyone. One person reasonably commented that 90% of the people using Drupal would never contribute anything back. Right now, I think this is completely true. It seems absurd that only 10% of our virtual community is contributing code or are members of the Drupal Association. I can't imagine a physical community surviving with only 10% participation. If, as a community, we can get another 10% involved, it would significantly change Drupal’s trajectory and velocity. And that’s only an additional 10%.
If we want to grow our community, we need to examine it.
Is Drupal written by developers for developers?
Drupal is a developer-centric application. This is our biggest strength and weakness. Drupal has so many passionate eyeballs looking at the code and our security team is top notch. At the same time, developers can lose sight of the end users/clients.
The developer-centric mentality around Drupal drove most of the criticism around the Contribute module not being a technical dependency. Someone went as far as stating that the Webform module should also not congratulate and offer people help when getting started using the Webform module. I disagree - making sure that a new user has a positive experience and feel that they are part of a community where everyone is here to help and contribute is essential to the growth and sustainability of Open Source and Drupal. This most basic approach can’t possibly be viewed as negative - think of when you enter a store and someone says, ‘Hi, welcome to (fill in the blank). Can I help you find anything today?’ or when you enroll in college and you’re in the admissions office - someone says, we’re so glad you chose our university, let’s get you started - what are you thinking about majoring in?’ It’s a fundamental way to bring people in and let them know their presence, needs and input (and output) are a desirable thing.
Drupal is for everyone
We need to say 'Hi' and always welcome new users. I welcome new users to the Drupal community every week in the Webform module’s issue queue. Saying 'Hi' to someone for the first time is hard, and we are as a community need to discuss how we should be doing this. Every welcome contains a new potential opportunity to see growth.
Having a discussion without controversy
I believe the Contribute module's message, "The question is not should you contribute, but how can you contribute" should be part of core but it will take a major discussion, followed by a lot of work with some time and bits of patience to make it happen.
For me, the most immediate place to communicate with people using the Webform module is within the actual software.
The Webform module currently includes an optional 'About' section. I have decided the Contribute module’s message is more important than promoting the Webform module or myself. The Contribute module dependency has been removed and its message moved into the Webform module. Developers can easily disable the Contribute section via the UI (/admin/structure/webform/config/advanced). The Contribute section of the Webform module will give us an opportunity to evolve this message, get feedback, and continue to discuss this message in the Webform module's and Drupal core's issue queue.
For the individual responsible for the 200 multi-site installation, I am genuinely sorry that the Contribute module was more than a brief or straightforward discussion.
The ongoing discussion about sustainability is not a simple one, and I look forward to talking about this with everyone at DrupalCon Nashville.