14 novembre 2018 / de Bastien Guerry, EIG Link

Le logiciel libre et l’administration publique

Un logiciel libre est un logiciel qui garantit à chacun quatre libertés : celle d’exécuter le logiciel comme bon lui semble ; celle d’étudier le fonctionnement du programme (notamment en accédant à son code source) et de l’adapter à ses besoins (en modifiant ce même code source) ; celle de redistribuer des copies du programme ; celle d’améliorer le programme et de redistribuer des copies des versions améliorées.

Ces « quatre libertés » du logiciel libre sont les piliers du mouvement du même nom, lancé dans les années 80 par Richard Stallman, alors informaticien au MIT, qui mobilisa la communauté des hackers pour l’écriture d’un système d’exploitation libre nommé GNU (« GNU is Not Unix »). Le mouvement a pris de l’ampleur avec l’arrivée du noyau Linux au début des années 90, noyau qui permit de faire fonctionner le système libre GNU sur des machines ordinaires.


GNU+Linux

Vous connaissiez le pingouin, mascotte du noyau Linux, mais connaissiez-vous le gnou, symbole du projet GNU is Not Unix ?

Dans les années 2000, ce mouvement s’étend doublement : d’une part avec l’émergence de « l’open source », qui cherche à insister sur la valeur pratique et économique des logiciels libres, en escamotant au passage les aspects politiques du mouvement ; d’autre part avec la propagation des idées du libre dans d’autres domaines que le seul domaine de l’informatique : c’est le lancement des licences Creative Commons par Lawrence Lessig et de l’encyclopédie libre Wikipédia, par Jimmy Wales et Larry Sanger. Les deux décennies suivantes verront se décliner « l’open » dans d’autres domaines, notamment l’open access (pour la publication en accès libre des articles de recherche) et l’open data (pour l’ouverture des données publiques).

Aujourd’hui, le libre est représenté par des étendards bien connus du grand public tels que le système GNU/Linux, le navigateur web Firefox, le lecteur VLC – et bien d’autres.

Quel rapport avec l’administration ? Celle-ci est une grande consommatrice de logiciels : des efforts sont régulièrement faits pour encourager l’utilisation de logiciels libres, au moins depuis la circulaire Ayrault de 2012, efforts plus ou moins concluants. L’administration est aussi productrice de logiciels libres. La loi pour une République numérique du 7 octobre 2016 dit clairement que les codes sources des logiciels utilisés par un organisme public sont des documents administratifs relevant du régime de l’open data et à ce titre, tout citoyen peut demander que lui soit communiqué le /code source/ d’un logiciel commandé par l’administration.

Un exemple récent de projet libre mené par une administration est la distribution Clip OS publiée récemment par l’Agence nationale de la sécurité des systèmes d’informations.

Aperçu de la distribution Clip OS, orientée sécurité et publiée sous licence libre par l'ANSSI - © NextINpact

Ces efforts d’ouverture ne font que commencer : beaucoup d’administrations ne connaissent pas bien le libre ou l’open source, beaucoup de projets sont encore développés sans bien connaître les enjeux, les contraintes et les retombées potentielles de la démarche d’ouverture du code source.

Le programme « Entrepreneur·e d’intérêt général » donne une place importante au libre. Suivez-moi, nous allons voir ça dans le détail.

Faire de l’open source, ça s’apprend !

L’administration produit du logiciel libre soit en le commandant à un prestataire, soit en le développant elle-même. Peu d’administrations sont à même de mobiliser des ressources pour développer des produits en interne. L’intérêt du programme EIG est de mettre des compétences techniques au coeur des services et nous avons constaté les bienfaits de cette approche : les agents s’impliquent dans l’expression des besoins et dans l’amélioration des produits au quotidien, les EIG ont la satisfaction de tester tôt leurs produits, agents et EIG forment des équipes complémentaires en dialogue constant.

Nous sommes partis de l’idée que les EIG, qu’ils soient designers, développeurs ou datascientists, ont entendu parler de l’open source mais ne savent pas forcément quelles réalités ce terme recouvre : bien souvent, « open source » signifie qu’on peut utiliser une bibliothèque logicielle gratuitement.

