A little while back, almost two years ago, Dries Buytaert wrote an interesting thought piece on the sustainability of open source projects such as Drupal. He reviewed the ways different actors engage with open source projects, dividing them into two camps, the Makers and the Takers. The makers build and create, providing benefit to the wider community and society. The takers are able to benefit from this creative process whilst not suffering any of the costs of the creative process, allowing them to gain a competitive advantage.
The difference between Makers and Takers is not always 100% clear, but as a rule of thumb, Makers directly invest in growing both their business and the Open Source project. Takers are solely focused on growing their business and let others take care of the Open Source project they rely on.
In order to demonstrate the difference in outcomes for makers and takers, a payoff matrix was provided. It shows that if everyone contributes there are shared advantages, however, if "takers" decide not to contribute, they will win out as they do not bare the costs of contributing to the project.
Company A contributes | Company A doesn't contribute | |
---|---|---|
Company B contributes |
A makes $50 |
A makes $60 B makes $20 |
Company B doesn't contribute | A makes $20 B makes $60 |
A makes $10 B makes $10 |
At the time the article did have an impact on me as it was an attempt by Dries to bring outside concepts to help understand the Drupal project and where it might be heading. Thinking such as this leads to informed ways of conceiving a future for projects such as Drupal and how they might shape themselves to thrive.
The article examined concepts such as the Prisoners’ dilemma, public goods, common goods, free riders, the tragedy of the commons. Following on from conclusions by Hardin and Olson, the core problem for Dries was that “groups don't act on their shared interests”. How can a group organise to avoid the 'free rider' problem? Dries focused on a conclusion from Ostrom who writes “For any appropriator to have a minimal interest in coordinating patterns of appropriation and provision, some set of appropriators must be able to exclude others from access and appropriation rights.” The conclusion was that “Takers will be Takers until they have an incentive to become Makers.” These ideas have driven some changes being implemented at the Drupal Association, such as contribution credits and organisation accreditation and membership.
These thoughts have also been influential at Morpht, the Drupal agency where I work. We have adopted a set of foundation principles for the company. One of the key concepts is that we are Makers and Creators and value contributing to the Drupal project and the community. In practice, we have built internal systems to incentivise and reward everyone in the company to contribute back where they can. Outcomes of the process include a rise in commits to the project and a more open approach to how we share our code. We are also financial contributors to the project, supporting the Drupal Association as a supporting partner.
Green bearded altruism
Recently an intriguing video popped up in my stream “Simulating Green Beard Altruism” by Justin Helps. It is expertly researched, explained and visualized. It really is worth watching, so go on, I’ll give you a few minutes to take a look.
For the uninitiated, myself included, Richard Dawkins coined green bearded altruism in his book The Selfish Gene. It represents a way for one actor to signal to another that they are altruistic. If altruists can recognise other altruists, they are able to direct their altruism at them and increase their chances of survival.
"I have a green beard and I will be altruistic to anyone else with green beard".
Richard Dawkins, The Selfish Gene
The video took this concept and ran some simulations on how Altruists and Cowards fare under different conditions and rules. This setup relates closely to Dries' post around the sustainability of open source ecosystems.
The Makers (Altruists) build the system and positively benefit the whole. The Takers (Cowards) benefit more because they do not suffer the costs of maintaining the system. In this scenario, the Takers (Cowards) win out and thrive.
But what happens when the Makers (Altruists) only share the benefit with other Makers? They succeed and the Takers (Cowards) are less successful. The simulation, as set up, provides a possible way forward for open source projects such as Dupal. If you are a good actor and only reward other good actors, positive results will flow and will continue to flow.
The final simulation in video throws in the curveball of actors being dishonest. Sometimes a Coward will pretend to be an Altruist, tricking them into helping them. What do we find?
- Altruists who do not signal their altruism tend to die out in a system where Altruists are rewarded. They are labelled as Suckers - doing useful things but not being recognised to their detriment.
- Cowards who masquerade as Altruists are successful, reaping the benefits and suffering none of the costs.
And most concerningly, in a world where actors can hide their true identity, even the Cowards, acting as Cowards, have success. The Altruists in their various forms cannot compete. This final outcome is depressing. What is the point of being altruistic in a world where others can just take advantage? Being altruistic is not enough if actors are gaming the system against you.
In a wider context what could we learn from these simulations? If an individual or organisation is indeed a Maker, they should signal this to others and be rewarded or recognised. This runs against the desire to be modest, but it does appear to be a sensible thing to do. Conversely, those gaming the system should be called out and somehow excluded.
A 2021 update
Dries has recently returned to the Maker and Takers concept in the Q&A following the Dries note at DrupalCon Global 2021. The video is yet to be released to the public but will be added here once available. Those of you with access to the video on Vimeo can take a look at 7:12 - 9:06. Dries says:
"Open source is a public good, meaning that everyone can use it. If I use a public good it doesn’t exclude you from using it either… One interesting thing is that leads which are essential to business are not a public good. It is actually a common good, meaning that there is a scarcity to it. If I win a deal, you can’t win that deal. So one of the things that we can do is make sure that the leads, the potential customers, … go to those who contribute.
There is something there that I really believe strongly. If we can route leads to organisations that contribute we will maximise the number of contributions Drupal will get and I believe that these organisations are often better serviced too because they get help from those organisations that actually help build Drupal. Its kind of a win win.
Sometimes I feel that we are afraid to talk about these topics because they may be somewhat controversial, but there is so much more that we can do."
These comments take the thinking to the next step. There is a recognition that if payoff for altruistic behaviour is financial, this will lead to further contributions. The way to achieve this is through the “routing of leads”.
Applying it all to Drupal
The main takeaways from the above appear to be:
- We should be encouraging altruistic behaviour because it benefits the project.
- Altruists can still benefit if they receive the benefit from other altruists.
- Real financial benefits need to flow to the altruists if they are to be motivated.
So what is happening in the Drupal space?
The Marketplace
In recent times the Drupal project has reorganized itself to encourage more good actors. This has largely been done through the mechanism of recording contributions and promoting those who have contributed the most. Drupal agencies have been encouraged to support staff in contributing. The results are reflected in the Drupal Marketplace. The system gamifies contributions, motivating Drupal service providers to contribute more to move up the leaderboard.
It appears that following aspects have been valued:
- Commit credits to core, contrib and other issues.
- Publishing of case studies.
- Financial support of the Drupal Association.
There are ongoing efforts to broaden this out and to further incentivise contributions from individuals and organisations.
Increase the exposure
The marketplace system does represent a huge step forward in demonstrating the contributions made by the various providers. It is like an X-ray into who is doing what in the community. It does suffer from a number of shortcomings:
- What exposure does the marketplace have to potential clients?
- When a client is looking to engage a Drupal agency, are they referring to the marketplace? If they are not, then the real financial benefits may not flow to the agencies. Then, the system is just a game between the players. It benefits Drupal for sure, but does it benefit the players?
In order to be effective, the marketplace needs more exposure to end clients so that the 'routing of leads' can be improved.
The little guy
The Drupal Marketplace currently ranks organisations on an absolute scale according to credits in absolute terms. To my knowledge the rankings are not normalised by organisation size.
It would be interesting to see what the results would be if the rankings were normalised by employee count. We would then be able to see who the biggest altruists were, dollar for dollar. This would give more incentive to smaller organisations to contribute so they could better signal their altruism.
Advertisements on drupal.org
It is possible to advertise on drupal.org in a variety of positions. You may be familiar with the prominently displayed ads for private companies which are displayed on the bottom of pages. These ads are visible across the whole of drupal.org and benefit from more exposure than being on the marketplace.
Open up the ad space
This form of promotion is obviously much more 'private' in nature, designed to promote the interests of the advertiser rather than that of the project. It is a way for actors to promote their own self interests against others and the interests of the project as a whole.
The advertising space is currently a vehicle to promote the interests of a selected few, rather than all of the altruists in the system. It creates a feeling of 'them vs. us' in the community to have certain players promoted in this way and not others. The Drupal Association should consider how this space could support all contributors. I would suggest that revenue for this space could still be maintained whilst opening it up proportionally based on contributions.
Sponsorship and visibility
Supporters of the Drupal Association receive promotion at Drupal conferences and in other ways. A sponsorship entitles a service provider to a variety of advantages, the main one of which is the promotion through badges and logo display at conferences.
Continue the drive for more members
Supporting the project in this way can be more appealing than one-off sponsorship at individual conferences. Supporters do get quite a good level of exposure at conferences and this is a good way to signal altruism to other members of the community.
This system appears to be working reasonably well. Supporting the project is a good thing and sponsorship is a direct way to do it. The big challenge here is to encourage the non-subscribers to jump on board. If all individuals and companies did this in just a small way, the financial security of the Drupal Association would be assured. This has always been the case. As a community we should be encouraging this where we can. So if you are not yet a member or sponsor, you know what do do :).
Burnout and community funding
It is not uncommon for certain prolific or influential contributors to leave the community. A common reason would be burnout because of the stress of sustaining an important codebase in their spare time. It is not sustainable for them to do so, especially when there are many demands for support of features.
Most recently we have seen Jacob Rockowitz, maintainer of the Webform module, post several articles discussing this situation. The result was the decision to move to a sponsored approach using the Open Collective platform. This model encouraged users of the Webform module, the Takers to help contribute and become Makers by continuing the development of the module.
Closing the altruism loop
The way this message has been communicated has, in my opinion, been done in a very positive way. If you look at the Webform module page, there is a call for support through code, patches and reviews. And for those who cannot do that, financial options exist. This is a direct move to increase the altruism in the community and to close the loop between altruists helping other altruists.
Who sponsors Drupal?
In his blog post: Who Sponsors Drupal, Dries makes the point that companies or smaller agencies support most Drupal development. The bulk of the codebase is supported by actors who no doubt have an active interest in open source and Drupal, as well as the financial and technical ability to help support the codebase.
Deep pockets and shallow expertise
What can be done to broaden this out further, so that we can get more Makers and few Takers?
Larger entities with lower technical capability should have an easy way to fund development of code. Once the altruism feedback loop is strengthened, there should be a bigger drive for Takers to become Makers. We need a path for this to take place.
This is not the same as sponsoring the Drupal Association, i.e. infrastructure, promotion and governance. This is about funding code development, strengthening the code and functionality of the project and making it more attractive as a technological proposition.
In order for this to take place, two things need to happen:
- The Drupal Association, or some other body, needs to be ready to take on this responsibility.
- A method of dividing the resources needs to be determined.
At the moment, the efforts in this area have been ad hoc. There are notable examples of large companies contributing to initiatives which push the project forward. However, in order for this to be scalable, it needs to be done in a more systemic manner. It may be that the Drupal Association doesn't want to take this responsibility on - that is fair enough. If so, how might it be done?
The Webform module has turned to Open Collective. A recent article from Rachel Norfolk, makes a similar suggestion. Maybe the DA is taking a look at what is going on with Webform?
Shallow pockets and deep expertise
And what of the individual developer? The one who loves Drupal, loves open source and dedicates their time to improving the project. What if they are not supported financially by a larger organisation? These people are the lifeblood of the project and they need to be supported. It makes a heap of sense to harness their creative energies and support them financially to progress the project.
If we can find a way to put these Makers together with those with the funds and the desire, great strides will be taken.
I would therefore suggest that this seems to be the most practical approach for closing the altruism loop and progressing the project.
Conclusion
While I make some suggestions, I believe Drupal is in an excellent position. The community is broad and deep and there is a lot of desire to keep the momentum going. There are also some excellent systems in place to help reinforce this such as recognition for contribution and the marketplace.
I have argued for the following:
- Continuing with the credit system and the marketplace;
- Increase the prominence of the Drupal Marketplace to outsiders;
- Promote organisations who are punching above their weight in terms of contributions per employee;
- Continue the sponsorship approach with the community encouraging membership to the Drupal Association;
- Reconsider the advertising space on the Drupal Association as something for Makers rather than being private for a select few;
- Develop a system to bring Makers together with Takers who have deep pockets.
The biggest challenge, where we can make the most gains, lies in bringing the big Takers into the fold and supporting talented individuals who do not otherwise have support, and with that closing the altruism feedback loop and increasing the chances for the project to grow and improve.