L'avenir du libre passe par la conversion des utilisateurs en contributeurs
Sans contribution et engagement, pas de communauté et sans communauté, pas d’open source. Thierry Carrez, VP Engineering de l’OpenStack Foundation revient dans cette tribune d’expert sur la nécessité d’opérer un changement. Si aujourd’hui, l’open source est au cœur de l’innovation et motorise l’essentiel du logiciel, il est temps de franchir un cap : celui de la conversion des utilisateurs en contributeurs.
"Le logiciel mange le monde", écrivait Marc Andreessen en 2011, alors que les programmes informatiques infiltraient l'ensemble des fonctions de notre société. Cette tendance ne s'est pas inversée depuis : rares sont les activités qui ne s'appuient pas sur le traitement ou le calcul, et le deep learning ouvre de nouvelles perspectives et crée de nouveaux besoins. Le logiciel libre est le moteur de cette révolution, proposant à chacun de s'approprier ces technologies en réduisant leur coût tout en évitant le verrou vendeur.
Mais alors que le monde se repose de plus en plus sur les logiciels libres, la quantité de contributions aux projets qui les maintiennent n'a pas vraiment augmenté. La découverte d'Heartbleed en 2014 a mis en lumière le problème: la librairie OpenSSL, 500 000 lignes de codes utilisées pour sécuriser l'ensemble des échanges sur le web, n'était maintenue que par deux personnes. C'est le paradoxe du succès de l'open source: le nombre d'utilisateurs explose, mais pas le nombre de contributeurs.
Les raisons sont multiples. Historiquement, utiliser un logiciel libre était un choix, comme adopter une manière différente de produire un logiciel. Donner en retour aux projets que l'on utilisait était naturel. Les pionniers de l'adoption de l'open source étaient souvent programmeurs eux-mêmes: ils pouvaient donc facilement proposer une correction sur un bug qui les affecte, ou rajouter la fonction qui leur manque. D'autres s'intéressaient au code afin de développer une expertise qu'ils pourraient monétiser. D'autres enfin voulaient juste faire partie d'une communauté sympathique.
Aujourd'hui, dans de nombreux cas, le logiciel libre n'est plus vraiment un choix: il est partout, utilisé par tous. La culture du gratuit, encouragée par les grandes entreprises collectrices de données, est généralisée. Le don en retour n'est plus naturel, et une proportion beaucoup plus faible de ces utilisateurs contribuent aux projets qu'ils utilisent.
Des projets open source moins ouverts que d’autres
Le succès de l'open source a aussi vu l'émergence de projets beaucoup moins "ouverts" que d'autres. De nombreux projets ont un "sponsor principal", propriétaire du nom de marque associé au projet et maîtrisant son utilisation. D'autres ont une gouvernance qui les place au final sous le contrôle exclusif d'une entreprise en particulier. Dans certains cas, ce contrôle va jusqu'à conditionner la contribution à l'abandon de tous droits sur le code fourni, via des assignations de copyright. Il est naturel que ces projets aient du mal à attirer les contributions, qui s'apparentent alors plus à du travail gratuit qu'à une réelle collaboration entre pairs sur un bien commun.
Mais même les projets développés sous forme de vraie collaboration ouverte, où les contributeurs sont tous sur un pied d'égalité sous l'égide d'une organisation neutre à but non lucratif, souffrent pour attirer des contributions. On se heurte alors à une situation classique de tragédie des bien communs: pourquoi faire soi-même quelque chose qui bénéficie à tous ? Pourquoi ne pas attendre que quelqu'un d'autre le fasse ?
Un déséquilibre des contributions dans les communautés
On pourrait penser les grandes collaborations ouvertes avec des milliers de contributeurs, comme Kubernetes ou OpenStack, à l'abri de ces soucis. Mais ces projets souffrent d'un déséquilibre important entre les contributions tactiques et les contributions stratégiques. Les contributions tactiques sont celles qui bénéficient en priorité à soi-même, comme par exemple corriger un bug qui affecte son utilisation particulière du logiciel, ou ajouter une fonctionnalité qui permet l'intégration avec ses propres produits. Les contributions stratégiques sont celles qui bénéficient en priorité au projet lui-même: corriger un bug critique qui affecte l'ensemble des utilisateurs, ajouter une fonctionnalité couvrant un manque reconnu dans le logiciel, gérer le cycle de développement, maintenir le système de tests, ou encore écrire la documentation...
Le battage médiatique et l'intérêt des grands acteurs génère une énorme quantité de contributions tactiques : tous ont besoin de s'assurer que le logiciel répond à leurs besoins et s'intègre bien dans leurs plans. Le problème est qu'il génère beaucoup moins de contributions stratégiques: cela crée un déséquilibre malsain entre un périmètre fonctionnel toujours grandissant et le petit groupe qui tient la boutique, assurant la production régulière de versions, maintenant la qualité, produisant la documentation ou corrigeant les bugs critiques.
La pénurie de contribution stratégique affecte donc tous les projets open source. Pour la résoudre, il faut puiser dans un gisement en forte croissance: celui des utilisateurs. Convertir une part plus importante d'utilisateurs en contributeurs passe par trois axes: éducation, encouragement et facilitation.
Tout d'abord, il est nécessaire d'éduquer un plus large public sur le logiciel libre, préciser la différence avec le gratuit, expliquer la dynamique de contribution, et clarifier le paysage. Aujourd'hui, sous le label "open source" on retrouve de tout: des projets publiés à la va-vite sur GitHub comme vitrine technologique d'une entreprise, sans attente réelle de contribution extérieure, des projets pseudo-ouverts qui bénéficient à leur propriétaire plus qu'au contributeur éventuel, et de vrais bien communs développés ouvertement entre pairs à droits égaux. Il faut apprendre à tous à faire la différence entre ces différentes formes. Il faut répéter qu'un logiciel libre est un bien commun qui a besoin de contributions stratégiques pour survivre. Il faut faire prendre conscience à tous de la valeur d'une contribution stratégique et du danger d'une contribution purement tactique.
Au delà de l'éducation, il faut encourager les individus et organisations à contribuer stratégiquement, en leur donnant quelque chose en retour. Les gains sont indirects, mais multiples. Contribuer aux logiciels dont votre activité dépend est une forme d'assurance: la bonne santé de votre activité dépend de la bonne santé des projets que vous utilisez. Les contributeurs stratégiques deviennent naturellement des leaders du projet, permettant d'influencer efficacement sa direction.
Un autre avantage de l'open source est que le travail de chacun y est visible. De nombreux projets publient des statistiques de contribution, mais celles-ci généralement mettent à l'honneur la quantité plutôt que la qualité. Une personne animant une réunion ou coordonnant l'activité de développement aura moins d'activité visible qu'une personne corrigeant les fautes d'orthographe dans les commentaires du code. Il faut reconnaître et donner plus de visibilité aux contributions stratégiques, afin que ceux qui les portent puissent plus facilement en tirer la reconnaissance qu'ils méritent. Cette reconnaissance devrait servir aux entreprises comme argument d'embauche, et aux contributeurs individuels pour améliorer leurs CVs.
La nécessité de convertir un utilisateur en contributeur
Enfin, il faut tout faire pour faciliter la conversion d'utilisateurs en contributeurs. Choisir un langage accessible ou familier aux utilisateurs, publier des tutoriels de découverte du code source, mettre en place de processus automatisés ou un système d'intégration continue: tout cela facilitera cette conversion critique. Pour diriger ces contributions initiales dans les secteurs où l'impact sera le plus significatif, il est bon de publier des listes claires de bugs stratégiques ou d'équipes en besoin d'aide.
Il faudra probablement aussi que les projets open source eux-mêmes évoluent. Historiquement les projets sont souvent construits autour d'un noyau de développeurs travaillant à plein temps sur le sujet, et les processus, tout comme les perspectives d'évolution dans le projet, favorisent les contributeurs à plein temps. Mais un utilisateur ne pourra probablement, au mieux, que consacrer un jour par semaine à un projet: il est donc nécessaire de faire évoluer ces processus afin d'intégrer pleinement ce type de contribution. Accepter d'aller plus lentement, dépendre le moins possible de communications synchrones: c'est tout un pan du modus operandi classique de l'open source qu'il va falloir réinventer.
Le logiciel libre est un merveilleux moyen de produire du logiciel, et il a aujourd'hui pris toute sa place. Mais il repose sur un équilibre fragile. A nous d'agir pour le rendre pérenne.