La vie et le temps des communautés open source
Le code source ouvert est au cœur de nombreuses solutions logicielles critiques dont dépendent les grandes entreprises, les gouvernements et même les particuliers. On pourrait penser qu'un tel code logiciel critique est construit de manière hautement coordonnée et soutenu par des investissements importants.
Mais la vérité est bien plus intéressante, voire étrange si l'on y réfléchit bien. Une grande partie du code logiciel essentiel dont le monde dépend a été assemblée de manière artisanale, par une communauté de volontaires donnant de leur temps sans être payés.
Nous parlons bien sûr de la communauté des logiciels à code source ouvert. Il s'agit d'une communauté complexe avec des interactions complexes - y compris des relations parfois difficiles avec les fournisseurs commerciaux.
Dans cet article, nous examinons de plus près cette communauté. Comment la communauté open source s'est-elle développée, et pourquoi existe-t-elle ? Nous examinerons également certains des défis auxquels est confrontée la communauté open source : notamment les difficultés à gouverner un éventail diversifié de contributeurs.
Contenu
- Les racines de la communauté open source
- La cathédrale et le bazar
- La tragédie des biens communs
- Gouvernance et prise de décision en matière de sources ouvertes
- Entreprises commerciales et communautés open source
- L'importance de l'open source pour l'industrie informatique
Les racines de la communauté open source
Commençons par une définition formelle des communautés open-source. Selon Brian Proffitt écrivant pour TechRadar:
Les communautés open source sont des collections semi-organisées de contributeurs à un projet, généralement un logiciel. Ces communautés rassemblent des personnes ayant des intérêts communs pour construire quelque chose en collaboration, qui peut être partagé avec quiconque à l'intérieur ou à l'extérieur de la communauté. Et, presque toujours, les projets open source sont le résultat de communautés distribuées.
Il est difficile de déterminer avec précision l'origine de la première communauté de logiciels libres. Bien que le travail volontaire pour contribuer aux logiciels existe probablement depuis le début de la recherche informatique, nous pouvons mettre en évidence deux fils conducteurs dans l'histoire du développement des logiciels libres.
Prenez Richard M. Stallman, par exemple. L'histoire raconte que l'un des premiers exemples de collaboration en matière de logiciels libres est né de la nécessité de trouver un moyen d'alerter les chercheurs lorsqu'un bourrage d'imprimante provoque une mise en file d'attente.
Les chercheurs ont écrit le code nécessaire et cela a fonctionné, mais les chercheurs ont été renvoyés à la case départ avec des bourrages d'imprimante lorsqu'une nouvelle imprimante a été livrée avec un code propriétaire et fermé auquel ils ne pouvaient pas avoir accès.
Cela a semé une graine, et avec le temps, Stallman a remarqué de plus en plus de cas où des logiciels propriétaires avec des licences fermées empêchaient le progrès. Il a décidé de lancer le projet GNU qui est toujours une pierre angulaire du logiciel libre, notamment grâce à la licence publique générale GNU (GPL).
L'histoire de Stallman est l'une des premières étapes du développement de l'open source en tant que mouvement communautaire. Elle illustre comment le besoin de compréhension, de contrôle et de démocratie autour du code source a inspiré la formation d'une communauté. L'objectif de Stallman était de créer un système d'exploitation complet, mais c'était à un autre membre d'une communauté open source en pleine expansion de faire de ce projet une réalité.
Un autre moment charnière est l'essor de Linux, lancé par Linus Torvalds en 1991 en tant que projet personnel. Wikipedia propose un excellent article sur l'histoire de Linux.mais il suffit de dire que Linus s'est appuyé sur les efforts d'autres membres de la communauté - notamment en utilisant le compilateur GNU C - pour développer le noyau Linux.
Nous connaissons tous le succès du projet Linux, puisque les systèmes d'exploitation basés sur Linux sont désormais à la base des charges de travail critiques dans le monde entier. Linux est toujours gratuit et toujours soutenu par une communauté de bénévoles à code source ouvert - avec des versions contenant des millions de lignes de code.
Nos deux exemples mettent en évidence deux des pierres angulaires de la communauté open source. Premièrement, les logiciels doivent être libres et ouverts afin de permettre à chacun de contribuer et de construire quelque chose de plus grand.
Il met également en évidence le pouvoir d'une communauté à réaliser quelque chose de plus grand que ce qui serait le cas si des individus s'y essayaient - ou si cela était tenté dans les limites plus restreintes du développement commercial de logiciels.
La cathédrale et le bazar
Les communautés qui se regroupent dans un but commun ont une longue histoire. Une façon d'envisager ce type d'arrangement est de recourir à un concept appelé communautés de pratique (CoPs), qui est essentiellement ce que sont de nombreuses communautés open source.
Les CdP sont des groupes organisés où des personnes se réunissent pour travailler à un objectif similaire. Une CoP peut se former délibérément, comme une action planifiée, ou évoluer naturellement, lorsque des personnes réalisent qu'elles ont des objectifs communs et décident de coopérer. Ces groupes impliquent le partage d'informations et de compétences, ainsi que la répartition de la charge de travail, afin d'éviter la duplication des efforts.
Tout est volontaire - mais tout peut être un peu chaotique. Intuitivement, on pourrait penser qu'une approche plus soigneusement planifiée du développement de logiciels serait plus fructueuse, mais au contraire, tout porte à croire que l'approche ouverte et moins désorganisée de l'open source donne des résultats incroyables.
C'est ce qu'Eric Steven Raymond a laissé entendre dans son livre, La cathédrale et le bazar. L'auteur y évoque deux modèles d'écriture de logiciels. Premièrement, le modèle de la cathédrale où, pendant le développement, seul un groupe restreint de personnes a accès au code source et contribue au processus de développement - même si le code source est disponible après la publication. Le modèle de la cathédrale est planifié et contrôlé, ce qui s'apparente à la création de logiciels dans un cadre commercial.
Mais il existe un deuxième modèle, le bazar. Le bazar est un modèle beaucoup plus chaotique où les versions sont souvent publiées, où le processus de développement est ouvert aux contributions de chacun. Essentiellement, le développement se fait sur Internet à la vue de tous. L'argument est que, malgré cette méthode chaotique, son ouverture peut signifier que le modèle bazar peut produire des résultats plus rapidement, à condition que des contrôles soient en place.
Par exemple, Raymond a noté que l'examen des bogues est beaucoup plus facile lorsque de nombreux yeux regardent le code, alors que dans le modèle de la cathédrale, le processus de recherche de bogues est beaucoup plus difficile.
La tragédie des biens communs
À bien des égards, le développement de logiciels à code source ouvert via les efforts de la communauté est un excellent moyen de produire un code compétent et de qualité, même dans le cadre de très grands projets. Mais comme toujours dans la vie, il y a des avantages et des inconvénients à cette approche.
Comme nous l'avons souligné dans la dernière section, la méthode bazar de production de code ne fonctionne qu'en présence de contrôles appropriés. Pourquoi avons-nous besoin de ces contrôles ? Eh bien, cela nous amène à notre deuxième métaphore : la tragédie des biens communs.
Concept connu en économie, la tragédie des biens communs souligne le fait que les gens n'agissent pas toujours dans l'intérêt collectif - au contraire, en agissant par intérêt personnel, ils finissent souvent par agir à l'encontre du bien commun de la communauté. Cela peut aussi se produire dans la communauté du logiciel libre.
D'un côté, l'un des plus grands avantages des logiciels libres est que tout individu peut contribuer au code libre - en ajoutant, personnalisant ou modifiant le code. Mais cela peut conduire à des problèmes dans les projets de logiciels libres, car les individus font valoir leurs intérêts personnels, sans tenir compte du bien commun du projet de logiciels libres.
Cet intérêt personnel comprend le gain financier, mais il peut aussi signifier que les projets sont simplement tirés dans des directions qui ne profitent pas à la communauté open source au sens large. Ou bien, le projet meurt simplement parce qu'au niveau individuel, il y a peu d'intérêt - même s'il y a une valeur au niveau de la communauté.
Ainsi, si la "sagesse de la foule" peut apporter d'énormes avantages, les membres individuels de la communauté open source peuvent parfois constituer des pierres d'achoppement.
Gouvernance et prise de décision en matière de sources ouvertes
Il est clair que pour tirer le meilleur parti de la bonne volonté qui se cache derrière les projets de logiciels à code source ouvert, il faut mettre en place un régime de gouvernance et de prise de décision solide pour gérer le comportement individuel dans l'intérêt général.
Il existe différentes stratégies de leadership dans la communauté open source. Certaines pourraient être entièrement démocratiques, mais d'un autre côté, Linus Torvalds a agi avec beaucoup de succès en tant que "dictateur bienveillant" derrière Linux.
Chaque projet open source est différent et la structure de gouvernance adoptée sera déterminée à la fois par la nature du projet, la forme et la taille du groupe qui contribue, et bien sûr les objectifs généraux du projet.
Dans l'ensemble, les points que les dirigeants d'une communauté open source devraient prendre en compte sont une structure de prise de décision, un processus fixe autour de la façon dont les nouveaux mainteneurs sont ajoutés, et le choix d'un système de construction adapté aux objectifs du projet.
La propriété intellectuelle est également importante, notamment la licence du logiciel libre, qu'il s'agisse de la licence GNU GPL ou de la licence MIT, par exemple. La propriété du domaine Internet doit également être décidée, tandis que les marques déposées doivent également être comptabilisées de manière équitable.
Un aspect important à prendre en compte est l'étroitesse du contrôle sur un projet. Comme le suggère Eric Raymond avec son analogie avec le bazar, l'absence relative de contrôle est ce qui fait le succès du modèle open source. Pourtant, en l'absence de tout contrôle, le développement de logiciels libres risque de succomber à la tragédie des biens communs.
Entreprises commerciales et communautés open source
Les initiatives open source peuvent accomplir des choses incroyables, ce qui peut rapidement attirer l'attention des fournisseurs commerciaux. Les sommes en jeu peuvent être énormes, comme en témoignent l'achat de Red Hat par IBM pour 34 milliards de dollars et l'investissement de 7,5 milliards de dollars de Microsoft dans GitHub.
On peut également faire valoir que les projets open source n'atteindront véritablement la masse critique et la pénétration des entreprises que lorsqu'une société commerciale de logiciels interviendra pour fournir des niveaux de support de niveau entreprise. Après tout, les développeurs professionnels travaillant dans un environnement d'entreprise auront besoin d'un support de niveau entreprise avant de pouvoir intégrer une solution open source dans leur charge de travail.
Quoi qu'il en soit, les communautés de logiciels libres entretiennent des relations complexes et parfois éprouvantes avec les fournisseurs commerciaux, ce qui est compréhensible, étant donné le contraste évident entre les contributions apportées gratuitement par les membres de la communauté et le but lucratif des organisations à vocation commerciale.
Néanmoins, il existe plusieurs modèles qui allient avec succès les prérogatives de l'open source aux exigences commerciales. Il peut s'agir d'un parrainage pur et simple de projets, mais les entreprises commerciales peuvent également soutenir les initiatives open source par le biais d'un financement, d'un don d'équipement ou du temps de leurs employés, en leur permettant de travailler sur le code open source, par exemple.
Un investissement commercial modeste peut considérablement stimuler les efforts de la communauté des logiciels libres. En retour, les organisations peuvent déployer un code open source très performant qui répond à leurs besoins. Bien entendu, la gouvernance de l'open source est importante à cet égard : sans une direction indépendante forte, les objectifs commerciaux peuvent facilement prendre le pas sur les objectifs du projet open source.
L'importance de l'open source pour l'industrie informatique
La technologie de l'information est une science, et les sciences bénéficient toujours de l'ouverture, de l'expérimentation et de la collaboration, car ces trois qualités favorisent l'innovation. Par conséquent, il est facile de voir pourquoi les communautés open source profitent au secteur des technologies de l'information.
Ces innovations sont le fruit du développement de logiciels libres et se retrouvent souvent dans les solutions logicielles des entreprises. Par exemple, le noyau Linux alimente une grande partie des serveurs d'applications, tandis qu'OpenSSL prend en charge les communications sécurisées pour la majorité des serveurs web compatibles HTTPS.
Avec une bonne gouvernance, les projets open source ont une capacité incroyable à stimuler l'innovation en exploitant la matière grise collective de développeurs experts situés dans le monde entier de manière raisonnablement coordonnée. Le soutien commercial peut faciliter le processus en comblant le fossé de la motivation.
Les logiciels à code source ouvert constituent souvent une meilleure alternative aux solutions commerciales et, dans certains cas, le code à code source ouvert est si bon qu'il devient essentiellement la seule solution raisonnable.
Il est difficile de prédire exactement ce qui serait arrivé au rythme du développement technologique si les communautés open source n'avaient pas atteint la taille qu'elles ont aujourd'hui, mais il ne serait pas injuste de suggérer que le modèle open source a accéléré le rythme du développement technologique - et continuera à le faire à l'avenir.