Interview imaginaire avec Margaret Hamilton
par Charactorium · Margaret Hamilton (1936 — ?) · Technologie · Sciences · 6 min de lecture
Cambridge, Massachusetts, un soir d'hiver à la fin des années soixante. Les néons du MIT Instrumentation Laboratory bourdonnent au-dessus de bureaux jonchés de listings annotés. Margaret Hamilton, café froid à portée de main et sa fille Lauren endormie dans un fauteuil voisin, accepte de poser un instant les piles de code pour raconter comment on apprend à un programme à ne jamais paniquer.
—Comment décririez-vous la machine pour laquelle vous écriviez, à quelqu'un qui n'a jamais vu un ordinateur de cette époque ?
Imaginez un bloc de 32 kilos qui ne dispose que de 4 ko de mémoire vive, et dans lequel il faut faire tenir la navigation, l'alunissage, les urgences et le retour. Le programme n'était pas chargé comme aujourd'hui : il était tissé. Des ouvrières passaient un fil de cuivre à travers un minuscule anneau magnétique pour un 1, à côté pour un 0 — la mémoire à tore de ferrite, le core rope memory. Une fois cousu, le logiciel devenait physique, inscrit dans la matière, impossible à corriger sans tout retisser. Cela vous oblige à une humilité particulière : chaque ligne que vous validez part vivre à 380 000 kilomètres, et vous ne pourrez plus jamais la toucher. On ne déboguait pas en vol. On déboguait avant, obsessionnellement, en pensant à la panne que personne n'avait encore imaginée.
Le programme n'était pas chargé, il était tissé : un fil de cuivre pour un 1, à côté pour un 0.
—Avec si peu de mémoire, comment garantir qu'une machine réagisse à temps lors d'une manœuvre de vol ?
Le temps réel est un maître cruel. Le calculateur de guidage Apollo devait répondre en quelques millisecondes pendant qu'un module descendait vers la Lune — il n'existe pas de seconde chance, pas d'ingénieur au sol qui appuie sur pause. Nous avons donc bâti tout le système autour d'une idée simple à dire et difficile à réaliser : la tolérance aux pannes. Le logiciel devait continuer à fonctionner correctement même quand le matériel défaillait, même quand on lui demandait l'impossible. Cela voulait dire prévoir non pas le scénario nominal, celui qui figure dans les manuels, mais les dizaines de scénarios catastrophiques que tout le monde jugeait improbables. Je passais mes soirées au laboratoire de Cambridge à chercher précisément ces trous-là, les pannes que nous n'avions pas encore couvertes. Une mission spatiale ne pardonne pas l'optimisme.
Une mission spatiale ne pardonne pas l'optimisme.
—On raconte que votre fille Lauren est à l'origine d'une découverte importante. Que s'est-il passé ?
J'avais l'habitude de l'emmener au laboratoire les nuits et les week-ends — elle jouait pendant que je faisais tourner des séquences de test interminables. Un soir, Lauren, qui devait avoir quatre ans, s'est mise à pianoter sur la console du simulateur et a déclenché par hasard un programme qui n'avait rien à faire là en plein vol. Tout s'est effondré : la navigation effacée. J'ai pensé immédiatement : si une enfant peut le faire, un astronaute épuisé le fera aussi. J'ai voulu ajouter une protection. La NASA a refusé — leurs hommes étaient des professionnels, ils ne commettraient jamais une telle bévue. J'ai quand même glissé une note dans la documentation. Lors d'Apollo 8, en 1968, Jim Lovell a sélectionné exactement ce programme par inadvertance et effacé ses données de navigation. Le correctif que j'avais malgré tout préparé a permis de récupérer la mission.
Si une enfant peut le faire, un astronaute épuisé le fera aussi.
—Que retenez-vous de ce désaccord avec la NASA sur les erreurs humaines ?
Que la confiance excessive est elle-même un bug. On me répétait que les pilotes étaient trop bien entraînés pour se tromper, et j'entendais derrière cette phrase une certitude dangereuse. Un ingénieur ne conçoit pas pour l'humain idéal ; il conçoit pour l'humain à trois heures du matin, sous adrénaline, à des centaines de milliers de kilomètres de chez lui. L'épisode de Lauren m'a servi d'argument pendant des années : ce n'était pas une faute d'astronaute, c'était une faute de conception si le système permettait qu'une telle erreur soit fatale. Après Apollo 8, plus personne ne me demandait pourquoi je perdais du temps sur des cas « impossibles ». La détection et la récupération d'erreurs sont devenues une exigence, pas une lubie. La machine doit assumer que l'humain se trompera, et l'attraper avant la chute.
La confiance excessive est elle-même un bug.
—Revenons à juillet 1969. À trois minutes de la surface lunaire, les alarmes se déclenchent. Que ressentez-vous à cet instant ?
Le code 1202. Executive overflow — le processeur de l'AGC recevait davantage de tâches qu'il ne pouvait en traiter dans le temps imparti. À cet instant précis, tout l'édifice que nous avions tissé pendant des années jouait sa réputation en quelques secondes. Mais je n'avais pas peur du 1202, et c'est là tout le sens de notre travail : le système était conçu pour cela. Au lieu de tout abandonner, il a écarté automatiquement les tâches secondaires et concentré ses maigres ressources sur l'essentiel — poser le module. La priorité d'exécution faisait exactement ce pour quoi nous l'avions imaginée. Armstrong a continué sa descente. Le logiciel n'a pas planté ; il a décidé, seul, ce qui devait vivre et ce qui pouvait attendre. C'est le moment où le génie logiciel a cessé d'être une promesse pour devenir une preuve.
Le logiciel n'a pas planté ; il a décidé, seul, ce qui devait vivre et ce qui pouvait attendre.

