In the context of WP Engine vs Matt/Automattic/WordPress, Drupal co-founder Dries Buytaert published a blogpost that caught my eye.
This post is not specifically about the conflict between Matt and WP Engine, but rather about the identification and valorization of companies contributing to an open-source ecosystem.
This was, after all, the public starting point of the conflict.
In this article, Dries discusses the Maker-Taker concept to identify companies that are simply taking advantage of the system and those that are really contributing to it. For the past 10 years, Drupal has been promoting Makers within the ecosystem, directly highlighting these companies both on Drupal ecosystem websites and events.
There is a major difference in the credit system used by WordPress and Drupal ecosystems to recognize contribution efforts:
Even though WordPress encourages companies to contribute via the Five for the Future initiative, our open-source project only officially recognizes individual contributions and not those from companies.
Before we can consider taking “actions” against companies that are more takers than makers – and this decision remains to be discussed – we need to be able to formally identify the companies that actually contribute significally.
I’m going to apply this to WordPress Core contributions, but it potentially applies to any type of contribution. Core contribution, however, is a central node of the WP contribution system, so it’s interesting to start there, even if it potentially applies to all contribution teams.
The Drupal approach: managing company credits directly in commit messages
At WordPress, only individuals are credited in commit messages.
Official company profiles that may be present in commits are manually sorted when each version is released, and are systematically eliminated from the list of credits for each version.
Only individual accounts appear in the version credits list.
This is a major difference from Drupal’s contribution system, which does the opposite by directly recognizing in commit messages the individual, their company and even, where applicable, the customer in whose context the development or bug was reported.
Example of a Drupal commit message:
$ git commit -am "Issue #42 by Sam@Acquia, Megan, Tim*Pfizer: fixed performance bug."
In this example, the following are credited: Sam (individual) from the Acquia agency (Sam’s employer), Megan (individual), Tim (individual) and Pfizer (the customer associated with Tim, who reported the bug).
Source: A method for giving credit to organizations that contribute code to Open Source
Interesting.
In order to make public this information on the contribution of companies to WP, I regularly publish some statistics (including graphs) showing the involvement of companies on major WP versions, and annually in the “Year in Core” articles.
Examples:
Alas, these stats are very limited: they only consist in scraping individual contributions made by people who have indicated an employer on their WordPress.org profile.
On one hand, there’s a margin of error in scraping, and on the other, people have an annoying tendency to switch from one company to another from time to time… and their past contributions are then fully attached to their current (and future) employer.
I think it’s important to know how much each company really contributes, so we can showcase it, just as the Drupal ecosystem does.
But how can this be done using the mechanisms currently available on WordPress.org?
Proposal for an alternative approach to WordPress, based on the Five for the Future initiative
We don’t necessary have to act directly in commit messages, as Drupal does, we can do it via the Pledges that already exist in the Five for the Future initiative.
As we know the employer of each individual who has made a contribution (as long as the corresponding field is filled in), we can probably “easily” automatically put it together on the company page, to show the complete list of contributions made by people who are sponsored or belong to the company, at the time the contribution was made.
Then we can archive it, like a feed similar to the one currently shown on individual profiles.
This would make it much simpler to know the real amount of contributions of each company, and above all: it would solve the well-known problem of people who switch from a company to another one over time and whose contributions seem to be attached only to their current company/sponsor.
This is a subject that has already been brought to my attention by Peter Wilson or Johny Harris in the past: when people change companies, it distorts the contributions of both the old and the new company, by attributing the volume of the person’s contribution to their current company.
This would make it possible to keep a history of contributions on the organization’s page, while allowing the individual who is the author of the contribution to decide whether to attribute their new contributions to their current employer.
If we can manage to get more precise stats, it will actually be easier to see which companies are really involved in contributing to our ecosystem, and by deduction to see those who contribute little or nothing. Today, it’s not really possible to make this information publicly available.
Even with this proposal, it will still be a little less precise than the system implemented by Drupal, but it’s something that can be “easily” implemented in short term.
Of course, I’m available to work with the Make/Meta team on the starting blocks of this potential implementation.