Interview imaginaire avec Margaret Hamilton
par Charactorium · Margaret Hamilton (1936 — ?) · Technologie · Sciences · 6 min de lecture
C'est dans une salle encombrée du MIT Instrumentation Laboratory, à Cambridge, qu'un matin d'hiver 1976, Jim Lovell retrouve Margaret Hamilton. Sur les tables, des piles de listings imprimés voisinent avec les bobines grises de la mémoire à tore, et l'air sent encore l'encre des téléimprimeurs. L'astronaute et l'ingénieure se connaissent depuis Apollo : une nuit de décembre 1968, c'est le logiciel d'Hamilton qui a rattrapé une erreur de Lovell, à des milliers de kilomètres de la Terre. Il vient aujourd'hui, le carnet à la main, comprendre enfin ce que faisait, à l'intérieur de la machine, l'homme invisible qui veillait sur sa vie.
—Margaret, tu te souviens d'Apollo 8, fin 1968 ? J'ai effacé par mégarde des données de navigation. Comment ton programme m'a-t-il sauvé la mise ?
Bien sûr que je m'en souviens, Jim — toi mieux que personne, tu as senti le vide quand l'écran s'est vidé. Ce qui t'a sauvé, ce n'est pas un miracle, c'est une protection que j'avais ajoutée contre une faute que la NASA jugeait impossible. Ils m'avaient répété qu'un astronaute entraîné ne lancerait jamais le mauvais programme en plein vol. J'ai insisté pour prévoir le cas quand même, et j'ai écrit la routine de récupération qui permettait de recharger les données de navigation depuis le sol. Quand ton erreur est arrivée, le logiciel savait déjà quoi faire. Je n'ai pas triomphé ce jour-là : j'ai surtout pensé que nous avions eu de la chance d'avoir désobéi à leur certitude.
Ils m'avaient juré qu'un astronaute ne lancerait jamais le mauvais programme. J'ai prévu le cas quand même.
—On raconte que c'est ta fille, au laboratoire, qui t'a mise sur la piste de cette faille. Est-ce vrai, Margaret ?
C'est tout à fait vrai, et c'est une histoire que je n'aurais pas racontée à un journaliste. Les soirs et les week-ends, je revenais ici avec ma fille Lauren, parce que je ne voulais pas choisir entre elle et le travail. Un jour, elle a joué avec une console de simulation et a appuyé sur une touche qui a fait s'effondrer tout le programme de navigation en plein vol simulé. Au lieu de la gronder, je me suis dit : si un enfant peut provoquer cela, un homme épuisé à trois cent mille kilomètres le peut aussi. J'ai voulu blinder le système contre cette erreur. La NASA a refusé. Quelques mois plus tard, tu l'as commise pour de vrai. Lauren avait, sans le savoir, écrit le cahier des charges.
Si un enfant peut faire tomber le programme, un homme épuisé à trois cent mille kilomètres le peut aussi.
—Tu emploies une expression que personne ne comprenait quand nous travaillions ensemble : software engineering. D'où t'est venue cette idée, Margaret ?
Elle m'est venue d'un agacement, Jim. Dans les années soixante, programmer n'était pas considéré comme un vrai métier d'ingénieur — on regardait cela comme un bricolage, une affaire de personnes qui pianotaient. Mais moi, j'écrivais le code dont dépendait ta vie quand tu décollais. Alors j'ai commencé à parler de software engineering pour forcer le respect : pour dire que mon travail méritait les mêmes exigences de rigueur, de tests et de documentation que le génie civil ou l'aéronautique. Au début, on m'a souri, parfois on s'est moqué. Le mot avait l'air prétentieux. Mais je tenais bon, parce qu'un pont qui s'effondre tue, et qu'un logiciel mal pensé, dans ta capsule, tuait tout autant. Le nom était une manière de rendre ce métier visible et responsable.
Un pont qui s'effondre tue ; un logiciel mal pensé, dans ta capsule, tuait tout autant.
—Quand je passais te voir le soir, ton équipe était surtout composée de femmes, dans un monde d'ingénieurs en cravate. Comment vivais-tu cela ?
Je le vivais en travaillant deux fois plus, c'est la vérité. J'étais souvent la femme en robe imprimée au milieu des chemises blanches, et il fallait sans cesse prouver que notre logiciel tiendrait. Les ingénieurs en aéronautique, habitués au métal et aux équations, doutaient qu'on puisse faire confiance à des lignes de code écrites par une équipe où les femmes étaient nombreuses. Alors j'ai imposé des normes de tests et de documentation impitoyables : chaque cas d'urgence devait être prévu, écrit, vérifié. Nous restions tard, parfois avec Lauren endormie dans un coin, à dérouler des séquences de panne que personne d'autre n'imaginait. Ce que je voulais, ce n'était pas qu'on m'aime : c'était qu'aucune de nos missions ne connaisse un seul bug fatal en vol. Et nous y sommes parvenues.
Je ne voulais pas qu'on m'aime ; je voulais qu'aucune mission ne connaisse un seul bug fatal en vol.
—Ces nuits passées ici, à éplucher des pages de code à la main — à quoi ressemblaient-elles vraiment, Margaret ?
Elles ressemblaient à de longues veilles silencieuses, Jim. Le jour, je coordonnais les sous-groupes, je discutais avec les ingénieurs de la NASA, je rédigeais les spécifications. Mais le vrai travail de fond se faisait le soir, quand le laboratoire se vidait et que les machines étaient enfin libres. Je profitais du calme pour lancer de longues séquences de test, écrire la documentation et, surtout, chercher les scénarios de panne que nous n'avions pas encore couverts. Je relisais les listings imprimés ligne après ligne, le crayon à la main, parce qu'il n'y avait pas assez d'écrans pour tout le monde. Lauren dormait souvent à côté. C'est dans ces heures sans témoin que se gagnait la fiabilité dont tu as bénéficié là-haut : non pas dans l'éclat du lancement, mais dans l'obscurité d'un bureau de Cambridge.
La fiabilité ne se gagnait pas dans l'éclat du lancement, mais dans l'obscurité d'un bureau de Cambridge.