Pour aller plus loin, nous avons fait de l’apprentissage collectif. D’abord en organisant deux ateliers ouverts aux EIG et aux mentors, l’un en mars pendant une session d’accompagnement, l’autre à la DINSIC quelques semaines plus tard, en compagnie de personnes d’autres administrations, pour entrer dans le détail des questions liées aux licences et pour s’approprier la politique de contribution de l’État aux logiciels libres, publiée en mai dernier.

La politique de contribution de l'état aux logiciels libres, publiée en mai 2018 et qui donne le cadre dans lequel les organismes publics peuvent contribuer à l'écosystème des logiciels libres.

J’ai aussi rédigé et partagé un document introductif autour de l’open source, maintenu une Foire Aux Questions, publié un mini-guide d’une page en PDF et répondu de temps à autres aux questions et aux coups de main sollicités par les uns et les autres.

Quels premiers constats après dix mois d’avancées sur le sujet ?

  1. Oui, un EIG peut ne pas bien savoir ce qu’est un logiciel libre et croire qu’il a le droit de copier du code trouvé sur Github sans se pencher sur les questions de licence…

  2. Oui, les licences libres c’est compliqué, mais dans les faits, avec un peu d’éclaircissements au bon moment, ce n’est jamais un point bloquant.

  3. La démarche paraît naturelle pour tous les EIG : aucun ne s’est plaint d’avoir à aller dans ce sens.

  4. Il y a encore beaucoup à faire pour que les mentors soient à l’aise avec le sujet, beaucoup de notions à expliquer et de nombreux doutes à lever sur le réel intérêt de tout ça.

Les EIG utilisent majoritairement des logiciels libres

Quels sont les outils/logiciels/cadriciels libres utilisés par les EIG ?

En vrac : angular.js, antizer, apache airflow, apache hive, atom, babel, bootstrap, bulma, chart.js, cider, clojure, clojurescript, d3.js, elasticsearch, emacs, embulk, flask, git, jupyter, laravel, leaflet, mongodb, neo4j, postgresql, pyspark, python, r, react.js, redash, rstudio, sass, scala, scikit-learn, tensorflow, tornado, vim, visual studio code, vue.js, webpack.

Ça fait beaucoup ! C’est le reflet d’un état de fait : impossible de nos jours de développer un projet logiciel sans recourir à un ou plusieurs logiciel libre, que ce soit comme outil de développement ou dans la « pile » logicielle du produit.

Les dépôts les plus populaires sur Github - © Github

Du côté des logiciels propriétaires, seulement trois : l’éditeur Sublime Text, la suite Adobe et la base de données Vertica. Quand les EIG ont à faire à d’autres outils propriétaires, ce sont ceux déjà en place dans leurs administrations (notamment des bases Oracle).

Les EIG ont produit des logiciels libres

Mais les EIG ne font pas que consommer du libre, ils en produisent ! Plusieurs catégories : des applications complètes, des bibliothèques logicielles, des outils génériques, des scripts et autres outils ad hoc.

Parmi les applications :

  • Open Scraper : un outil open pour récupérer les données de plusieurs sites en même temps et structurer les données obtenues.
  • Gobelins : un outil de diffusion et recherche pour les collections du Mobilier national.
  • Stalactite : un outil de visualisation, de classement et de traitement d’une arborescence qui contient tous types de documents (mails, images, documents, présentations, etc.).
  • Graph Explorer : un outil pour visualiser et explorer un large graphe de transactions financières.

Un aperçu de l'interface de Graph-Explorer

À noter les efforts faits sur ces projets pour bien communiquer : rédiger un bon README est une étape essentiel de la production d’un logiciel libre. Celui de Graph-Explorer, par exemple, guide l’utilisateur pas à pas dans l’installation et le test de l’application, augmentant les potentiels réutilisations.

Parmi les outils génériques, citons metadocs qui sert à intégrer plusieurs projets de documentation Sphinx, Open API Schemas to Markdown qui permet de générer de la documentation Markdown à partir de schémas suivant les spécifications Open API et spacy-lefff, un paquetage pour la lemmatisation et la détection de la nature d’un mot en français.

Gif animé présentant l'outil metadocs, servant à intégrer plusieurs projets de documentation Sphinx.

Parmi les bibliothèques, citons H3.Standard, pour faire la liaison (le binding) entre du C Sharp et la bibliothèque C développée par Uber pour de l’indexation géospatiale reposant sur un découpage hexagonal.

