211service.com
Margaret Hamilton
En recherchant sans relâche les erreurs, l'ingénieur logiciel d'origine a aidé à envoyer des astronautes sur la lune. 16 août 2019
Margaret Hamilton TOAN TRINH ; STYLE PAR LAURA DILLON
Lorsque Margaret Hamilton était enfant, son père l'emmenait faire de longs trajets à travers la péninsule supérieure du Michigan. Ils parlaient tout le temps de choses liées à la philosophie, se souvient l'ingénieur logiciel, aujourd'hui âgé de 83 ans. Comme 'et si' et 'pourquoi' et 'pourquoi pas'.
Environ deux décennies plus tard, Hamilton a retenu son souffle dans la salle de surveillance de mission du MIT Instrumentation Lab alors que l'un des plus grands scénarios de l'histoire se concrétisait. Le 20 juillet 1969, à 15 h 17. Heure de Boston, le module lunaire Eagle s'est posé sur la lune. À ce moment-là, Hamilton était à la tête du génie logiciel du programme Apollo. Comme elle aime à le dire, l'équipage de l'Eagle a été le premier humain à marcher sur la surface lunaire, et le logiciel de son équipe a été le premier à fonctionner dessus.
En plus d'une décennie de travail avec les missions Apollo, Hamilton a aidé à guider en toute sécurité des vaisseaux spatiaux dans et hors de l'orbite. Elle a dirigé un groupe de près de 100 développeurs, apportant rigueur - et respect - à ce qui était alors le tout nouveau domaine du génie logiciel. (En fait, elle a inventé le terme d'ingénieur logiciel et a poussé à son utilisation.) Et elle a fait tout cela avec créativité et aplomb, guidée par une conviction maintes fois confirmée : que ce qui n'arrivera jamais peut arriver. .
Hamilton a quitté l'université en pensant qu'elle serait mathématicienne, prévoyant de trouver un emploi pendant que son mari allait à la faculté de droit de Harvard, puis d'aller elle-même à l'école doctorale. En 1959, elle a commencé à travailler pour le célèbre météorologue du MIT Edward Lorenz, qui l'a chargée de programmer un ordinateur de 800 livres appelé LGP-30.
Hamilton n'avait jamais vu d'ordinateur. Mais elle s'y est mise tout de suite, trouvant des moyens peu orthodoxes de faire fonctionner plus rapidement le truc lourd. Je prendrais des mesures que l'on qualifierait de programmation « délicate » aujourd'hui, dit-elle. Par exemple, le débogage à la lettre impliquait de faire passer lentement le long rouleau de papier qui retenait un programme incorrect dans la machine. Hamilton, qui n'avait aucune patience pour cela, a appris le code binaire et a commencé à éditer les feuilles elle-même - percer un trou dans le papier avec un crayon pointu pour tourner un 0 à un un , et en utilisant un petit morceau de ruban adhésif pour le verso. (Le travail effectué par Hamilton et d'autres a finalement contribué au travail révolutionnaire de Lorenz sur la théorie du chaos.)
En 1961, Hamilton a apporté cette approche hors des sentiers battus à son prochain poste, inventant un nouveau protocole d'erreur pour le système de défense aérienne massif et indiscipliné SAGE du MIT. Cet ordinateur a occupé tout un entrepôt et a fait des bruits de corne de brume et de camion de pompiers lorsqu'il s'est écrasé, dit-elle. Chaque fois que cela se produisait, elle demandait au programmeur fautif de poser pour un Polaroid, avec une documentation sur l'origine de [l'erreur], dit-elle. Si la même erreur se reproduisait, ils pourraient faire appel à cette personne pour la réparer.

Hamilton avec le code Apollo, 1969. MIt Museum
Les pensées de ce doctorat en mathématiques se sont estompées. Après des années à découvrir et inventer des choses, elle s'est rendu compte qu'elle était accro à ce nouveau domaine étrange qu'elle aidait à créer dans une atmosphère qu'elle a comparée au Far West. Les erreurs, en particulier, continuaient de la fasciner : non seulement les trouver et les corriger, mais tracer les schémas qu'elles suivent afin de les prévoir et de les prévenir. Je les considérais comme des ennemis, dit-elle.
Ainsi, en 1964, lorsqu'elle a vu une annonce du MIT Instrumentation Lab recrutant des programmeurs pour travailler sur des logiciels pour ce qui allait devenir le programme Apollo, Hamilton a sauté sur l'occasion. Au départ, on lui a confié ce qui était présumé être un projet à faible impact, écrivant le code qui se déclencherait si une mission sans pilote avortait. Les supérieurs étaient si sûrs que cela n'arriverait pas, dit-elle, qu'elle a en fait nommé son programme Forget It. (Lorsque l'une de ces missions a avorté, elle s'est retrouvée très demandée.)
Elle a rapidement été promue à un logiciel classé par l'homme, où une erreur pouvait mettre en danger la vie d'un astronaute. Ici, un bon code devait fonctionner correctement, mais il devait également détecter et compenser les dysfonctionnements matériels ou les erreurs commises par les astronautes eux-mêmes. Hamilton a puisé dans cet esprit de simulation : et si quelqu'un actionnait cet interrupteur au mauvais moment ? Que se passe-t-il si une urgence survient alors que tout le monde est occupé ? La prise en compte de ces possibilités l'empêchait de dormir la nuit. C'est tout ce à quoi je pensais, dit-elle.
Parfois, l'inspiration venait d'endroits inattendus. Hamilton amenait souvent sa fille, Lauren, au laboratoire avec elle les nuits et les week-ends. Lauren, alors âgée de quatre ans, aimait jouer à l'astronaute dans les simulateurs de l'équipe, et un jour, en appuyant sur des boutons au hasard, elle provoqua un plantage logiciel spectaculaire. Hamilton a enquêté et a découvert que Lauren avait confondu le programme en saisissant une séquence de pré-lancement, appelée P01, au milieu de la mission, dit-elle.

TOAN Trinh
Elle a demandé aux pouvoirs de la NASA de la laisser ajouter une sauvegarde pour éviter cette erreur lors d'un vol réel, et ils en ont ri comme étant trop improbable. Mais ils l'ont laissée en prendre note. Lorsqu'un astronaute a fait ce bêtisier pendant la mission Apollo 8 - le premier vol habité en orbite autour de la lune - cela a fait disparaître les données de navigation nécessaires, et ils ont appelé Hamilton pour les récupérer. Je me souviens avoir dit à quelques gars là-bas: 'C'est le virus Lauren!' dit-elle en riant.
C'est Apollo 11 qui a donné à l'équipe la plus grande frayeur. Juste au moment où l'Aigle était sur le point d'atterrir sur la Lune, les astronautes ont été interrompus par cinq messages d'erreur avertissant que la puissance de calcul était faible. Mais comme le logiciel était si bien conçu, Houston lui a fait confiance pour hiérarchiser les aspects les plus importants de l'atterrissage et a permis à la mission de se poursuivre. L'équipe avait programmé le logiciel pour détecter les erreurs et s'en remettre, mais le regarder faire cela pendant la descente d'Eagle a inspiré une pure terreur, dit-elle.
Le rôle de Hamilton dans l'histoire de l'informatique est de plus en plus reconnu par le public. En 2016, elle a reçu la médaille présidentielle de la liberté des mains de Barack Obama, qui a loué son esprit de découverte américain. En 2017, une photo emblématique d'elle - à lunettes, souriante et éclipsée par une pile du code de son équipe - a été transformée en figurine Lego.
Entre son travail sur Apollo et son voyage à la Maison Blanche, Hamilton s'est concentrée sur l'application de ce qu'elle a appris du programme Apollo en inventant un nouveau paradigme pour la conception de systèmes et le développement de logiciels. Sa société actuelle, Hamilton Technologies, a développé un langage basé sur ce paradigme appelé Universal Systems Language. Il est destiné à prévenir les types d'erreurs les plus courants, au lieu de les comptabiliser après coup. Elle espère qu'il finira par être largement adopté.
C'est un défi de taille pour ce qui est maintenant une industrie de plusieurs billions de dollars, et qui n'est plus aussi sauvage. Mais comme aurait pu le dire son enfance : pourquoi pas ?