Le Sénat impose l’ouverture du « code source » de chaque projet de loi de finances

Le Sénat impose l’ouverture du « code source » de chaque projet de loi de finances

La couleur d'Éblé

Avatar de l'auteur
Xavier Berne

Publié dans

Droit

11/12/2017 7 minutes
26

Le Sénat impose l’ouverture du « code source » de chaque projet de loi de finances

Le Sénat a adopté, vendredi 8 décembre, un amendement obligeant l’administration fiscale à dévoiler pour chaque projet de loi de finances le « code source » traduisant les mesures envisagées par l’exécutif. Le gouvernement s'y était pourtant opposé, au motif qu'une telle demande serait « impossible à mettre en œuvre ».

« Il faut ouvrir l'accès aux données et accorder aux parlementaires, mais aussi à tous les acteurs de la vie économique et sociale, ainsi qu'aux universitaires et chercheurs, la possibilité de traiter eux-mêmes les données, de faire leurs propres simulations, de mesurer l'incidence de la modification de tel ou tel paramètre d'une réforme fiscale. » Le sénateur Vincent Éblé, président (PS) de la commission des finances du Sénat, avait visiblement bien préparé sa montée au créneau, opérée dans le cadre des débats autour du projet de loi de finances pour 2018.

Par voie de communiqué, le parlementaire rappelait dès jeudi que pour l’instant, « seules des initiatives très ponctuelles ont eu lieu en matière de mise à disposition d’algorithmes publics ». Ce fut notamment le cas pour Admission Post-Bac (APB), dévoilé en octobre 2016 – au format papier ! – par le ministère de l’Éduction nationale, ou pour le calculateur d’impôts sur le revenu (dont une nouvelle version a été mise en ligne il y a quelques semaines par l’administration fiscale).

Un effort de transparence pour faciliter les simulations et éclairer les débats

Alors que les codes sources sont officiellement des « documents administratifs » communicables à tous, sur simple demande (depuis l’entrée en vigueur de la loi Numérique), Vincent Éblé voudrait que l’administration fiscale aille bien plus loin qu’une simple ouverture annuelle de son logiciel de calcul de l’impôt sur le revenu.

Son amendement prévoit ainsi que soit jointe à « tout projet de loi de finances et projet de loi de finances rectificative » une « annexe explicative contenant le code source traduisant, en langage informatique, chacune des dispositions proposées relatives à l’assiette ou au taux des impositions de toutes natures ». En clair, il s'agirait de proposer, dès le dépôt du nouveau budget, des lignes de codes correspondant aux réformes fiscales imaginées par l'exécutif.

Pour chaque modification apportée à une imposition, les pouvoirs publics seraient très exactement tenus de fournir :

  1. Le code source « correspondant à l’ensemble des dispositions législatives et réglementaires en vigueur pour cette imposition et des instructions et circulaires publiées par l’administration qui portent sur cette imposition ».
  2. Le code source « correspondant aux dispositions législatives proposées et, à titre facultatif, aux dispositions réglementaires, instructions et circulaires envisagées ».
  3. Les « données synthétiques et les hypothèses retenues pour évaluer les conséquences économiques, financières, sociales et environnementales, ainsi que des coûts et bénéfices financiers attendus des dispositions envisagées pour chaque catégorie d’administrations publiques et de personnes physiques et morales intéressées, en indiquant la méthode de calcul retenue ».

Tous ces fichiers devraient être publiés « sous forme électronique, dans un standard ouvert, aisément réutilisable et exploitable par un système de traitement automatisé » – conformément aux principes de l’Open Data. Et ce à compter du dépôt du projet de loi de finances initiale pour l’année 2019 « au plus tard ».

Dans l’hémicycle, Vincent Éblé a fait valoir qu’une telle réforme « permettrait de nourrir le débat public et d'élaborer la loi fiscale de manière plus transparente et éclairée ». Selon lui, cela contribuera aussi « à clarifier ce que le gouvernement propose au législateur de voter, car le langage informatique permet de lever des ambigüités parfois permises par les rédactions « littéraires » ».

« La mesure proposée est irréaliste », clame le gouvernement