—Comment un programme peut-il prendre seul une décision aussi critique, sans intervention au sol ?
Parce que nous avions accepté très tôt une vérité inconfortable : pendant la descente, le sol ne peut rien. Le délai, le silence radio, l'urgence — il n'y a pas de temps pour demander la permission à Houston. J'ai écrit là-dessus dans nos rapports du Draper Laboratory, dès le début des années soixante-dix : le système détecte les erreurs et s'en remet en temps réel, en s'assurant que les tâches critiques passent toujours en premier. Tout repose sur la hiérarchie. Vous numérotez chaque tâche selon son importance, et vous donnez au système le droit de sacrifier le secondaire pour sauver l'essentiel. Le 1202 n'était pas une défaillance, c'était le logiciel qui faisait son devoir : reconnaître sa propre surcharge et choisir. Concevoir une machine capable de renoncer intelligemment, voilà ce qui sépare un programme d'un automate.
Concevoir une machine capable de renoncer intelligemment, voilà ce qui sépare un programme d'un automate.
—Vous êtes créditée d'avoir forgé l'expression « software engineering ». Pourquoi avoir éprouvé le besoin d'inventer un mot ?
Parce que sans le mot, on n'existe pas. Dans les années soixante, écrire du logiciel passait pour un bricolage, une activité de seconde zone à côté de la vraie ingénierie, celle des fusées et des moteurs. Quand je disais à mes collègues aéronautiques que mon équipe faisait du software engineering, génie logiciel, certains riaient franchement. L'expression sonnait prétentieuse. Mais c'était délibéré : je voulais qu'on accorde à nos programmes la même exigence de fiabilité qu'à une structure portante, parce que notre code, lui aussi, portait des vies humaines. Mettre un mot sur une chose, c'est lui donner droit de cité, c'est exiger qu'on la prenne au sérieux. Des décennies plus tard, lorsqu'on m'a remis la Médaille présidentielle de la Liberté en 2016, ce terme jadis moqué était devenu le nom d'une discipline mondiale. Le scepticisme avait changé de camp.
Mettre un mot sur une chose, c'est lui donner droit de cité.

—Qu'est-ce qui, selon vous, distingue l'ingénieur du simple programmeur ?
La responsabilité, et la documentation qui en découle. N'importe qui peut faire fonctionner un programme un jour de chance ; l'ingénieur garantit qu'il fonctionnera le pire jour, dans les pires conditions, sans personne pour le rattraper. C'est pourquoi j'ai imposé à mon équipe des normes de tests et de documentation si strictes qu'elles agaçaient. Chaque hypothèse devait être écrite, chaque cas de panne tracé, chaque procédure d'urgence validée avant d'entrer dans le manuel des astronautes. Plus tard, en fondant Higher Order Software en 1976, j'ai poussé cette idée jusqu'au bout : prévenir l'erreur dès la conception, par des fondements mathématiques, plutôt que de la chasser après coup. Le rêve d'un logiciel correct par construction. L'ingénierie, ce n'est pas l'art de réparer les bugs ; c'est l'art de bâtir un système où certaines erreurs ne peuvent tout simplement pas naître.
L'ingénierie, ce n'est pas l'art de réparer les bugs ; c'est l'art de bâtir un système où certaines erreurs ne peuvent pas naître.
—Vous dirigiez une équipe largement féminine dans un milieu d'hommes. Comment viviez-vous cette singularité ?
On me photographiait souvent en robe imprimée, au milieu d'une mer de chemises blanches, devant les consoles du MIT Instrumentation Laboratory. Le contraste amusait les journalistes ; pour moi, c'était simplement mon bureau. J'avais sous ma responsabilité une équipe où les femmes étaient nombreuses, à une époque où on ne nous attendait pas là. La difficulté n'était pas tant le regard que la nécessité permanente de prouver. Devant des ingénieurs en aéronautique sceptiques, je ne pouvais pas me contenter d'affirmer que mon logiciel était fiable : il fallait le démontrer, chiffre après chiffre, test après test. C'est peut-être ce qui nous a sauvés. Cette exigence d'avoir toujours raison sous la critique a forgé une rigueur dont le programme entier a bénéficié. On nous regardait de haut ; nous avons répondu en ne laissant passer aucune faille.
On nous regardait de haut ; nous avons répondu en ne laissant passer aucune faille.
—Cette fameuse photographie de vous à côté d'une pile de listings aussi haute que vous : que représente-t-elle vraiment ?
Ces listings de code imprimés, empilés jusqu'à mon épaule, c'est tout le logiciel d'Apollo rendu visible, palpable. À l'époque, nous n'avions pas d'écrans partout ; on relisait le code sur papier, on l'annotait à la main, ligne par ligne, le soir au laboratoire. Cette pile, ce n'est pas un trophée, c'est la somme de milliers d'heures de vérification manuelle, de doutes posés noir sur blanc. On aime dire qu'aucun bug critique n'est survenu en vol sur les dix-sept missions du programme. Ce silence-là, cette absence d'accident, est invisible — alors la photo lui donne enfin un corps. Quand l'image est redevenue virale bien des années plus tard, des gens qui ignoraient mon nom ont compris d'un coup qu'aller sur la Lune avait aussi été une affaire de patience, de papier et de relecture obstinée.
Cette pile n'est pas un trophée : c'est la somme de milliers d'heures de doutes posés noir sur blanc.
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.