—Parlons d'Apollo 11. À trois minutes du sol lunaire, l'ordinateur a crié l'alarme 1202. Que se passait-il, Margaret ?
Ce qui se passait, c'est que le calculateur recevait plus de travail qu'il ne pouvait en abattre dans le temps imparti. Le code 1202 signalait une surcharge : un signal de trop arrivait du radar de rendez-vous, et la petite machine de quatre kilo-octets se noyait sous les tâches. Dans n'importe quel système ordinaire, cela aurait tout figé, et il aurait fallu renoncer à l'alunissage. Mais notre logiciel ne se contentait pas de calculer : il savait hiérarchiser. Face à la surcharge, il a écarté de lui-même les tâches secondaires pour ne garder que celles indispensables à la descente. Il a, en quelque sorte, décidé seul de ce qui comptait pour poser le module. C'est cette intelligence-là, prévue des années plus tôt, qui a laissé Neil Armstrong se concentrer sur le sol qui montait vers lui.
Le logiciel ne se contentait pas de calculer : face au danger, il décidait seul de ce qui comptait.
—Comment une machine si petite pouvait-elle « choisir » de t'obéir plutôt que de paniquer, comme l'aurait fait un homme à sa place ?
Grâce à un principe que nous appelions la priorité d'exécution. Au lieu de traiter toutes les tâches comme égales, nous avions classé chacune selon son importance pour la survie de la mission. La machine exécutait d'abord les tâches vitales — guider la descente, surveiller l'altitude — et ne s'occupait des autres que s'il lui restait du temps. Quand la surcharge est arrivée, elle a simplement abandonné le superflu et redémarré proprement les fonctions essentielles, sans rien perdre de ce qui maintenait le module en sécurité. C'est l'inverse de la panique : un homme submergé fait souvent tout à la fois et se fige ; le système, lui, lâchait l'accessoire sans hésiter. Nous l'avions conçu pour qu'il continue de fonctionner correctement même au milieu de l'erreur. On appelle cela la tolérance aux pannes, et c'était mon obsession.
Un homme submergé fait tout à la fois et se fige ; le système, lui, lâchait l'accessoire sans hésiter.