Si cette réforme a obtenu le soutien du rapporteur Albéric de Montgolfier (LR), le gouvernement s’y est quant à lui vivement opposé. « La mesure proposée est irréaliste, dès lors que le code informatique est mis au point en aval de l'adoption de la loi, pour tenir compte des dispositions effectivement adoptées » a ainsi objecté Delphine Gény-Stephann, secrétaire d'État auprès du ministre de l'Économie et des finances.

Et pour cause : le logiciel de calcul de l’impôt sur le revenu est par exemple mis à jour chaque année, à partir de la loi fraîchement votée. Établir une version correspondant au projet de loi de finances reviendrait de ce fait à imposer la création d'une sorte de version « bêta », laquelle devrait être systématiquement corrigée pour prendre en compte les (nombreux) amendements adoptés suite aux débats parlementaires.

« Cette proposition semble impossible à mettre en œuvre », a ainsi soutenu Delphine Gény-Stephann, sur le banc du gouvernement : « À titre d'exemple, l'application de gestion des relations avec les usagers de la fiscalité professionnelle compte environ quatre millions de lignes de code, et une modification législative peut nécessiter sa modification dans quelques milliers de programmes unitaires. Ce temps technique consécutif à l'adoption de la loi est nécessaire pour adapter les codes informatiques. »

Ces arguments n’ont cependant pas convaincu Vincent Éblé. « Je suis surpris par la réponse du gouvernement, car cette proposition permettrait une modernisation considérable de nos méthodes de travail et diminuerait la charge de travail des services de Bercy, qui sont aujourd'hui tenus de nous répondre de façon incessante », s’est-il justifié.

Les limites de la loi Numérique

« Nous avons besoin de ces codes sources pour travailler au quotidien », l’a enfin rejoint la sénatrice Nathalie Goulet. La centriste a appelé le Sénat à envoyer « un signal fort » étant donné que « plusieurs décrets d'application » de la loi Numérique n’ont toujours pas été publiés par le gouvernement. Pourtant, si un tiers environ de ces décrets sont effectivement attendus, aucun ne manque à l’appel concernant l’ouverture des codes sources publics.

Tout citoyen est ainsi en droit de demander un code source à une administration (voir à ce sujet notre guide « Comment faire une demande « CADA » d’accès aux documents administratifs »). Mieux encore : si l’administration en question – ministère, autorité indépendante, collectivité territoriale de plus de 3 500 habitants... – compte plus de 50 agents ou salariés, celle-ci est tenue de diffuser ce programme sur Internet, afin qu’il soit disponible pour tous, ainsi que ses « mises à jour ».

Or pour l’instant, le problème est que les administrations ont bien du mal à respecter ce principe dit d’Open Data « par défaut » (voir notre article).

Issue très incertaine pour ces dispositions

Hasard du calendrier, l'amendement de Vincent Éblé a été adopté deux jours après que la mission Etalab a lancé un « appel à commentaires » sur la politique de contribution aux logiciels libres de l’État. Chacun peut s’exprimer jusqu’au 6 janvier 2018 sur la question (notamment) de l’ouverture des codes sources publics.

D’ici là, les parlementaires auront tranché sur le devenir de cet amendement. Soit députés et sénateurs arrivent à trouver un compromis sur l’ensemble du projet de loi de finances pour 2018 en commission mixte paritaire. Soit le dernier mot reviendra à l’Assemblée nationale. Dans un cas comme dans l'autre, le soutien des élus du Palais Bourbon sera indispensable pour que cette réforme subsiste.

26

Écrit par Xavier Berne

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Un effort de transparence pour faciliter les simulations et éclairer les débats

« La mesure proposée est irréaliste », clame le gouvernement

Les limites de la loi Numérique

Issue très incertaine pour ces dispositions

Commentaires (26)


C’est débile comme demande comme bien expliqué par le gouvernement.



Il s’agirait d’écrire à l’avance un code que l’on jetterait ensuite en partie puisqu’on l’aurait modifié.

Ou bien le gouvernement aurait beau jeu de rejeter les modifications des parlementaires avec comme argument d’éviter les modifications du code présenté en même temps que le budget.



