Mes thématiques de recherche s’inscrivent, de façon générale, dans la thématique des systèmes informatiques critiques : par quels moyens mathématiques, algorithmiques, logiques… on peut arriver à développer des logiciels fiables pour commander des systèmes dont les pannes peuvent avoir des conséquences catastrophiques. De 2002 à 2007 j’ai travaillé sur le logiciel Astrée, à l’origine une commande d’Airbus, division avionique. J’ai eu par la suite d’autres occasions de discuter avec des ingénieurs de cette entreprise. Depuis quelques années, je travaille à des extensions du compilateur CompCert pour des processeurs utilisables dans des applications critiques, notamment pour des composants d’aviation.

J’ai eu l’occasion de discuter avec d’autres industries : nucléaire, ferroviaire (contrôle-commande dans les trains, mais aussi de systèmes d’aiguillages), automobile, spatial… Bien entendu, chacune de ces industries a ses propres contraintes, différentes de celles des autres : en cas de problème sur un système de traction de train, on peut au pire arrêter le train en pleine voie, alors qu’on ne peut pas arrêter un avion en vol… C’est là sans doute ce qui rend l’aviation civile si spéciale : un dysfonctionnement sévère peut tuer en une fois plusieurs centaines de personnes, et cela fera les titres de la presse mondiale. Certes, l’explosion d’Ariane V en 1996 avait attiré l’attention, mais il n’y avait personne à l’intérieur.

Je voudrais évoquer aujourd’hui une affaire qui provoque en moi une certaine indignation : les catastrophes aériennes de Boeing 737MAX.

Il est bien entendu difficile de commenter une affaire que l’on ne connaît que par la presse. Toutefois, se dessine au sujet des accidents du Boeing 737MAX un inquiétant récit :

  1. Le constructeur a installé dans les Boeing 737MAX un dispositif informatisé de compensation des différences aérodynamiques entre la génération précédente de 737 et celle-ci, mais en minimisant l’importance de ce dispositif dans la documentation remise aux autorités et aux compagnies aériennes, ceci afin que ces dernières n’aient pas à faire suivre à leurs pilotes une formation trop poussée à leur nouvel avion, et afin que les autorités n’exigent pas des tests trop poussés.

  2. Le constructeur a minimisé auprès des autorités la sévérité d’éventuels dysfonctionnements de ce dispositif, argumentant qu’il se trouverait au niveau B ou C de criticité (un dysfonctionnement peut au pire provoquer des blessures, voire un mort) et non au niveau A (un dysfonctionnement peut produire une catastrophe aérienne).

  3. Il aurait pour cela bénéficié de l’indulgence ou de l’aveuglement de la FAA (l’agence fédérale étatsunienne chargée de certifier les modèles d’avion), qui lui faisait confiance au point de lui déléguer une partie du processus de certification.

  4. Le dispositif informatisé a été développé d’une façon éloignée de ce qui se fait d’habitude en matière de logiciels très critiques, et par ailleurs ne mettait pas en œuvre les précautions habituelles en pareille matière, notamment la redondance de senseurs (par exemple, prendre en compte 3 dispositifs différents pour avoir 1 mesure, afin de se prémunir de la panne d’un des dispositifs).

  5. Ces choix ont été motivés par le désir de proposer à moindres frais et rapidement un nouvel appareil pour concurrencer l’A320neo.

Bien entendu, je peux me tromper : je ne suis pas de l’industrie de l’aviation, je n’ai pas accès sur cette affaire à des sources spécifiques. Certaines allégations vont plus loin : on dit que la rédaction de ce logiciel aurait été sous-traitée en Inde à des programmeurs inexpérimentés en matière de logiciels critiques, mais bon marché comparés aux programmeurs américains ; mais on dit également que cette sous-traitance portait sur d’autres logiciels. Il est difficile de démêler sur ces sujets la défense de la fiabilité des systèmes de ce qui peut relever du protectionnisme ou de la défense d’intérêts catégoriels (qui ont leur légitimité, mais qu’il ne faut pas confondre avec la sécurité).

Les erreurs informatiques existent, et il n’est pas criminel d’en commettre. Moi-même je fais des bugs, comme tout le monde. C’est justement pour cela qu’il existe des standards, des processus sévères, spécifiques aux logiciels avioniques. Là, ce qui a été dit dans la presse pointe dans le sens d’une ignorance délibérée des standards habituels au motif qu’ils sont trop lourds, trop coûteux — pour une raison de profit — et d’un certain laxisme des autorités.

La grande presse américaine parle maintenant de « crise » chez Boeing, avec le renvoi du président-directeur général. Ce vocabulaire me dérange quelque peu. On pourrait croire que le problème, c’est la perte de profit pour Boeing, la crise que traverse sa direction — oubliant que cette crise est due à la mort de centaines de passagers et de membres d’équipage, elle même probablement due à des choix court-termistes de privilégier les profits à la sécurité, avec d’éventuelles complicités gouvernementales. C’est cela, le vrai sujet…