Les nommés Supernul et Ijk-ref devaient être très fatigués pour avoir aussi peu réfléchi lorsqu'ils ont écrits leurs commentaires sur la disponibilité du code source aligné sur les lois. Je suppose qu'ils sont énormément plus réfléchis pour écrire du code.
Parce qu'en tant qu'informaticien mais avant tout en tant que citoyen, je leur signale quand même que leurs messages vont à l'encontre du principe fondamental de toute démocratie, qui est aussi le fondement de leur statut d'électeurs : une loi n'existe (et n'est donc applicable) qu'à partir du moment ou elle a été votée par une assemblée qui l'a discutée, acceptée et éventuellement amendée (et donc qui ne l'a pas rejetée).
C'est le principe à partir duquel s'explique l'indisponibilité des sources au moment du vote d'une loi, mais aussi la qualité médiocre du code, ce que je vais maintenant démontrer.
Je leur rappelle que la définition d'une tyrannie, ce sont des décisions "du seul fait du prince", c'est-à-dire de son caprice, que nul n'est autorisé à discuter.
Le pouvoir de refuser (vote de rejet) ou d'adoucir (amendements) a été confié à des assemblées de citoyens (démocratie directe difficile à mettre en pratique*) ou de leurs représentants élus à durée déterminée en conseils ou parlements représentatifs pour les collectivités plus nombreuses (Assemblée Nationale et Sénat constitient pour la République Française), pour éviter précisément les dérives extrêmes à la Daesh, à la Khaddafi ou à la Staline ou à la Franco.
En conséquence, avant le vote d'une loi, il n'existe qu'un projet de loi, c'est-à-dire légalement et constitutionnellement "du vent", mais très souvent une orientation quand même assez précise mais non encore stabilisée, donc au mieux une hypothèse de travail pour un développeur.
Il est dès lors évidents que la maîtrise d'ouvrage des services informatiques de la DGFiP ne peut rédiger des spécifications fonctionnelles définitives qu'après le vote (la loi étant elle-même une spécification précise du moteur de calcul de l'impôt, dans sa rédaction juridique, mais illisible par des développeurs **). Les développeurs ne peuvent adapter leur code que dans un second temps, lequel nécessite ensuite des tests très lourds, parce qu'il ne vous aura pas échappé que le législateur (nos élus) ne manque pas d'imagination et qu'il a prévu et accumulé dans le temps d'innombrables mesures qui rendent le Code général des impôts extrêmement complexe (au niveau mondial, la complexité des réglementations fiscales est en général fonction du niveau de démocratie et, dans une tyrannie, on a souvent des mesures beaucoup plus simples, mais aussi énormément plus incohérentes et injustes, du fait précisément de l'impossibilité de remettre en cause le "caprice du prince").
Dans un tel contexte, il va sans dire que les lois fiscales devant être appliquées dans les logiciels dans des délais très contraints, les développeurs chargés du moteur de calcul de l'impôt sur le revenu travaillent forcément sur les 2 critères ultra-prioritaires de "qualité" suivant : (1) fournir à temps un code qui (2) calcule correctement des impôts. Dans un tel contexte qui s'oppose aux pratiques "industrielles", les autres qualités qu'on peut attendre d'un code bien écrit sont tous sauf bloquants pour la mise en production (cohérence de nommage des variables, commentaires dans le code etc. logiquement signalés comme problématiques dans d'autres commentaires sur ce moteur de calcul).
Que dire des autres absurdités ? "Voter une loi à condition que le code source soit déjà disponible" ? Cela impliquerait soit que les lois fiscales soient votées au moins un an avant leur année de mise en application, ce qui restreindrait de fait la capacité d'adaptation des politiques au contexte socio-économique, soit que les administrations seraient en mesure d'appliquer une loi à l'instant-même où elle est soumise au vote, ce que les Français n'ont pas vu depuis l'ère nazie et l'Europe de l'Est depuis l'ère soviétique.
Quand une administration s'est mise en état de mettre en œuvre une mesure le jour où elle est soumise au vote, c'est qu'elle travaille indépendamment du Parlement, donc que le vote du Parlement n'est pas un vote, mais juste un enregistrement (on parle alors de Parlement croupion, ce qui était par exemple le cas dans les régimes de modèle bolchevique). Dans une logique extrême d'économie financière, on pourrait alors carrément le supprimer, l'une des premières mesures d'ailleurs du régime nazi en 1933...
Et non, l'administration fiscale n'utilise pas ce délai pour modifier des taux et des formules de calculs différents de ce que le législateur a voté. Ce serait extrêmement idiot car cela annulerait l'impôt pour toute personne qui en contesterait la légalité devant un tribunal ! Vous pouvez être sûr que ce qui est mis en production est conçu pour éviter ça et donc pour être rigoureusement fidèle à la loi telle que le Parlement l'a votée.
C'est donc une très bonne chose que les administrations ne travaillent que lorsque les parlementaires ont tranché les lois après les avoir débattues dans un cadre public.
Confrères développeurs, est-ce que vous ne percevez pas que ce débat parlementaire en matière de définition de la législation partage une logique commune avec les pratiques de tests par la maîtrise d'ouvrage et de pear review en matière de développement ?
La différence, c'est que la législation a un impact beaucoup plus important sur la vie des gens. Son processus de validation est donc beaucoup plus scruté, public***, et beaucoup plus lourd que pour du code et ceux qui sont chargés de la mettre en œuvre la législation (les administrations) ne peuvent être autorisés à travailler qu'en fonction de lois votées.
En espérant avoir été assez clair ...
* C'est possible dans des collectivités locales (on en voit en Suisse), mais on ne peut réunir tout un peuple en permanence...
** A vrai dire, le Code général des impôts est difficile à lire même pour les fiscalistes eux-mêmes, raison pour laquelle l'administration fiscale tient à jour, un guide pratique ("Précis de fiscalité", également consultable par tout un chacun dans la partie Documentation sur le portail impots.gouv.fr) pour son travail quotidien, qui présente sa reformulation opérationnelle de la législation courante et qui constitue déjà une forme de spécification plus lisible (mais le fondement légal reste le Code général de Impôts).
*** Le débat parlementaire n'est en aucun cas confidentiel et les critiques de l'opposition parlementaires sont souvent les premiers qui portent auprès du grand public (via les média) les inconvénients des projets de lois.
Partager