Tagged the first release candidate on Christmas Day
On the one year anniversary of the first beta release of the Webform module for Drupal 8, I tagged the first release candidate. The most significant aspect of moving the Webform module into the release candidate phase is the stabilization of key APIs and plugins. Moving forward, most new features that are not tightly coupled to the Webform module's core functionality will be developed in dedicated experimental or contrib modules.
Contributing to the Webform module and Drupal
People are continually commenting on my dedication to the Webform module. As such, I think it’s important to explain why I am so committed to the success of the Webform module and Drupal. The two most important factors that have allowed me to contribute so much time to the Webform module are as follows: I have the time available and I have a desire to improve my professional profile. I’m fortunate to have steady and reliable consulting income. For many years, I was a passive member of the Drupal community. But then my schedule freed up a bit, and I found that I had some extra time on my hands, so I decided to experiment and see what would happen if I fully committed myself to an open source project.
What I learned about maintaining an open source project
The role of being an open source project maintainer is daunting. I was surprised to learn that I am doing 95% of the work with limited quality assurance processes and minimal code review. At the same time, I truly love the role of mentoring new developers and working with the Drupal community. Welcoming new members to the Drupal community is something I take a huge amount of pride in and believe it is vital to the continued success of Drupal.
Mentoring others is a role I never imagined for myself - I’m not even sure if I’m particularly good at it. And yet, mentoring is the key to a successful open source project growing beyond being freely available good code. Currently I’m working with Michael Feranda (mferanda) to complete Issue #2888862: Provide a mechanism to lock a webform submission. Sharing the experience of the work and feeling the collaborative accomplishment of contributing a new feature to Webform module is rewarding - it is now and it has been, regardless of the project. Dedicating myself in this way - giving 100% - has proved fruitful in ways I never imagined.
Still, I am the driver behind the Webform module and I am destined to burnout.
Destined to burnout
To prevent burnout, I’ve decided to focus my open source contributions solely on one project: the Webform module for Drupal 8. I admittedly avoid making contributions to Drupal core because I find the level of effort required to fix a core issue draining, especially because I am working for free. I want to emphasize that I am not advocating against contributing to Drupal core, but it’s important that open source contributors understand what works for them.
Realizing and feeling the potential for burnout made me look at some of the Drupal community’s key contributors that have "burned out". I don’t personally know Earl Miles (merlinofchaos), but like everyone in the community, I too, respect his contributions to Drupal especially his work on Views and Panels. A full-time employer sponsored Earl's Drupal work and once this sponsorship ended, he gradually slowed his contributions. Some people conjectured that he left the community but Earl explained his experience and position. For me the two most telling quotes are...
"But let's be honest: I am and always was an exception to the way things really work, and an unsustainable exception at that."
"But Drupal is what it is today because there is money to be made. And that money needs to flow back into the project, where it can, and the people who actually do the really heavy work can be rewarded."
Earl Miles (merlinofchaos)
Frankly, I respect and understand Earl's decision to step back from contributing to Drupal. At the same time, our community's inability to sustainably fund his contributions allowed one of our brightest stars to burnout.
My conclusion is that for unpaid valued contributors, including myself, burnout is inevitable. Figuring out how to fund contributions is the only solution
Drawing lines in the sand
I need to draw two lines in the sand explaining how I feel about funding open source projects and contributions.
Open Source is not free software, and everyone should contribute.
On the polar opposite of this concept that "Open source is not free software", we can’t just charge for open source code. I have a problem with even the appearance of charging for code. When money is tied to the resulting product of an open source collaboration, it creates duplicate code and project silos. Paid modules will muddle Drupal's ecosystem because projects start to compete for funds, which then discourages the collaboration of ideas, code, and support.
My most concrete example of how charging for modules/add-on creates duplicate code and effort is the simple fact that WordPress has dozens of form builders that provide the same functionality without any reusable form API, combined with the fact that each form builder has varying levels of security. Yes, I think the Drupal's much more collaborative ecosystem provides a more secure and reliable Form API, and the Webform module has more potential than most of Wordpress' form builders and we are not charging X dollars for each minor feature and add-on.
I am against charging for the final product. However, I believe more people need to start contributing time and/or money towards Drupal and open source for it to be sustainable.
Everyone needs to contribute and still have the have freedom & rights guaranteed by the GPL.
Beginning to see open source communities as co-operatives
There has been a lot of thought about funding and growing open source communities. Dries Buytaert, Drupal's project lead, dedicated his DrupalCon Amsterdam keynote to the topic. Nadia Eghbal maintains what most consider the canonical and handy guide to financial support for open source. I also recommend checking out Nadia's podcast which explores different perspectives in open source sustainability called Request for Commit. I am still reading and learning about open source. The term "open source" is a direct result of the software community trying to move away from the connotation that the GPL creates "free software". The fact that open source still results in the creation of "free software" has created the major challenge of sustainability. At the same time, no one could have foreseen how strong and viable open source communities would become. No one saw the changes that would come about and now we, too, need to change our thought process regarding what it means, its value, and how/where we want to go.
I’ve started to view the collaboration and community that builds open source software as a loosely, and somewhat undefined, cooperative.
A cooperative (also known as co-operative, co-op, or coop) is "an autonomous association of persons united voluntarily to meet their common economic, social, and cultural needs and aspirations through a jointly-owned and democratically-controlled enterprise".
I find it interesting that no one is drawing any strong correlation and discussion between open source and cooperatives. The most intriguing thing I want to point out about cooperatives is that they are generally considered sustainable. My best example of a successful cooperative is the Park Slope Food Coop which is largest food coop in the United State and they were founded in 1973.
"Only members may shop at the PSFC, and membership is open to all."
"As a member of the Coop you share ownership of the Coop with 17,000+ fellow Coop members. You have a voice in the decision-making process and can participate in planning and discussions of the organization’s future. Work, shop, learn, participate—be a part of a unique and rewarding community here in Brooklyn."
The Drupal community does not operate exactly like a food coop but maybe the simple concept that everyone participates would benefit our community. Every project maintainer and core contributor talks about how people should contribute. I feel it is to time to explore strongly conveying the message that people need to participate and contribute. Contributions can come in all shapes and sizes and clearly companies need to fund and sponsor open source contributions.
Commitment, Mentoring, Contributions, Community & Success!
I am committed to the Webform module and look forward to growing and mentoring new contributors… I don’t want to burnout - I want to stick around. I enjoy being part of this community and collaboration and have benefited from doing so. The work, the commitment, the relationships, the growth - it’s all been amazing! I consider myself both proud and lucky to be here. Open source and Drupal is not going fail but I want to continue to be part of its ongoing success. We need to find other ways to strengthen and frankly sustain our community with contributions and funding.
I am going to start to encourage people and organizations to contribute by simply stating...
The question is not should you contribute to open source but how can you contribute.
Finally, we should explore lessons that we can learn from cooperatives. At least we already know that everyone is welcome to our community.