Recently I read Why is Drupal now the second most-hated platform behind SharePoint? followed by the predictable Reddit discussion trashing Drupal. Every time I read someone's negative, yet reasonable, criticism of Drupal, I can't help but rephrase Winston Churchill's famous quote about democracy in the context of Drupal and Open Source.
Many forms of Content Management Systems have been tried, and will be tried in this world of sin and woe. No one pretends that Drupal is perfect or all-wise. Indeed it has been said that Drupal is the worst Content Management System except for all those other solutions that have been tried from time to time…
Churchill's defense of democracy came at a time when the notion of democracy was under a direct threat. Drupal and Open Source are not imperil in the same way, but the lesson Drupal and Open Source can learn from history is that it is essential to recognize, respond, and adapt to potential threats. Ignoring problems is the worst thing anyone can do.
Introspection and discussion is a significant part of our process to improve and affect change within Drupal. I am looking forward to Owen Lansbury's DrupalCon Nashville presentation called Have We Reached Peak Drupal?. I have seen a preview of his presentation and it puts Drupal’s current state into perspective while also looking at its future. If you want to learn more about the discussion around "peak drupal" you should also check out Dave Hall's blog post, "Drupal, We Need To Talk."
While building and maintaining the Webform module for Drupal 8, I have thought a lot about the future of Drupal and the Webform module.
How do we increase Drupal's adoption?
I no longer feel adoption is a Drupal 8 specific issue but rather it’s a general recognition that the CMS market is shifting and Drupal is adapting to it.
Drupal is no longer for blogs. I myself moved my website from Drupal to a SAAS based page builder solution, called Strikingly. Drupal is for more ambitious digital experiences and for every small Drupal 7 website that moves away from Drupal, we hopefully gain a more substantial and ambitious Drupal 8 website. Still, in this day and age, the fact that Drupal's usage statistics have been relatively flat for the past few years is troubling. Content Management Systems is a competitive market, and if a CMS's stats are not growing, it is essentially viewed as dying.
I don't feel Drupal is dying but I do know it needs attention. And considering how much passion and energy I have put into the Webform module for Drupal 8, I feel adequately informed to say that I do see some writing on the wall, and it says that...
Drupal needs to significantly up its game and adapt.
Yes, I have experimented with promotions and encouraging people to contribute back to Drupal within the Webform module. Before I started any of these experiments, I put a lot of energy into upping the Webform module's game by making sure that Drupal's Webform module competes directly with the other big proprietary and Open Source form builders. The Webform module strives to provide an out-of-the-box experience that is welcoming and demonstrates the real power behind the Webform module which are Drupal's API's and community. For example, including a list of community provided Webform add-ons helps people know there is a community contributing code and ideas. Webform might be the only module that includes help videos within the user experience. To me, the most important aspect of these videos is that I am able to put a voice and person behind the code which assures someone that there is a maintainer and a community that support this project.
Drupal needs to start showing the people behind to code.
Yes, Drupal is targeting enterprise website and organizations, but people are writing the code. Every person and organization contributing to a project should have their profile picture displayed on the project page. Right now, all I can do is beg that we figure out how to support videos on a project page so that our code can finally have a voice. The best example of why video is important is sitting on Drupal.org homepage and you can watch it below.
When it comes to Open Source Content Management Systems and form builders, WordPress is our most direct open source competitor, and we should look at the WordPress community to see what approaches work and what approaches don’t.
WordPress' growth is huge
WordPress' usage stats have skyrocketed and WordPress now powers 30% of websites. I feel that it's possible to boil down the success of most Open Source software to three things, people, code, and money. Simply put, successful Open Source projects are built by a community of people who write good code while having the resources to maintain and improve the project. "Resources" is a nice way of saying "money" which translates into people being able to make a living while contributing to a project. Money should not be considered a dirty word in our community. Just as the "Free Software" had to rebranded as "Open Source Software," we have settled on using the word "sustainability" instead of "money." We have to be realistic - people, code and money are all important elements and they all benefit and depend on each other to function best. Without any one of those elements, the other two suffer - each one is dependent and essential to the other.
WordPress has proven that they have a sustainable ecosystem because people are allowed to charge for plugin support. Before I go any further, I must emphasize that I am against charging for Drupal modules, yet I am open to any other approach to making Drupal more sustainable.
So WordPress has money and community, but frankly, some of their code is getting a little stale and needs to be reworked. This similar problem led to the Drupal community's major rearchitecting of Drupal's underlying codebase and the release of Drupal 8. WordPress currently has a considerable amount of technical debt, but they have to community and resources available to fix it.
Good code requires developers with resources
The most immediate example of the WordPress community fixing and significantly improving their product is the soon to be released Gutenberg page builder, which I was able to test drive in three clicks. The experience was nothing short of amazing. WordPress' Gutenberg page building experience is nothing new but every major plugin installed on my test site was immediately integrated into the user experience; adding a form to a page was two clicks. Gutenberg has the potential to dominate online page builders. At DrupalCon I look forward to learning more about what's possible with WordPress 5.0. I am willing to bet that form builders and fieldable entities are next.
WordPress has several powerful form builder plugins available, and few of them are earning serious revenue. I have spent some time looking under the hood at WordPress' form builders, and each implements its own Form API and data storage API. WordPress does not have anything like a Field API or Views, which is the backbone of Drupal's ambitious digital experiences. It seems fairly obvious that if a few WordPress form builder plugins combined their duplicate efforts, they would be able to create something similar to and as powerful as Drupal's Field API and Views. They have the people and money to do it - they just need to write code.
Drupal is no longer intended to be scaled down for small blog sites, but WordPress has the momentum to scale up to larger enterprise sites.
Drupal is already ambitious
Drupal is the market leader when it comes to building digital experiences for large websites. Every single Drupal core strategic initiative which includes API-first, Media, and Workflow are working to make Drupal even more ambitious. The only thing that is slowing these initiatives is resources (aka money, which should not have a negative connotation).
I met with several of the coordinators behind these initiatives. Across the board, they identified the need for faster feedback from Core Committers, citing that a lack of Committer time was often a barrier to the initiative's progress.
Drupal has a huge community of developers striving to make it better. Most people are contributing in their spare time or as a secondary task to their job (which pays them money). Most people value and understand the need to contribute to Open Source, but the bottom line is that there is a finite amount of energy that can be committed when you can't be paid to do it. And yes, Open Source has to still contend with the mindset "why pay for something that you can get for free." Changing this mindset is a much broader and challenging discussion.
My experience with clients that value Open Source is that they have no problem paying for tangible features and improvements to Drupal. The challenge that I have seen is hiring and paying someone to contribute back Open Source can be awkward...
Paying Open Source developers is an awkward transaction
Frankly, I’m at a loss when someone is trying to pay for feature enhancement to the Webform module. From my perspective, as a module maintainer, it’s hard to assess the potential client's seriousness. Here are some of the questions I find myself asking:
How much do I charge?
Are they assuming that my hourly rate is less because I like working on Open Source projects?
Are they okay paying for automated tests?
What does the agreement look like?
How do I phrase all work completed will be considered Open Source?
Keep in mind hiring anyone is a little awkward, not to mention time-consuming, and this why freelancer sites like Upwork are trying to make this a little more comfortable. One very personal issue I have with sites like Upwork and BountySource is that these sites have a process that can create bidding wars which can become a race to the bottom vs. the merits and value of the provided services.
The gold standard for dealing with awkward transactions has to be Airbnb because they figured out how to make people comfortable sleeping on other people's couches. Before Airbnb, my experience staying at bed and breakfasts was a disaster - one particularly nightmarish stay resulted in me having an asthma attack because the proprietor forgot to mention that they have cats.
The most immediate lessons we can learn from Airbnb are:
A middle man can make an awkward transaction more comfortable for both parties.
Presentation is key - Airbnb did not start taking off until they helped improve the overall photography of their listings.
Rating and comments can make both parties more comfortable and remind people that they need to be kind to each other.
If you are curious to learn more about the not-so-secret sauce of Airbnb, you should check out the How I Built This podcast with Airbnb: Joe Gebbia.
Improving the sustainability and figuring how to handle awkward transactions is going to take a lot of experimentation. The most immediate thing we do need to do is accept that these discussions are going to be uncomfortable. And when we accept that about both ourselves and the other parties, when we realize that we’re all fallible, we can shift a bit at a time, learning as we grow and always trying to keep our eye on the prize - we’re trying to make something great even better. When we lay the groundwork as a safe place where the overarching goal is attempting success, over time discomfort wanes and growth can take its rightful place - the front seat.
We need to step outside our comfort zone
The general reaction I saw from my brief attempt to make the Contribute module a dependency of the Webform module made me realize that people are uncomfortable with change and yes, the dependency became awkward. The concept of finding one's comfort zone with Open Source is a tricky challenge. The Open Source community is vast, and every project or even the code base requires a different approach; every single issue queue is a different experience.
The moment we can acknowledge that something is uncomfortable we can get past it.
I am going to keep making myself uncomfortable
My approach is just to keep pushing myself into more situations that make me uncomfortable and to just work through them. Because the only way to get through something is to go through it, to experience it - not avoid it, not go around it but to go through it. In the last year, I have found my groove for speaking at Drupal events, and I do my best to attend any Drupal camp and meetup in my area. It didn’t start out that way, but over time and through actual experiencing, I’ve become more comfortable and confident. I am invested in the Webform module because forms are the gateway to user interaction and engagement on a website. I built the Webform module to compete with enterprise form builders while providing the flexibility and openness for Drupal.
If I genuinely want the Webform module to compete outside the Drupal ecosystem, I have to start reaching outside Drupal and maybe even the Open Source community, and begin to use the Webform module as a way to introduce people to the Drupal community and Open Source.
Growth and diversity in the Drupal Community and Open Source is not going to happen in the code; it requires outreach.
If we want to see Drupal grow in the enterprise market, we have to seek out new opportunities and clients. There is no question that Drupal is being used by organizations to build ambitious digital experience. There are always more untapped opportunities out there.
A few weeks ago, the team at Nextide (www.nextide.ca) gave me a demo of their workflow engine/solution module called Maestro which leveraged the Webform module. There is a core initiative for improving Drupal's content moderation and workflow which is going to make it easier for content authors, reviewers, and publishers to manage content - Maestro's workflow engine/solution is for managing complex business processes. It was hard for me to fully understand these differences until Nextide walked me through their "Insurance Quote Request" demo site. A webform is being used to collect insurance quote requests, which triggers the complex business workflow of connecting with underwriters and allowing applicants to select an insurance quote. Besides just seeing another example of an excellent module available for Drupal 8, their demo showed me how Drupal with Webform and Maestro could tap into an entirely new market/sector… insurance rate quotes.
Drupal, the Webform module, and our community are building tools that can solve challenging problems, and we just need to get out there a demonstrate to people its potential. My post-DrupalCon resolution is to try to speak and present outside the regular Drupal camp/event circuit and see what happens when I use the Webform module to introduce new organizations to the potential of Drupal and Open Source.
For Open Source developers, we are in a fantastic time because everyone who has a general understanding of technology can appreciate Open Source.
Open Source equals opportunity; with a responsibility to share it and inspire others.
Reaching outside our community to increase diversity
If we want to improve Drupal's adoption, we need to start talking to new markets and sectors. At the same time, if we're going to grow our community we need to start talking and including new people. We need to create an environment that fosters and encourages speculation, ideas as well as mistakes and wrong answers. If we don’t have a place where that can happen, we can’t uncover the solutions and the right answers.
Palantir’s recent blog post Making Inclusion Happen Through Mentoring is completely inspiring because they are trying to solve one of the biggest challenges in the tech industry.
Palantir's Inclusion Initiative is an effort to make the Drupal community more diverse and inclusive by mentoring students and introducing them to everything Drupal has to offer.
If I am going to advocate for more people to contribute, for contributors to have a voice within Drupal the software, and pushing for us to starting targeting other markets, inclusion and appreciation of the need for diversity, than that is something that I need to think about and include as part of this process.
Conclusion
This blog post started out with a recognition for what we have and my sincere desire that we keep pushing ourselves to improve it. I am going to keep experimenting and trying new approaches. It’s what I do - I don’t know any other way. While writing this blog post, I have discovered what the first slide for my Webform presentation is going to be for people who are new to Drupal and Open Source.
Open source is not just about writing and using free code; it is about the right to share and change code. And change has a reputation for bringing about some amazing things.
Case in point: You. Here. Now.