En plus, je me demande combien de parlementaires seraient capables de lire ce code, ce qui prouve l’inutilité d’une telle mesure.



Par contre, publier le code dès qu’il passe en production, pourquoi pas.


tu ne dois pas etre au courant, le code c’est assimilable a un fichier ascii/texte.





  1. cela ne se jette pas comme du papier car c’est immateriel

    2)si c’est modifié cela s’appel un patch

  2. une fois en prod c’est trop tard. relis l’argument du sénateur

     

    et pour le 2 je t’invite a aller lire kernel.org avec les ouatmille patch qui ont permis a un petit projet d’etre toujours a jours et d’évoluer pas trop mal.


Quel code tu fournis ?

Celui qui est en prod, tu le dis, c’est trop tard, celui en cours de développement lui n’est justement pas terminé, donc trop tôt.

Après, fournir directement le dépot Git ou SVN résoudrait quelques problèmes.


À fonctionnement constant (c’est à dire : mise à jour d’une usine à gaz par une nouvelle usine à gaz) ça risque de coûter vraiment cher à maintenir (prise en compte en temps réel pendant les débats des modifications dans du code source, il va falloir que l’administration se mette sérieusement à l’agilité !).

Si c’est accompagné d’une simplification législative, permettant une simplification drastique du logiciel ça serait une excellente idée. Mais ne rêvons pas, nous sommes en France…


Merci, de ta condescendance, mais raté, l’essentiel de ma vie professionnelle a été dans le logiciel. J’ai peut-être bien plus d’expérience que toi sur ce sujet vu mon âge.



Quand je parle de jeter, c’est bien sûr une image, mais quand on supprime ou modifie des lignes de code, on “jette” bien du travail aui a été fait pour rien, puisque je le répète, nos parlementaires ne seront pas dans leur grande majorité capables de lire ce code. Et Vincent Éblé, licencié en droit et ancien élève de Science-Po, ne doit pas faire exception, il fantasme quand il argumente.



Je maintiens ma position.



La loi est elle aussi écrite sous forme de patch, et c’est illisible en tant que tel. Ce qui est lisible, c’est le code ou la loi modifiés. Un patch, permet de voir une évolution, pas de voir quel traitement est fait globalement et cela autant pour du code que pour la loi.


Notez ce jour d’une pierre blanche, NXi et des lecteurs sont d’accord avec le gouvernement ^^


J’ai peut être lu trop rapidement mais si je comprend bien on parle bien de juste forcer le legislateur à soumettre un Pull Request par projet de lois ?

Tout le travail initié sur le code civil à s’inspirer:https://github.com/steeve/france.code-civil



Je trouve justement que c’est un trés bon travail de pouvoir suivre de manière automatisée les changements et de pouvoir simplement l’enrichir avec -exactitude de forme-.








tazvld a écrit :



Quel code tu fournis ?

Celui qui est en prod, tu le dis, c’est trop tard, celui en cours de développement lui n’est justement pas terminé, donc trop tôt.

Après, fournir directement le dépot Git ou SVN résoudrait quelques problèmes.





justement ce pourrait être la solution, d’avoir un GIT / SVN pour tous les codes sources des administrations.



Auto réponse, oui j’ai lu trop vite, on parlait bien de chantier algorithmique préliminaire. Donc en effet le propos de Fred42 est adéquat. On ne va pas fournir le code avant les specs.


Il s’agit de contraindre l’exécutif, donc le gouvernement pour tout projet de loi de finances et projet de loi de finances rectificative, pas pour n’importe quel projet de loi.



Par contre, je ne sais pas dire de façon sûre s’il veut le patch ou le code modifié, mais il s’agit du calculateur des impôts et non pas du texte de loi qu’ils ont déjà au moment des débats.



Cela n’a donc rien à voir avec le travail que tu cites sur le code civil.



Édit :









Sheepux a écrit :



On ne va pas fournir le code avant les specs.





Voilà bien résumé, j’ai failli l’écrire dans mon premier message. Mais, les petits jeunes n’ont pas l’air d’accord. <img data-src=" />









Sheepux a écrit :