Et pour finir, quelques outils : un petit bot Twitter en Clojure, un module d’export Org-mode vers un rendu HTML sous forme de frise, un outil de prise en main d’une application utilisant python en backend et vue.js en frontend, une mini-application csv2html pour publier des csven datatables, une bibliothèque pour trouver les jours fériés en France et une autre pour les vacances scolaires… il y en a pour tous les goûts ! Tout cela ne demande qu’à être testé, débogué, utilisé… et à recevoir vos contributions : c’est libre !

EIG et l’écosystème du libre : apprendre et/à partager

Faire de « l’open source », c’est aussi participer à des communautés qui échangent, partagent, apprennent ensemble.

Ceux parmi les EIG qui en avaient le goût ont publié plusieurs entrées de blog techniques, d’autres sont allés poser leurs questions sur Stackoverflow, d’autres encore ont contribué à des logiciels libres existants. Et surtout, nous avons quelques fois reçu de l’aide de personnes extérieures à EIG, et ça c’est top !

Ces échanges de connaissance emmènent les EIG au-delà de leur domaine de compétences et de leur zone de confort. C’est ainsi que quelques uns ont participé à la journée organisée avec l’association Framasoft autour de l’écriture d’un clone de Storify ; que d’autres ont plongé les mains dans la base de données libre Wikidata lors d’un atelier à Etalab autour de la publication des données de data.gouv.fr ; que d’autres enfin ont découvert les projets Wikimédia lors d’une journée de visite des ateliers du Mobilier national et de mise en ligne de contenus sur Wikimedia commons. Autant d’occasions de rencontrer et de collaborer avec des acteurs importants du « libre ».

Des EIG designers ont aidé à concevoir un clone pour Storify lors de l'atelier mené avec Framasoft.

Le but était de sortir d’un point de vue strictement utilitaire qu’on a parfois en parlant « d’open source » et d’aller à la rencontre de communautés qui s’impliquent dans des aspects différents de cette culture libre.

Comment maintenir des projets libres ?

Les logiciels libres connus sont des biens communs numériques. Les « biens communs » supposent trois éléments : une ressource partagée (en l’occurence le code source), une communauté pour l’entretenir, et des règles de gouvernance que cette communauté se donne.

Les logiciels libres produits par les EIG ne sont pas encore de tels biens communs, car ils sont maintenus par une petite équipe et que les contributions extérieures ne sont pas assez importantes pour que la question de la gouvernance se soit posée. Mais cela laisse deux problèmes ouverts : comment assurer leur maintenance dans le temps ? pourquoi et comment les transformer en biens communs numériques ?

Le premier problème se pose d’ores et déjà pour les administrations. Le programme EIG a vu deux façons de l’aborder : la première est de faire monter en compétences les équipes techniques internes pour qu’elle soit en mesure d’être des power users de l’application, voire d’en assurer le débogage et l’évolution ; la deuxième est d’investir dans la création d’un collectif ayant pour mission de financer les évolutions à venir du logiciel. C’est le cas pour le logiciel Open Scraper, potentiellement utile pour d’autres administrations que celle qui a amorcé son développement dans le cadre du programme EIG.

Il faut noter ici que ces problèmes dépassent le cadre d’EIG et se posent pour tous les logiciels libres. Framasoft a lancé en 2017 la campagne Contributopia pour attirer l’attention des utilisateurs sur l’importance de contribuer et de pérenniser ces biens communs.

Les administrations sont un environnement intéressant à cet égard, car elles sont en position d’investir dans le développement de ressources mutualisées stables. Le changement de culture à opérer est double : passer de simple consommateur de logiciels libres à contributeur, et de contributeur à mainteneur d’une ressource numérique avec une gouvernance qui lui est propre, partagée par une communauté s’étendant au-delà des frontières de l’administration contributrice (le projet OpenFisca en est un bon exemple). Ces changements ont un coût et ils ne se feront pas spontanément. Le programme EIG montre une façon de les envisager : en mettant l’énergie de développeurs impliqués au coeur des services de l’administration.

Si la question de savoir comment produire et maintenir des logiciels libres dans l’administration vous intéresse, rendez-vous à Paris le 6 décembre au Paris Open Source Summit où la DINSIC organise les premières rencontres du libre dans l’administration.

À suivre !