—Sur cette table, je vois une pile de listings presque aussi haute que toi. Et ces étranges bobines tissées — qu'est-ce donc, Margaret ?
Cette pile, Jim, c'est le code d'Apollo tout entier, imprimé page après page. Quand on l'empile, il m'arrive à hauteur d'épaule, et cela me fait sourire : tant d'années de nuits tiennent dans ces feuilles. Les bobines que tu regardes, ce sont nos mémoires à tore de ferrite — ce que nous appelons core rope memory. Le programme n'y était pas écrit comme aujourd'hui : des ouvrières tissaient physiquement des fils de cuivre à travers de minuscules anneaux magnétiques, un fil à travers l'anneau pour un, à côté pour un zéro. Une fois tissé, le programme était gravé dans la matière, impossible à corromptre par accident. Ton vaisseau emportait donc un logiciel qu'on pouvait, au sens propre, tenir et toucher du doigt. C'est cela qui me rendait sereine : ce que tu emportais n'était pas une abstraction, c'était un objet vérifié, brin par brin.
Le programme était tissé fil à fil dans la matière : ton vaisseau emportait un logiciel qu'on pouvait toucher du doigt.
—Aujourd'hui tu fondes ta propre société. Que cherches-tu encore, après avoir conduit des hommes jusqu'à la Lune ?
Je cherche à empêcher l'erreur avant qu'elle ne naisse, et non plus seulement à la rattraper en vol. Sur Apollo, nous corrigions les fautes en temps réel, et c'était déjà une révolution. Mais j'ai compris que la plupart des défaillances proviennent de la façon dont on conçoit un système, bien avant la première ligne de code. Avec ma méthode, que j'appelle Higher Order Software, je veux fonder le développement sur des axiomes mathématiques, de sorte qu'une grande part des erreurs devienne littéralement impossible à écrire. C'est la suite logique de tout ce que nous avons vécu ensemble : si une vie dépend d'un programme, ce programme ne doit pas seulement bien réagir au désastre, il doit être pensé pour que le désastre n'ait pas de place où se loger. Voilà mon obsession nouvelle.
Un programme dont dépend une vie ne doit pas seulement réagir au désastre : il doit le rendre impossible.
—Quand tu regardes en arrière, Margaret, qu'aimerais-tu que l'on retienne de ce travail resté si longtemps invisible ?
J'aimerais qu'on retienne qu'il y avait, derrière chaque décollage, des êtres humains penchés des nuits entières sur des pages de code. On voyait la fusée, on voyait ton visage à la fenêtre de la capsule ; on ne voyait pas la fille endormie dans un coin du laboratoire, ni les femmes qui vérifiaient chaque instruction à la main. Le logiciel a longtemps été tenu pour l'invisible, le secondaire, presque le négligeable. Or c'est lui qui t'a ramené, c'est lui qui a posé Armstrong sur la Mer de la Tranquillité. Je ne réclame pas de gloire personnelle, Jim : je voudrais simplement qu'on accorde à ce métier la dignité d'une ingénierie à part entière. Si l'on se souvient de cela, alors toutes ces nuits de Cambridge n'auront pas seulement sauvé des missions — elles auront fondé une discipline.
On voyait la fusée et ton visage à la fenêtre ; on ne voyait pas les femmes qui vérifiaient chaque ligne à la main.
Pour aller plus loin
Cette interview imaginaire a été générée par intelligence artificielle à partir des sources documentées dans la fiche de Margaret Hamilton. Elle met en scène ce que la figure aurait pu dire à partir de ce que nous savons d'elle, mais ne constitue pas un propos historique attesté. Pour les sources primaires et la documentation factuelle, consultez la fiche complète.



