Ouvrir le code source
À quoi sert ce guide ?
Ce guide sert à aider à définir une politique d’ouverture des logiciels libres que l’on produit, dans le cadre de la mise en oeuvre de la loi pour une République numérique du 7 octobre 2016. Plus d’informations sur le guide d’Etalab
Il vient en complément de la Politique de contribution aux logiciels libres de l’État, publiée en mai 2018, laquelle est doublement limitée: (1) elle ne s’adresse pas aux collectivités territoriales ; (2) elle acte le principe selon lequel les agents publics peuvent publier du code source et contribuer à des logiciels libres, mais elle n’aide pas les organismes publics à répondre à la question « Quels logiciels ouvrir en priorité ? »
Ce guide a pour vocation de répondre aux questions :
- Quels logiciels ouvrir en priorité ?
- Comment bien communiquer autour de la publication d’un logiciel libre ?
Clarifier : quels degrés d’ouverture pour les codes sources ?
Nous proposons de distinguer les quatre degrés d’ouverture suivants :
-
📘 Niveau A - contributif : Le code source est publié, les contributions extérieures sont activement recherchées et traitées.
-
📗 Niveau B - ouvert : Le code source est publié, les contributions extérieures sont traitées mais non activement recherchées.
-
📙 Niveau C - publié: Le code source est publié mais les contributions extérieures ne sont pas traitées.
-
📕 Niveau D - non-communicable: Le code source n’est pas communicable au public.
Prioriser : quels logiciels ouvrir à quel degré ?
Tous les logiciels développés par un organisme public n’ont pas vocation à être ouverts au même degré.
Nous proposons trois critères :
-
Le logiciel est-il un module utile à d’autres logiciels libres (ou un logiciel « monolithique » sans utilité pour d’autres logiciels libres) ?
-
Le logiciel répond-il a un besoin générique (ou à un besoin spécifique à l’organisme qui le produit) ?
-
L’utilisateur final du logiciel a-t-il un profil technique (développeur, datascientiste ou designer) ?
Le niveau A est recommandé pour les logiciels répondant à au moins deux critères ; le niveau B est recommandé pour ceux répondant à au moins un critère ; le niveau C pour ceux ne répondant à aucun de ces trois critères (par ex. un logiciel métier très spécifique, dont aucune partie ne peut être réutilisée ailleurs et dont les utilisateurs ne sont pas du tout des contributeurs potentiels.)
Pour les logiciels ne répondant à aucun des trois critères, le niveau D est admissible, tant qu’aucun citoyen n’exige la communication du code source en question, selon le cadre juridique défini dans la loi pour République numérique.
Bien sûr, ces critères sont relatifs : la modularité, la généricité et le potentiel de contribution des utilisateurs ne s’évaluent pas dans l’absolu. Ces notions aident seulement à prioriser les ouvertures logicielles. Le but est de canaliser son énergie sur les logiciels qui ont un bon potentiel contributif et de communiquer clairement sur la posture de l’administration dans le cas des publications simples.