I recently had the pleasure of presenting my session 'How Drupal Contribution leads to Success' at Drupal South Canberra 2018.
Drupal adoption is still growing, but can the contributors keep pace? In this session I looked at how organisations can really benefit from contributing to Drupal.
DrupalSouth was a huge success this year, and the Australia & New Zealand community is growing from strength to strength. With such a strong community, it was no wonder we reached capacity for the sprint day on Wednesday.
Drupal 8 may have lost some of its market share amongst the smaller sites globally, but it continues to grow in government, higher education, and increasingly the enterprise space.
The Australian government continues to back Drupal with the recent update of GovCMS, its procurement model, hosting platform and distribution. This has encouraged a large number of government agencies to adopt Drupal and deploy to the platform. At the time of publication, there were:
- 242 live sites
- 37 sites in development; and
- 82 agencies using GovCMS
However, we're still seeing a small number (<10) of these as registered organisations on Drupal.org.
“We’re watching the d.o issues on that closely…”
There is a tendency for these organisations to be consumers, rather than producers.
“For an ecosystem that provides gainful employment to so many, so much work falls to so few…”
The bottom line is: there is a need for more contributors. Perhaps the issues is that many organisations don't understand the benefits of contribution?
The Hidden Benefit of Contribution
There is some interesting research done by Frank Nagle at Harvard Business School on The Hidden Benefit of Giving Back to Open Source Software. In his research, he found that those organisations which contribute gain more knowledge of and productivity in the open source software they use every day.
"Companies that contribute and give back learn how to better use the open source software in their own environment.” - Frank Nagle
This is despite the fact they are contributing code that other competitors can also directly benefit from.
The alternative to contribution is maintaining your own custom code, which despite potential early benefits in speed of development, carry a burden of long term maintenance. Consider the following which needs to be managed with limited team capacity:
- Test coverage
- Ongoing support
- Code Quality
- Security Audits
- Best practices
- API Updates & Deprecations
Also consider the quality of code that is required to be added to Drupal core. Contributions must:
- Follow coding standards
- Be accessible
- Be secure
- Be performant
- Be well tested
- Be peer reviewed
“The real power of open source is co-creation” - Dries Buytaert
Quite simply, as a community, we make better software.
Push it up the Stack
A good strategy is to try and avoid custom module development and consider contributing code instead.
- Could it be a core issue / patch?
- Could it be contrib module issue / patch?
- Is it possible to make it generic for a new contrib module?
How to Contribute
There are many ways to contribute, and there is a great introduction on Drupal.org on Ways to Get Involved.
One of the simplest ways is to spend time working in the Drupal.org issue queue, find an issue and then do one of the following:
- Read through the issue and update the summary
- Manually test a patch
- Review a patch
- Ask a question
- Post a patch
- Look at appropriate tags, and tag an issue
Some simple tags to get you started are:
- Needs tests
- Needs re-roll
- Needs steps to reproduce
- Needs manual testing
- Needs change record
- Quick fix
- Kill includes
If you are looking to get started with the basic workflow on Drupal.org, start with a quick fix or novice issue. The patch workflow can be a little daunting for first timers, but as of January 2019 we will have a brand-new pull request-based workflow thanks to the partnership with Gitlab! 🙌
If you are in a position to make decisions about your developers time, consider sponsoring their open source contributions.
“...when these types of assets are central to a company’s core business, the company stands to gain a competitive edge by allowing employees to contribute to them on company time.” - Frank Nagle
You can sponsor contribution in many ways:
- 20% time (as PreviousNext does)
- Sprint days
- Client-sponsored contributions (i.e. for project work that can be contributed)
We had a great turnout at the Sprint Day at DrupalSouth Canberra this year!
So there are many benefits to contribution: from individuals gaining knowledge and expertise, to organisations building stronger more productive teams, to the wider open source community as a whole.
So, what are you waiting for?
P.S. The session slides are now available.
I have created D.o organisations for a number of government clients, and there was generally no hurdle. I think the biggest factor is apathy, in government it would be lovely to see top down pressure for contributions, built into performance reviews. I suggest the next time anyone speaks to a EL1/2 in gov, say “do your developers report to you on their upstream code contributions? Or do they just create custom code no one else can support if they leave.”
Great article thank you for the post! I help organize DrupalCamp Atlanta and this year during the opening, I asked how many people here are doing presentations with their clients and nobody raised their hand. I say this because we as developers have the responsibility to just include our clients in the community work by making it part of our expectations when writing the contract. We do have the power to create change in how clients participate in the community.