Résumé : la tragédie du vol Iran Air 655 et l’importance de l’UI
- Le 3 juillet 1988, le croiseur lance-missiles de l’US Navy USS Vincennes a abattu le vol Iran Air 655, causant la mort de toutes les personnes à bord.
- Le Vincennes, équipé d’Aegis, alors le système de défense antiaérienne le plus avancé au monde, a détruit par erreur un unique avion civil, ce qui a soulevé des questions sur les causes de cette méprise.
- Le rapport officiel de l’US Navy a conclu à une erreur de l’équipage plutôt qu’à une défaillance du système Aegis, mais les défauts d’interface utilisateur d’Aegis révélés par la suite laissent penser qu’ils ont contribué à l’accident.
L’avis de GN⁺
Le point le plus important de ce texte est de souligner à quel point la conception de l’interface utilisateur (UI) est cruciale. Même dans des situations extrêmement stressantes comme le combat, les systèmes doivent être conçus pour permettre aux utilisateurs d’obtenir des informations claires et exactes. Cet article offre un cas d’étude intéressant non seulement pour l’ingénierie logicielle, mais aussi pour des professionnels de nombreux autres domaines, et montre comment une mauvaise conception d’UI peut entraîner des conséquences graves.
1 commentaires
Commentaires sur Hacker News
Intéressant de voir cette histoire sur HN. Je travaille actuellement dans l’entreprise qui a repensé l’HMI/UI après cet accident, et plus précisément, cet événement a été à l’origine de la création de l’entreprise
Après l’accident, le commandement de l’US Navy à San Diego a contacté des professeurs de sciences cognitives et de psychologie de l’UCSD qui étudiaient la prise de décision à haut risque sous stress et charge cognitive. La Navy a été profondément impressionnée par leur analyse détaillée et leurs recommandations, et a continué à collaborer avec eux sur d’autres projets
Au final, le volume de travail pour la Navy est devenu si important qu’ils ont créé une entreprise centrée sur l’ergonomie humaine et la conception d’interfaces pour les systèmes complexes. Les deux cofondateurs d’origine ont récemment pris leur retraite, et le nouveau CEO est l’ancien commandant de l’USS Zumwalt
les enjeux y sont un peu moins mortels, mais restent importants
Un autre bon article sur cet accident se trouve sur l’excellent blog Admiral Cloudberg :
https://admiralcloudberg.medium.com/the-long-shadow-of-war-t...
Un autre article de la même série concerne aussi une erreur d’UX, à savoir le vol Air France 447
Cet accident est en partie dû au fait que si les deux entrées des manches différaient, le système en faisait la moyenne. Ce n’était pas comme chez Boeing à l’époque, où les commandes étaient physiquement reliées, ce qui rendait des entrées contradictoires plus difficiles et permettait à l’autre pilote de sentir que son collègue poussait ou tirait sur le manche
Lors du décrochage, un pilote a correctement baissé le nez pour en sortir, tandis que l’autre a cabré l’avion, ce qui semble instinctivement juste mais est en réalité faux. Les entrées se sont annulées, avec très peu d’effet ; à la fin, ils tiraient tous les deux, mais ce n’était pas le cas au début, quand le problème aurait encore pu être résolu
https://admiralcloudberg.medium.com/the-long-way-down-the-cr...
Le commandant était en pause et n’est revenu dans le cockpit qu’au tout dernier moment ; il a fini par comprendre le problème, mais il était déjà trop tard
« Continue à tirer », a dit Dubois ; on peut se demander si ce n’était pas une forme de résignation ironique face au destin
L’exception célèbre est le MCAS du 737 MAX, mal documenté et mal couvert en formation, et il me semble que des Boeing plus récents comme le 777 ou le 787, en fly-by-wire, utilisent bien l’auto-trim
Si la charge aérodynamique sur le stabilisateur est trop forte, il peut falloir la force des deux pilotes pour corriger un mauvais trim, et dans des cas extrêmes il peut être nécessaire de réduire la charge aérodynamique pour rendre le trim manuel possible
Ravi d’apprendre qu’Airbus envisage d’ajouter à l’avenir des sidesticks à retour de force
[0] https://news.ycombinator.com/item?id=37089363
Vu la fréquence à laquelle HN critique les écrans tactiles dans les voitures, il est aussi intéressant de voir comment le remplacement d’anciens contrôles analogiques par une interface tactile logicielle a partiellement contribué à la collision de l’USS John S. McCain : https://features.propublica.org/navy-uss-mccain-crash/navy-i...
Il est sidérant que, sur un navire valant des dizaines voire des centaines de milliards de dollars, personne n’ait même pensé à mettre à côté d’un gros bouton rouge une simple étiquette rouge en anglais du genre « Bouton de reprise du contrôle d’urgence. Appuyez pour rendre le contrôle à ce poste »
Les concepteurs logiciels auraient aussi pu utiliser un langage simple et direct, rendre la bonne action facile, et faire en sorte qu’une action étrange nécessite une intention explicite. Si le fait que deux personnes se partagent indépendamment le contrôle de la propulsion bâbord/tribord est extrêmement inhabituel, alors après « transfert du contrôle de propulsion », il devrait y avoir une modale avec un énorme bouton « les deux côtés » et de petits boutons « bâbord uniquement » et « tribord uniquement »
Je me demande aussi pourquoi il n’y a pas de simples annonces vocales lorsqu’on transfère quelque chose d’aussi critique que le contrôle du navire. Un haut-parleur, ça coûte quoi, 20 dollars pièce ? Il suffirait d’un message du type « Le contrôle de la propulsion a été transféré au Lee Helm » ou « Le bouton rouge de reprise du contrôle à ce poste a été pressé, tous les contrôles ont été transférés à la passerelle »
Parfois, on dirait que seuls des gens qui ne réfléchissent pas et des adorateurs de Jony Ive conçoivent les UI
Même si le contact radar était affiché comme un chasseur F-14, je trouve étrange d’avoir supposé que l’Iran allait soudainement envoyer un seul F-14 attaquer le navire. Personne ne s’est demandé : « Et si c’était une erreur ? »
Ça me rappelle Stanislav Petrov, qui avait interprété comme une défaillance matérielle les alertes du système soviétique d’alerte précoce annonçant un lancement d’ICBM
Bien sûr, l’enjeu n’était pas tout à fait le même. Abattre un avion de ligne est moins grave que risquer de déclencher une guerre nucléaire mondiale
La frégate iranienne Sabalan avait aussi été gravement endommagée, deux plateformes iraniennes avaient été détruites, un avion de combat iranien avait été endommagé et au moins 56 marins iraniens avaient été tués
Ce jour-là même, un hélicoptère américain avait essuyé des tirs d’armes légères venant d’une vedette de patrouille iranienne, et l’abattage a eu lieu pendant la poursuite de ce patrouilleur
Dans ce contexte, penser que l’Iran pouvait lancer un avion de combat pour attaquer n’a rien de si étrange
Il était d’usage d’illuminer les avions militaires iraniens avec le radar de conduite de tir des missiles pour leur signifier de faire demi-tour. Le capitaine Carlson se rappelait : « Dès qu’on accrochait ce radar, ils rentraient chez eux. Les missiles ne les intéressaient pas »
Le commandant du Vincennes était connu pour avoir la gâchette facile, et le Vincennes portait le surnom de Robo-Cruiser
Au moment de l’abattage, le Vincennes se trouvait dans les eaux territoriales iraniennes
Les bandes du USS Vincennes, les informations du USS Sides et des sources de renseignement fiables confirment que le TN 4131 avait continué à monter en altitude depuis son décollage de Bandar Abbas jusqu’au moment où il a été abattu, en suivant le profil de vol normal d’un vol commercial, et qu’il émettait en mode III 6760
« Le capitaine Rogers était un étudiant difficile. Il ne se souciait pas de l’expertise des instructeurs et avait l’habitude embarrassante d’enfreindre les règles d’engagement pendant les wargames »[2]
Le lieutenant-commandant Lustig, coordinateur de guerre aérienne, a même reçu la Navy Commendation Medal pour un « accomplissement héroïque » et sa « capacité à garder son calme et sa confiance sous le feu », ce qui lui a permis de « mener à bien les procédures de tir rapidement et avec précision »
Tous les membres d’équipage du Vincennes et de l’Elmer Montgomery ont reçu le combat action ribbon
[1] https://www.newsweek.com/sea-lies-200118
[2] https://www.usni.org/magazines/proceedings/1993/august/vince...
[3] https://archive.org/details/FormalInvestigationintotheCircum...
Si les systèmes de réponse du Stark avaient correctement fonctionné, les missiles auraient très probablement été abattus, mais ce ne fut pas le cas, et 37 Américains sont morts
Dans ce contexte, il n’était pas si étrange de considérer un avion iranien comme une menace sérieuse
Dans mes souvenirs, c’était une préoccupation majeure à l’époque, peut-être même surtout à cette époque
Quelques années avant cet incident, les États-Unis avaient testé si le F-14 pouvait lancer des missiles antinavires Harpoon, parce que l’Iran possédait à la fois des F-14 et des Harpoon. Le test avait réussi
Il est très peu probable que l’Iran ait réellement intégré des Harpoon sur ses F-14, mais comme c’était une capacité qu’il possédait, la crainte qu’il puisse le faire était très réelle à l’époque
Récemment, il y a aussi eu une assez grosse catastrophe UX chez PayPal
L’app iOS de PayPal avait une manière étrange de saisir les nombres. Il fallait entrer le montant à envoyer en cents, donc pour envoyer 50 dollars il fallait taper 5000, et PayPal ajoutait le séparateur décimal après le deuxième chiffre en partant de la droite. Encore plus étrange, les chiffres étaient alignés à droite, ce qui donnait l’impression de saisir à l’envers. Je n’ai jamais réussi à m’y habituer
Il y a quelques semaines, toute l’interface a changé sans aucun avertissement, et maintenant l’utilisateur doit lui-même saisir le séparateur décimal. Si l’on entre 5000 comme avant, on envoie 5000 dollars au lieu de 50. Je connais réellement une personne qui a envoyé trop d’argent, et je soupçonne que ce changement d’UX en est la cause
Une conception prudente est importante
Unicode définit un symbole de touche de séparateur décimal ressemblant à une apostrophe (⎖, hexadécimal U+2396, décimal 9110). Ce symbole provient de l’ISO/IEC 9995 et sert à indiquer sur un clavier la touche qui effectue la séparation décimale
Je me demande si Tesla finira un jour devant les tribunaux pour une situation de ce genre
Je ne parle pas d’Autopilot, mais du fait qu’ils continuent à supprimer les commandes physiques du véhicule, au point que cela devient absurde
Par exemple, les premiers Model S/X avaient des commandes dédiées pour les clignotants, le changement de vitesse, les essuie-glaces, Autopilot, l’inclinaison du volant et plusieurs autres fonctions. De chaque côté du volant, il y avait deux boutons et une molette, et le klaxon s’activait en appuyant au centre du volant. Sur les portières, on trouvait le réglage des rétroviseurs, les vitres et le verrouillage
Malheureusement, certaines commandes importantes comme le désembuage avant et arrière étaient sur l’écran tactile, et la climatisation ainsi que d’autres fonctions diverses nécessitaient plusieurs appuis, ou des zones tactiles trop petites, ou les deux
Tout n’était pas mauvais. Des réglages détaillés mais peu importants, comme miles/kilomètres, ont tout à fait leur place sur un écran tactile. Mais il aurait fallu davantage de commandes dédiées
Avec l’arrivée de la Model 3, la suppression des commandes a commencé. Il n’y a plus que deux leviers, celui des clignotants gère aussi dans une certaine mesure les phares et les essuie-glaces, et le levier de vitesse chevauche Autopilot. Les deux molettes sans bouton doivent être poussées à gauche ou à droite
Toutes les autres commandes sont sur l’écran tactile. Les éléments importants ont vraiment besoin de commandes dédiées
Les Model S/X mises à jour sont encore pires. Il n’y a plus du tout de leviers. Clignotants, feux de route, klaxon et essuie-glaces sont tous relégués à des zones tactiles sur le volant, et les molettes changent de fonction selon le contexte
Il n’y a même plus de sélection de vitesse, la voiture essaie de deviner dans quelle direction le conducteur veut aller. Encore plus de fonctions, comme le passage en stationnement, passent par l’écran tactile. Il existe bien un sélecteur de conduite tactile sur la console centrale, mais il faut regarder vers le bas, le réveiller d’une pression, puis faire sa sélection
C’est un désastre complet, et cela rend la conduite plus difficile
Il arrive parfois que, sans raison apparente, la voiture refuse de passer en marche avant ou arrière
Peu après avoir acheté ma Tesla, je faisais un demi-tour en trois temps pour entrer dans mon allée. J’ai avancé un peu, me suis arrêté, j’ai tourné le volant, j’ai actionné le levier pour passer en marche arrière, puis j’ai appuyé sur l’accélérateur, mais la voiture est partie vers l’avant et a embouti la portière de mon ancienne voiture. À part l’icône à l’écran, rien n’indiquait que la voiture avait refusé l’ordre de passer en marche arrière
Depuis, Tesla a publié une mise à jour : un son retentit lorsqu’on passe de la marche avant à la marche arrière, et un autre son distinct lorsque la voiture refuse la commande. C’est bien mieux, mais cela reste agaçant, surtout juste après être monté à bord, car elle refuse encore assez souvent les ordres de passage en marche avant ou arrière. Désormais, par habitude, j’actionne le levier 4 ou 5 fois dès que je monte dans la voiture
J’ai récemment acheté une nouvelle voiture, et pour moi, la disposition des commandes était un critère décisif. Bien trop de constructeurs ont suivi la mode du tout écran tactile
Pour certains usages comme Android Auto, c’est acceptable, mais faire absolument tout via un écran tactile, tout le temps, c’était déjà idiot dans Star Trek, et c’est idiot dans la réalité. Pour des fonctions comme l’éclairage, les essuie-glaces ou la climatisation, des commandes physiques sont indispensables
Un camion sur la voie d’en face a dû passer dans une flaque, et de la boue liquide a éclaboussé le pare-brise en une fraction de seconde, juste avant le virage, au moment où j’avais besoin de voir où j’allais
Je n’avais qu’environ une seconde pour trouver la commande des essuie-glaces, et ce n’était pas ma voiture. Si je ne l’avais pas trouvée, je serais sorti de la route ou j’aurais empiété sur la voie en sens inverse. Ce n’est pas le moment de chercher en urgence un bouton d’essuie-glaces sur un écran tactile
Je n’ai délibérément pas acheté de Tesla parce que je voulais conduire une voiture, pas un jouet
Les interfaces tactiles ne sont pas toutes mauvaises, mais dans des situations qui demandent une forte concentration et où les entrées changent dynamiquement, cela devient une catastrophe
Deux jours de suite, un fil Mastodon est monté en première page de HN. Je ne sais pas quand cela est arrivé pour la dernière fois avec un fil Twitter, et je me demande s’il reste encore quelqu’un pour douter que Twitter ne soit plus le centre des conversations techniques
Je me demande comment cela se comparait aux technologies de contrôle du trafic aérien courantes à l’époque. Le contrôle faisait-il mieux les choses ? Bien sûr, même à cette époque, il y a eu beaucoup de catastrophes causées par le contrôle aérien.
Au début, j’ai cru que c’était un article sur le flat design, puis j’ai lu l’intégralité du toot. Qui aurait imaginé qu’une UI puisse être à ce point mauvaise dans une opération où des vies sont en jeu ?
J’aimerais que quelqu’un publie plus de détails sur l’UI déroutante qui a conduit à cet incident. Ce serait sans doute une bonne leçon pour la plupart d’entre nous.
Il semble aussi que Lockheed ait remporté en 2023 un contrat lié à ce système [1]. Si quelqu’un sait si les problèmes d’UI ont réellement été corrigés récemment, ce serait bien de le partager.
1 - https://news.clearancejobs.com/2023/03/13/lockheed-martin-wi...
En gros, sans qu’on sache pourquoi, la direction et la position venaient d’un avion, les informations d’identification d’un autre, et l’altitude d’un troisième.
Admiral Cloudberg a publié un article détaillé sur cet accident, y compris le fonctionnement de l’interface utilisateur :
https://admiralcloudberg.medium.com/the-long-shadow-of-war-t...
En lisant les différentes interprétations de cet événement, on garde l’impression qu’il ne s’agissait pas simplement d’un problème d’interface utilisateur.