Dans le cadre de l’affaire WP Engine vs Matt/Automattic/WordPress, le cofondateur de Drupal Dries Buytaert a publié un article qui m’a interpellé.
Cet article ne porte pas spécialement sur le conflit entre Matt et WP Engine, mais plutôt sur l’identification et la valorisation des entreprises contribuant à un écosystème open-source.
C’était tout de même le point de départ public du conflit.
Dans cet article, Dries évoque le concept de Maker-Taker pour identifier les entreprises qui ne font que profiter du système et celles qui y contribuent. Depuis 10 ans, Drupal a entrepris une action de valorisation des Makers au sein de l’écosystème, en mettant en avant de manière très directe ces entreprises à la fois sur les sites de l’écosystème et lors des événements.
Il faut noter une différence majeure dans le système de credit des écosystèmes WordPress et Drupal pour reconnaitre l’effort de contribution :
Même si WordPress pousse les entreprises à contribuer via l’initiative Five for the Future, notre projet open-source ne reconnait en réalité officiellement que les contributions individuelles et pas celles des entreprises.
Avant de pouvoir envisager de prendre des « mesures » contre les entreprises qui sont davantage des takers que des makers – et cette décision reste à discuter – il nous faut déjà pouvoir identifier formellement les entreprises qui contribuent réellement.
Je vais pousser l’exemple au niveau du développement du cœur du CMS, mais cela s’applique potentiellement à tout type de contribution. Les contributions Core constituent cependant le noyau central du système de contribution de WP, c’est donc intéressant de commencer par là, même si ça s’applique potentiellement à toutes les équipes de contribution.
L’approche de Drupal : gérer les crédits des entreprises directement dans les messages de commit
Chez nous, seuls les individus sont crédités dans les messages de commit.
Les comptes WordPress officiels des entreprises éventuellement présents dans certains commits sont manuellement triés lors de la sortie de chaque version, et sont systématiquement éliminés de la liste des crédits de chaque version. Seuls les comptes des individus apparaissent.
C’est une différence majeure par rapport au système de contribution de Drupal qui fait l’inverse en reconnaissant directement dans les messages de commits à la fois l’individu, sa société et même le cas échéant le client dans le cadre duquel l’évolution ou le bug a été remonté.
Exemple de message de commit chez Drupal :
$ git commit -am "Issue #42 by Sam@Acquia, Megan, Tim*Pfizer: fixed performance bug."
Dans cet exemple, sont crédités : Sam (individu) de l’agence Acquia (employeur de Sam), Megan (individu), Tim (individu) et Pfizer (le client associé à Tim, qui a remonté le bug).
Source : A method for giving credit to organizations that contribute code to Open Source
C’est intéressant.
C’est pour avoir ces informations sur la contribution des entreprises dans WP que je sort régulièrement mes statistiques comprenant des graphiques indiquant l’implication des sociétés sur les versions majeures de WP, et annuellement dans les articles « Year in Core ».
Exemples :
Mais ces stats sont très limitées : elles ne sont qu’un scraping des contributions individuelles faites par des personnes ayant indiqué un employeur sur leur profil WordPress.org.
D’une part il y a une marge d’erreur liée au scraping, d’autre part les gens ont une fâcheuse tendance à changer de boîte de temps à autre… et leurs contributions passées sont alors intégralement rattachées à leur boîte actuelle.
Je pense qu’il est important de connaitre le volume de contribution réel de chaque entreprise, afin de pouvoir mettre cela en valeur, comme le fait l’écosystème Drupal.
Mais comment peut-on le faire tout en utilisant les mécanismes actuellement disponibles sur WP ?
Proposition d’une approche alternative pour WordPress, basée sur l’initiative Five for the Future
Il n’est pas forcément nécessaire d’agir directement dans les messages de commits comme chez Drupal, mais on peut le faire via les Pledges qui existent déjà dans l’initiative Five for the Future.
Comme nous connaissons l’employeur de chaque individu ayant fait une contribution (à partir du moment où le champ correspondant est renseigné), nous pouvons sans doute « facilement » remonter automatiquement sur la page des organisations la liste complète des contributions effectuées par des personnes qui sont sponsorisées ou appartiennent à l’entreprise, au moment où la contribution a eu lieu.
Et nous pouvons donc l’archiver sous la forme d’un flux similaire à celui des profils individuels.
Ainsi, il serait bien plus simple de connaitre les contributions réelles de chaque entreprise, et surtout : cela résoudrait le problème connu des personnes qui changent d’entreprise au fil du temps et dont les contributions ne semblent être rattachées qu’à leur entreprise/sponsor actuel.
Un sujet qui m’a d’ailleurs déjà été remonté par exemple par Peter Wilson ou encore Johny Harris par le passé : lorsque les gens changent d’entreprise, cela fausse les contributions de l’ancienne entreprise comme de la nouvelle, en attribuant le volume de contribution de la personne à son entreprise actuelle.
Cela permettrait ainsi de conserver un historique de contributions sur la page de l’organisation tout en permettant à l’individu qui est l’auteur·ice de la contribution de pouvoir décider d’attribuer ses nouvelles contribution à son employeur actuel.
Quand on aura des statistiques plus précises, il sera déjà plus simple de voir quelles sont les entreprises réellement impliquées dans la contribution à notre écosystème, et par déduction de voir celles qui ne contribuent pas, ou peu. Aujourd’hui ce n’est pas vraiment possible d’avoir cette information, publiquement.
Même avec cette proposition, ça restera un peu moins précis que le système mis en place par Drupal, mais c’est quelque chose que l’on peut mettre en place sans trop de difficulté et à court terme.
Je suis évidemment disponible pour mettre en place les premières briques de cette implémentation avec l’équipe Make/Meta.