Cet article est le fruit de mes réflexions sur le mode de fonctionnement de Github, forge de développement sociale, et de l’association Ruby France.

Le mouvement open source dans son ensemble est un amusant fourmillement de contradiction (mal) assumées. Il se veut innovant mais repose d’abord sur une économie de substitution. Il prône la décentralisation mais les projets libres fonctionnent selon un mode monolithique à faire pleurer de joie dans leur tombe les dirigeants successifs de l’URSS. Enfin, il repose sur une trompeuse égalité entre les contributeurs tout en reposant sur les mêmes bases que le système féodal au Moyen-Âge. Je ne porterai pas de jugements sur le bien fondé de ce fonctionnement, mais ça fait juste sourire au vu des revendications affichées.

Un mode de fonctionnement vertical

Les projets libres et open source reposent tous sur le même fonctionnement. Une équipe de personnes, souvent des développeurs, tient les clés du projet. Cela se traduit par les choix stratégiques et les droits en écriture sur les sources du projet. Le reste de la communauté s’organise entre sympathisants, utilisateurs et contributeurs. Ces derniers font remonter leurs apports à la core team qui décide ou non de les intégrer au projet, et ainsi de les mettre en lumière. Mais rien qui ne touche au coeur du projet ne peut se faire ou être mis en lumière sans leur aval. S’ensuivent d’inévitables trolls sur les listes de discussions entre contributeurs reconnus mais non membres de la core team et ces derniers.

Ce mode de fonctionnement se rapproche plus de celui des partis politiques dans lesquels différents courants s’expriment, mais qui s’exprime en tant qu’entité selon une ligne définie par le comité politique.

Une application exemplaire de l’esprit féodal

Le fonctionnement interne des projets open source repose sur les bases de la relation à l’époque féodale. Les nouveaux mainteneurs sont choisis pour leurs apports au projet, avec l’établissement d’un lien de confiance qui permet ou non de donner les droits en écriture sur le projet. À ceci près qu’ils sont exemptés de l’hommage lige, et qu’ils jurent plus fidélité au projet qu’au lead developper. Cela revient à jurer fidélité à la couronne et non au roi, et c’est une différence fondamentale avec le système féodal dont les bases reposent sur la confiance d’homme à homme.

Il existe même un équivalent de la parjure dans le monde de l’open source, c’est le fork.

Forker un projet, c’est récupérer l’existant et monter un contre projet ailleurs. Un projet est généralement forké quand son équipe de développement a cessé de s’en occuper, ou quand des dissensions irrémédiables apparaissent au sein de l’équipe de mainteneurs et de contributeurs du projet. Décider de forker est un acte aux conséquences majeures dans la vie d’un projet libre, et qui n’arrive pas tous les jours, car cela implique la mort potentielle des deux branches du projet : division de l’équipe des contributeurs (et donc des volontaires pour faire avancer le projet), et mise en lumière de plusieurs projets similaires au risque de perdre les utilisateurs… Les discussions qui trainent depuis des mois sur le fait de forker Redmine ou non, avec toutes les conséquences que cela pourrait avoir en sont un exemple parmi d’autres.

Github, le coup de pied dans la fourmilière

Github est une forge de développement basée sur Git pour la technologie et sur le fonctionnement des réseaux sociaux pour l’esprit apparue début 2008. Son interface très conviviale, l’aspect social qui donne très facilement de la visibilité aux projets et l’intégration d’une multitude de services lui ont très rapidement donné une popularité sans précédent depuis les premiers jours de Sourceforge.

Mais mine de rien, Github vient aussi donner un grand coup de pied dans le fonctionnement des projets open source, au risque de détruire le système traditionnel.

Là où le système traditionnel voulait que chaque contributeur télécharge les sources du projet dans son coin, puis pousse discrètement ses modifications à la core team, Github repose sur un fork préliminaire du projet. Le fork est même encouragé puisqu’il se fait d’un simple clic de souris sur la page principale du projet.

Le principe du fork par défaut tient de la nature décentralisée du système de gestion de configuration Git. Contrairement à CVS ou Subversion, le simple fait de télécharger les sources permet de commiter localement. Simplement, les droits de commit sur le projet d’origine ne sont pas possible. Github crée autant de projets d’origine qu’il y a d’utilisateurs voulant y travailler, chaque fork est associé à son créateur, et sa page d’accueil Github comporte une mention du projet d’origine.

Les conséquences sont multiples :

Toute personne forkant le projet devient publiquement de facto le leader de son projet portant le même nom que l’original. Les autres utilisateurs de Github peuvent décider de suivre ce fork au lieu du projet original, voire suivre plusieurs versions d’un même projet.

Tous les commits sur les forks poussés sur Github sont publics. Cela signifie qu’un fork ayant une activité supérieure ou prenant une direction différente de celle du projet père pourra attirer une partie de la communauté, diluant cette dernière en autant de communautés qu’il existe de forks.

Conclusion

Le mode de fonctionnement vertical n’est pas fondamentalement mauvais, bien au contraire. Les grands projets open source se sont tous bâtis autour de leaders charismatiques. Sans ces personnes, il n’y aurait pas eu de communauté, aussi le produit fut-il. L’avantage du despotisme éclairé, pour rester dans les références de la philosophie politique est au moins de faire avancer les choses là où la démocratie est essentiellement basée sur le cause toujours (Coluche).

Github a permis à de nombreux projets open source mineurs de se donner une visibilité inespérée. Le système de fork extrêmement simple permet d’attirer les contributions de manière beaucoup plus naturelle et informelle que le système vertical traditionnel. Mais cela risque de se faire au prix des communautés de contributeurs qui permettent à un projet de se développer.

Perry the Platypus wants you to subscribe now! Even if you don't visit my site on a regular basis, you can get the latest posts delivered to you for free via Email: