Vous connaissez sans doute la fusée européenne Ariane 5, qui est l’un des lanceurs les plus fiables du monde dans sa catégorie1.
Si vous vous intéressez un minimum au spatial ou à l’informatique, vous savez aussi sans doute que son premier lancement fut un échec, parfois qualifié de « bug informatique le plus couteux de l’histoire » et généralement raconté à peu près ainsi :
Pour des raisons de coûts, un code dans les systèmes informatiques qui gèrent le guidage a été copié de Ariane 4 à Ariane 5. Or le logiciel Ariane 4 utilisait des nombres entiers de 16 bits, tandis que les capteurs Ariane 5 envoyaient des nombres flottants de 64 bits. Comme Ariane 5 est beaucoup plus puissante que Ariane 4, le capteur a renvoyé une valeur qui tenait très bien dans un flottant de 64 bits mais pas dans un entier de 16 bits. Ça a provoqué une erreur de conversion, donc le logiciel a cru que la fusée allait dans une mauvaise direction, et a ordonné une correction massive alors qu’en réalité tout allait bien. Résultat, la fusée est partie en travers, a commencée à se désagréger et s’est auto-détruite.
Si la personne qui vous raconte ça est à un poste technique, il est fréquent qu’elle rajoute :
Si les décideurs avaient écouté les équipes techniques au lieu de décider de grappiller un peu d’argent en faisant un copier/coller, ça ne serait pas arrivé.
Sachez-le :
Cette explication est fausse, ou au moins très, très incomplète.
Le rapport sur l’accident de la fusée Ariane 5, vol 501 est public et nous expose les causes réelles de celui-ci. Et elles sont beaucoup plus profondes et complexes qu’un simple bug informatique ; les procédures de conception, de qualification et de tests sont notamment mises en cause.
Et en particulier, si l’erreur informatique est bien un déclencheur, elle aurait pu être traitée et n’est pas directement la cause de la perte de la fusée. Le paragraphe « 3.2 Cause de l’accident » dit précisément ceci :
C’est la perte totale des informations de guidage et d’attitude 37 secondes après le démarrage de la séquence d’allumage du moteur principal (30 secondes après le décollage) qui est à l’origine de l’échec d’Ariane 501. Cette perte d’informations est due à des erreurs de spécification et de conception du logiciel du système de référence inertielle.
Les revues et essais approfondis effectués dans le cadre du programme de développement d’Ariane 5 ne comportaient pas les analyses ou essais adéquats du système de référence inertielle ou du système complet de contrôle de vol qui auraient pu mettre en évidence la défaillance potentielle.
(Un autre paragraphe un peu plus tôt dans le document insiste sur le fait que cette erreur n’est pas la cause directe de l’échec du lancement).
Vous êtes plusieurs à me l’avoir signalé : la citation ci-dessus parle bien d’information d’attitude et non d’altitude. Ça n’est pas une coquille.
L’attitude, en aérospatiale, c’est l’orientation du vaisseau par rapport à une référence. C’est particulièrement important en l’absence de gravité parce que plus rien ne donne de direction « naturelle » au vaisseau, qui peut très bien pointer dans une direction et avancer dans une autre – et il vaut mieux éviter d’allumer les moteurs si le vaisseau n’est pas dans la direction voulue…
En réalité, on retrouve ce genre de problèmes multi-factoriels dans pratiquement tous les gros échecs de systèmes industriels. Mais il est beaucoup plus simple d’accuser le seul management qui fait de l’économie à outrance (si on est technique) ; ou la seule technique qui ne sait pas développer ou tester (si on est dans le management).
Je ne peux que vous recommander la lecture du rapport si le sujet vous intéresse : il est pas très long, assez facile à lire et très instructif, notamment sur les évènements déclencheurs de catastrophes et sur les chaines de confiance douteuses qui ont conduit à ne pas tester des éléments testables.
- Au point qu’on lui a confié le lancement du Télescope James Webb, un jouet à dix milliards (pas millions : milliards) de dollars US.↩
Icône d’après DLR/Thilo Kranz (CC-BY 3.0) 2013