Auto réponse, oui j’ai lu trop vite, on parlait bien de chantier algorithmique préliminaire. Donc en effet le propos de Fred42 est adéquat. On ne va pas fournir le code avant les specs.







j’ai des clients qui me demande de dev avant le cahier des charges… pour dire <img data-src=" />



Sinon, oui fred42 a raison bien entendu. Le but de la manœuvre est pouvoir exploiter le code quand celui est exploitable. AMHA il s’agit du code du calculateur.



Remarquez, ils ne le fournissent pas car ça soit être un code bâtit sur de l’empilement de vieux code legacy extrait de langages obsolète issus d’une stack technique qui n’existe plus… je te dis pas le bordel, du coup on se rendrait compte des bugs et des conneries de calcul, genre on se fait troué le derch tous les ans <img data-src=" />



Vu qu’on parle de budget et que les changements se font pas à la légère, le Ministère des Finances doit de toute façon avoir du code pour faire des simulations sur l’effet de la réforme. Certainement pas le code définitif mis en production, mais en tout cas quelque chose qui n’est pas aujourd’hui mis à disposition des parlementaires et des citoyens. Déjà s’ils publient ça, c’est une avancée.



Ceci dit le principe est intéressant. Vu que la loi est ensuite traduite en code, c’est une bonne chose que les projets de loi soient accompagnés des pull request du code en question. Si les amendements des parlementaires sont aussi accompagnés de modifcations de codes correspondants, ça compliquera pas le boulot des développeurs du ministère. Mais ça créera des emplois d’assistants parlementaires - dévrloppeurs ^^



Il faut se référer à la bible en cas de soucis:

On a toujours besoin d’un miracle








Rozgann a écrit :



Vu qu’on parle de budget et que les changements se font pas à la légère, le Ministère des Finances doit de toute façon avoir du code pour faire des simulations sur l’effet de la réforme. Certainement pas le code définitif mis en production, mais en tout cas quelque chose qui n’est pas aujourd’hui mis à disposition des parlementaires et des citoyens. Déjà s’ils publient ça, c’est une avancée.





Les simulations que fait le ministère sont des simulations macro bâties sur des chiffres globaux, ça n’a donc rien à voir avec le calculateur des impôts pour chaque individu.

Il me semble que les étude d’impact doivent être fournies avec un projet de loi, donc le résultat de ces simulations doit être fourni.









nikon56 a écrit :



justement ce pourrait être la solution, d’avoir un GIT / SVN pour tous les codes sources des administrations.





Bon, ben il reste à former les agents à cette outils et leur demander de l’utiliser (et ce gentiment).









Sheepux a écrit :



Il faut se référer à la bible en cas de soucis:

On a toujours besoin d’un miracle







oui hihi <img data-src=" />



J’ose espérer qu’ils utilisent un outil de gestion de version, même plus ancien, sinon, bonjour le bordel !


Mais ce sont les simulations qui sont intéressantes puisqu’elles sont la base des calculs ou qu’elles les justifient. Je trouve que c’est une demande plutôt intéressante justement.


4 million de lignes de code pour un sort de gestion fiscale… <img data-src=" />


4 million de lignes de code pour un sort de gestion fiscale… <img data-src=" />


La seule solution possible pour re rapprocher de ce que le senat propose, c’est de tout mettre sur un repo&nbsp; github pour voir en temps reelle les modifications apportes au code. Mais cela parait vraiment realiste apres la l’adoption de la loi et avant la mise en prod, ne serait ce que pour les bugs et failles pouvant se trouver dans le code.&nbsp;


Ce serait drôle de trouver des petites règles pour les copains


Ce que le Sénat suggère paraît impossible, mais pas pour des raisons techniques. Les outils informatiques existent : il s’agit d’outils de gestion de versions. Ainsi, chaque loi pourrait effectivement être proposée en tant que code source, commenté, et chaque amendement pourrait être une requête de modification.



