Études écologiques d'écosystèmes logiciels open source (ECOS)
Introduction
Les systèmes logiciels font partie des artéfacts les plus complexes jamais créé par l'homme. Le développement collaboratif de logiciels open source a témoigné d'une augmentation exponentielle en deux décennies. Les collection de logiciels open source développés par la même communauté de développeurs peut être considérée comme un écosystème logiciel comportant des similarités avec les écosystèmes biologiques. Alors que ces derniers ont été le sujet d'études depuis des décennies, celles sur les écosystèmes logiciels sont récentes. Pour cela, ce projet de recherche se donne comme but de déterminer comment un certain ensemble de modèles et théories écologiques provenant de la biologie peuvent être adatpés pour comprendre et mieux expliquer comment les projets open source évoluent, ainsi que déterminer quels sont les facteurs qui dirigent le succès ou la popularité de ces projets. Exprimé en des termes biologiques, nous souhaitons utiliser la connaissance relative aux écosystèmes biologiques pour fournir un soutien visant à optimiser l'adaptabilité (« fitness »), la résistance et la résilience des projets. Ces idées seront implémentées comme lignes directrices dans un tableau de bord de l'évolution pour aider à améliorer les pratiques journalières des communautés open source.
Contexte de recherche
Ce projet de recherche s'inscrit dans le cadre de la modélisation de systèmes complexes, un des axes de recherche de l'UMONS (COMPLEXYS Research Institute). Il combine l'expertise de deux domaines complémentaires: l'écologie biologique et l'ingénieure logicielle. Ce projet interdisciplinaire étend les recherche du Service de Génie Logiciel qui se concentre sur des études empiriques concernant l'évolution de logiciels open source, et mettant un accent sur les intéractions sociales. Sur base des expérience du Service d'Écologie Numérique des Milieux Aquatiques, nous modéliserons et comparerons les propriétés générales du vivant par rapport aux écosystèmes logiciel. Nous validerons ces résultats à travers des études empiriques statistiques sur l'évolution de projets open source. Ce projet est supporté par le projet de recherche AUWB-12/17-UMONS-3, une Action de Recherche Concertée financé par le Ministère de la Communauté française - Direction générale de l’Enseignement non obligatoire et de la Recherche scientifique, Belgique.
Objectifs
La nouveauté du projet est d'utiliser des théories, des mécanismes de contrôle et des modèles statistiques qui se sont avérés fructueux pour comprendre ou expliquer l'évolution d'écosystèmes biologiques, et de les appliquer sur des écosystèmes logiciels. La similarité entre les deux types d'écosystèmes nous poussent à croire que des théories évolutionnistes biologiques et les règles générales qui gouvernent les écosystèmes vivants peuvent être appliquées aux écosystèmes logiciels aussi. La différence entre ces deux mondes implique qu'il sera nécessaire d'adapter les théories choisies afin de correspondre au contexte logiciel. Dans ce projet de recherche, deux questions de recherche principales sont visées:
- RQ1: Quelles théories de l'évolution biologiques peuvent être utilisées pour comprendre et expliquer l'évolution logicielle? Les biologistes ont proposés différentes théories pour expliquer l'évolution des espèces vivantes. La plus populaire est l'évolution darwinienne, mais d'autres théories existent, comme l'évolution réticulée. Nous adopterons ces théories pour étudier et modéliser l'évolution de projets open sources dans leur environnement. À travers des études empiriques, nous voulons acquérir une meilleure compréhension pour aider les communautés de projets logiciels à améliorer leur survie et leur adaptabilité au fil du temps.
- RQ2: Quels méchanismes de contrôle propres aux écosystèmes biologiques peuvent être utilisés pour expliquer et changer la manière dont les écosystèmes logiciels évoluent? Les dynamiques des écosystèmes biologiques sont traditionnellement représentées par un réseau trophique qui peut être contraint par le bas, limité par les ressources disponibles aux producteurs primaires, ou par le haut, dérigés par la prédation. Les écosystèmes avec un contrôle de traille de guêpe (« wasp-waist ») combine ces deux méchanismes avec des effets partiels similaires au méchanismes de contrôle des projets open source: certains projets peuvent être dirigés principalement par les idées provenant de ses « core-développeur », ou limité par les ressources matérielles (correspondant à un contrôle par le bas), ou alors ils peuvent être dirigés par les demandes de changement et les rapports de bugs provenant des utilisateurs finaux (correspondant alors à un contrôle par le haut), ou encore certains projets peuvent avoir un mélange des deux (correspondant à un contrôle « wasp-waist »). Une étude de comment ces types de contrôle affectent l'évolution logicielle nous permettront de classifier les projets open source en différentes catégories, et ainsi évaluer si les modèles écologiques empruntés à la biologie peuvent mener à une meilleure gestion des stratégies open source.
Ces deux questions de recherche sont dirigées par un besoin de mieux comprendre pourquoi et comment les projets logiciels évoluent, comment ils collaborent, ou rivalisent entre eux. Une telle augmentation de notre compréhension peut mener à des lignes directrices et outils de support pour aider les communautés logicielles à mieux gérer leurs projets, rester compétitifs, produire des produits de meilleure qualités, améliorer l'adaptabilité et la survie de leurs projets dans un monde qui change rapidement, ceci étant après tout ce que font sans cesse les espèces biologiques depuis que la vie est apparue sur terre.