Github, l'effet Darwin

1115 mots | info github opensource |

Github : l’effet Darwin

Mon ami fdevillamil a publié ce jour un petit article sur Github dans lequel il se demande : Github a t il tué les communautés open source ?.

L’analyse est intéressante, mais j’aurai tendance à voir le verre plutôt plein qu’à moitié vide comme il a l’air de le faire. Il ne se risque pas à certaines conclusions ce que j’ai plutôt envie de faire.

Effectivement, à mon humble avis, Github est un gros coup de pied dans la fourmilière open source et probablement ce qui pourrait la faire passer à la vitesse supérieure.

Système féodal

L’analyse de Frédéric sur le principe féodal de l’organisation des projets est relativement juste, il est rare de voir un projet vivre de façon pleinement démocratique. On peut en effet en tirer une vision somme toute ironique du système : on ouvre le code (ou on le laisse ouvert) mais on garde la main sur les décisions. Vu comme cela c’est très vite un problème lorsqu’il s’agit d’assurer la pérénité du projet, et surtout son évolution au sens génétique/darwinien du mot.

Démocratie : le pouvoir du peuple, par le peuple, pour le peuple

Github vient donc chambouler la hiérarchie habituellement en place dans les projets OpenSource/Libre : un leader (une personne ou une équipe) qui dirige royalement le projet va se faire gentiement remettre en place par ses sujets voir détrôner. Sauf que, en fait, il n’y a plus vraiment de trône.

En fait, ce n’est pas vraiment Github qui déclenche ça, c’est plutôt l’arrivée et l’adoption en masse de Git ou Hg, bref d’un système décentralisé : plus besoin de dépendre du leader pour voir des changements s’opérer à tous niveaux du projet, ou du moins voir des propositions de changements apparaître. Github est l’outil qui permet de regrouper et catalyser ces travaux via : les forks faciles à faire, les graphs de forks, les pull requests, et les commentaires sur les commits.

Dans les faits ce nouveau venu permet l’essor d’une nouvelle forme de gouvernance (hop) pour les projets open source : la démocratie pure et simple : c’est la majorité qui décide quel bout de code sera intégré, ou sera le plus utilisé etc … De fait cela détruit le besoin d’un leader charismatique, en considérant que :

C’est là que l’on voit le dilemne de l’OpenSource : un projet doit il avoir un leader ou doit il être purement démocratique, voir carrément anarchique-éclairé ?

On pourrait facilement soutenir cette thèse : un projet pour qu’il soit réèllement libre/ouvert devrait vivre sous une règle de la non structure assurant un foisenement maximal d’idées, commits, merges etc … Cela remet en cause l’ego de certains, c’est évident, mais si on part du principe que le Libre vise le meilleur résultat pour le groupe de personnes utilisant le projet … quoi de mieux que personne ne soit à même de décider en sa seule conscience (quand bien même il serait bien intentionné) des évolutions du projet.

Github, l’effet Darwin ?

Avant c’était le leader qui décidait, maintenant ce sera in fine l’assemblée qui décidera. Mais, au final, ça sera une évolution quasi darwinienne/génétique du code qui se fera en fonction des besoins et problématiques rencontrées : certains bout de code seront intégrés parce qu’utile à une majorité (merge) et d’autres ne le seront pas parce qu’ils ne représentent pas une solution correcte ou un intérêt suffisant pour la majorité (pas de merge). Enfin les forks peu maintenus disparaîtront d’eux même dans les lymbes des graphes et des historiques.

Ghost in the code ?

Par ailleurs, s’il y a bien des instigateurs du projet l’idée déborde vite de leur cercle pour devenir une entité en elle même, la communauté se façonne avant tout autour de l’idée, du projet, et continue à vivre ainsi même si les “patients 0” disparaissent d’une façon ou d’une autre du projet.

Pour ceux qui ont vu Ghost In The Shell SAC ce sont des thèmes abordés et quelques références sur la génétique tel que “le gène égoïste” y sont données. Le principe que, rapidement, l’idée devient elle même, d’une façon, le leader du mouvement avec ses possibles mutations dominantes ou récessives.

Revenons sur Terre

Plus concrètement il se poste la question de savoir si le projet fera flop de lui même du coup. Il est probable que les développeurs les plus engagés dans le projet seront ceux qui le feront avancer, donc ils seront probablement les plus visibles, et donc ils seront les décideurs des changements. Il y aura donc une certaine équipe qui gèrera le projet même si au sein de cette équipe les évolutions suivront le modèle exposé plus haut.

Et l’utilisateur lambda ?

Pour l’utilisateur lambda le problème restera le même : utiliser un package clic-convivial pour installer et utiliser le produit/projet, charge donc à la ou les branches de fournir ça.

Bien ou mal ?

Nul ne saura dire, mais difficile de nier que cela ne peut que faire du bien : dégonfler les égos et injecter une dose d’anarchie et de démocratie dans l’OpenSource ne peut que le rapprocher des principes originaux de hacking ou de développement logiciel au temps des barbus de Berkeley & Co. Cela modifiera de façon radicale les durées des cycles d’évolutions des projets sans doute.

Cependant rien de neuf non plus, le développement de Linux est, selon moi, ainsi depuis pas mal de temps. Certes il y a un dictateur bienveillant qui gère le projet, mais cela n’empêche en rien l’apparition, vie, disparition, intégration de branches ou de patchs développés en parallèle de la branche officielle.

Pour conclure, Github & co sont donc une chance formidable pour assurer la pérenité et une plus rapide (chaotique) évolution des projets OpenSource/Libre. Il faut donc la saisir plutôt que de se braquer en restant sur ses positions. Ne faisons pas ce que certaines entités font : ne restons pas enfermés dans nos concepts et acceptons le changement qui se passe. De toute façon la machine ne fera plus marche arrière.

Il nous faudra probablement des outils supplémentaires pour palier aux risques inhérents à une anarchie éclairée : ratio signal/bruit faible notament, mais je suis confiant que ce sont des choses qui emergeront en temps utile.

Cela précipitera un parallèle intéressant (à mon goût) entre l’évolution de la vie de projets (et donc de groupes de personnes) et l’évolution de nos sociétés (au sens Etats, Nations) avec Internet et les utilisations qu’on en fait … Mais cela est un tout autre débat.