Toutefois, pour ce que je comprends de la création de la loi (à savoir pas grand chose, il faut bien l’avouer), cela ne correspond absolument pas à la manière dont elle est élaborée, qu’il s’agisse du code des impôts ou d’autre chose. Je veux dire : la loi est plutôt un cahier des charges ouvert à suggestions et modifications au Parlement ; ensuite, une fois votée, la loi est générale et débouche sur des décrets d’application ; à leur tour, ces derniers débouchent sur des circulaires ; enfin, ces circulaires finissent à un moment par devenir du code source, puis exécutable. Proposer du code dès le départ réclamera aux députés et sénateurs d’embaucher des informaticiens dans leurs équipes, ce qu’ils n’envisagent sans doute pas.



Mais imaginons. En effet, pourquoi pas faire des simulations ! Mais cela suppose de pouvoir reconstituer l’infrastructure matérielle et logicielle mise en place par le Ministère des Finances qui fait tourner ce code, avec l’ensemble de ses dépendances. Cela suppose que cela soit possible. Je ne serais guère étonné que cette infrastructure inclus des logiciels et des matériels qui ne sont ni fabriqués, ni documentés, et fonctionnent comme des boîtes noires, sans que personne ne sache vraiment à quoi elles servent, mais puisqu’elles fonctionnent, personne ne prend le risque d’y toucher. Et là, on peut bien se demander comment fera un bon millier de parlementaires pour émuler cette infrastructure en vue de la modifier, de la corriger, de la patcher.



Mais avant de parler de code source, pourquoi pas, en effet, faire passer l’élaboration des lois via un système de versioning. Pourquoi pas git. Il serait très bon dans cet exercice. Avec un dépôt central hébergé en France, de préférence. Question de souveraineté nationale. Et ce ne sont pas les prestataires de poids qui manquent, dans notre pays !


Pas d’accord pour ton point sur les simulations et l’infrastructure demandé à chaque parlementaire car tu peux très bien envisager un pipepline partagé par le ministère qui quand tu lui soumet une pullrequest lancera un build automatiquement, déploiera sur un env de test généré à la volé (#docker) et donnera en sortie un rapport financier (et tu peux refacturer le cout du test)

Cependant entre faisable et durée de mise en place il y a aussi un monde <img data-src=" /> Mais en effet, comme tu l’as souligné, cela fait faire un travail d’informaticien en amont sur des pistes non validées car le premier point de départ du problème c’est bien que la loi est plus un repère de specs qu’un repère de code.



Mais si on y regarde bien il y a un débat intéressant sur: sommes nous capable de créer une librairie “loi de finance” qui serait publique et qui permettrai de lancer des simulations et étudier l’impact de plusieurs hypothèses et de pouvoir les comparer.

La réponse à l’instant T, il me semble qu’on en est encore loins mais je trouve qu’il y a quelque chose d’intéressant à ce modèle “ouvert” de calcul financier d’état. En plus avec tout le travail en cours sur les algorithmes auto-apprenant/évolutionniste/auto-évolutifs/génétiques (dit “IA”) cela peut donner des études avec des pistes non prévues.

Une fois ce genre d’outil en place, les lois seraient des pullrequest à approuver. Les débats en assemblé seraient sur l’acceptabilité de telle ou telle évolution de l’algo. Par contre cela reporte le cout de l’étude/mise en place au demandeur. Pas inintéressant, deplus que cela n’empêche pas de “commander” une PR après une piste dans un débat et donc de faire comme le modèle actuel (et éventuellement de rejet la PR après :)).


Oui, pour avoir travaillé avec l’administration (tout ministère sauf Défense), y a DES gestionnaires de versions (tfs,cvs, svn et un peu de git) mais chaque administration a sa “propre gestion”. Il commence à apparaître des lignes directrices communes mais c’est un long chantier.


Tu as sans doute raison, je me suis probablement emporté en suggérant que chaque député ou sénateur ait besoin de répliquer à l’identique l’ensemble de l’infrastructure logicielle et matérielle du Ministère des Finances pour effectuer une simulation. Cependant, je crains que celle-ci soit trop spécifique pour être aisément reproduite, ou encore qu’elle puisse accueillir du code tiers dans un but de simulation, que ce code vienne des parlementaires, des universitaires ou de la société civile (aka “les méchants lobbies”).