Margaret Hamilton: «Ils craignaient que les hommes ne se rebellent; mais ce n'est pas arrivé "

Un innovateur dans le domaine de l'informatique explique comment il a dirigé le développement d'un logiciel pour l'atterrissage de la mission Apollo 11 sur la lune



Barack Obama remet à Margaret Hamilton la Médaille présidentielle de la liberté en 2016

La pionnière de l'informatique, Margaret Hamilton, a joué un rôle clé dans l'atterrissage des astronautes sur la lune, qui s'est produite pour la première fois le 20 juillet 1969, il y a 50 ans, et aussi pour les ramener chez eux en toute sécurité quelques jours plus tard. Une jeune programmeuse du MIT, avec un petit enfant, dirigeait une équipe qui a créé un logiciel de vol embarqué pour les missions Apollo, dont Apollo 11 . Ce système informatique était l'un des plus difficiles de l'époque. Son approche de programmation rigoureuse a été un tel succès qu'aucune erreur logicielle ne s'est produite pendant les missions habitées d'Apollo. «Il symbolise la génération de femmes méconnues qui ont contribué à envoyer l'humanité dans l'espace», a déclaré le président Barack Obama en 2016 lorsqu'il a décerné à Hamilton la Presidential Freedom Medal , la plus haute distinction civile aux États-Unis. En 2017, elle est devenue l'une des rares femmes à travailler pour la NASA, immortalisée sous la forme de figurines LEGO. À l'occasion du 50e anniversaire du premier atterrissage sur la lune, Hamilton, 82 ans, rappelle son travail de pionnier avec la technologie informatique.

Pourquoi vous êtes-vous lancée dans la programmation? Quand tu as commencé, il n'y avait pas de diplômes en informatique ...

Je me suis mariée en 1958, juste après avoir obtenu un diplôme en mathématiques et un diplôme supplémentaire en philosophie au Earlham College. Nous pourrions tous les deux aller aux études supérieures - je suis en mathématiques abstraites et mon mari en chimie - mais j'ai travaillé comme enseignant au lycée pendant un an, nous avons eu une fille et mon mari a décidé qu'il voulait obtenir un diplôme en droit à Harvard. J'ai trouvé un emploi pour subvenir aux besoins de ma famille dans le MIT voisin. Le travail était dans le laboratoire du professeur Edward Lorenz, le père de la théorie du chaos, et devait développer un système qui prédit le temps. Il avait besoin de diplômés ayant une formation mathématique. Nous avons engagé une nounou pour prendre soin de sa fille. Là, j'ai appris ce qu'est un ordinateur et comment écrire des logiciels. L'informatique et la programmation n'existent pas encore en tant que disciplines distinctes; les programmeurs ont étudié directement au travail. L'amour de Lorentz d'expérimenter avec un logiciel s'est avéré contagieux, alors j'ai été infecté.

Comment êtes-vous entré dans le projet Apollo en 1964?

Après avoir écrit des programmes, je suis passé à trouver des avions ennemis dans le laboratoire Lincoln du MIT. J'avais l'intention de retourner aux études supérieures lorsque mon mari a vu une annonce dans un journal. Le laboratoire d'instruments de mesure du MIT cherchait des personnes pour développer un logiciel pour «envoyer un homme sur la lune». Le laboratoire a reçu un contrat de la NASA pour créer un logiciel de vol embarqué pour le projet Apollo, car c'est elle qui a également développé du matériel informatique pour cela. J'étais attirée à la fois par l'idée elle-même et par le fait que personne n'avait fait cela auparavant. J'étais le premier programmeur et la première femme qu'ils ont embauchée. Des ingénieurs masculins travaillaient déjà sur le projet, mais ils travaillaient dans l'électronique, et ce n'était pas leur domaine. Et j'ai déjà eu une telle expérience. Je pense qu'au laboratoire, ils ont décidé que je ferais face à quelque chose de nouveau.

Vous avez d'abord travaillé sur le logiciel de mission sans pilote Apollo. Mais ensuite, vous avez été progressivement mis à niveau à la tête de l'équipe de développement de logiciels pour les engins spatiaux habités, y compris Apollo 11. Quelle était ta responsabilité?

Il y avait deux ordinateurs de bord - l'un sur le module de commande Columbia et l'autre sur l'aigle lunaire. Notre tâche consistait à développer un logiciel censé fonctionner sur chaque module seul, ainsi que leur logiciel commun. Au début, personne ne pensait que le logiciel serait un problème aussi important. Cependant, progressivement, tout le monde a commencé à comprendre à quel point tout dépendait de lui. Notre groupe a tellement grandi qu'en conséquence, environ 100 programmeurs ont travaillé dans l'équipe. L'enjeu était la vie des astronautes. Notre logiciel devait être extrêmement fiable, et il devait être capable de détecter les erreurs et de s'en remettre à tout moment pendant la mission. Et tout cela aurait dû correspondre au fer.


Margaret Hamilton en 1969 répertoriant le code logiciel développé par son équipe pour les missions Apollo

Avez-vous eu des problèmes pour combiner travail de programmeur et maternité?

Souvent le soir ou le week-end, j'emmenais ma petite fille, Lauren, avec moi pour travailler. Une fois que nous étions ensemble, j'étais engagé dans une simulation de la mission de voler vers la lune. Elle aimait m'imiter et jouer à l'astronaute. Elle a commencé à appuyer sur les touches et a soudainement lancé une simulation. Puis elle a poussé plus de touches, et la simulation est tombée. Elle a choisi un programme qui était censé s'exécuter avant le lancement - mais en même temps, la simulation «volait» déjà vers la lune. L'ordinateur avait si peu de mémoire qu'il effaçait toutes les données de navigation nécessaires pour voler. J'ai pensé: mon Dieu, cela pourrait arriver par hasard lors d'une vraie mission. J'ai suggéré de changer le programme pour éviter la possibilité de démarrer le segment de pré-lancement pendant le vol.
Cependant, les autorités du MIT et de la NASA ont décidé que les astronautes étaient trop bien entraînés pour commettre une telle erreur. Et pendant le vol, dans la mission suivante, Apollo 8, l'un des astronautes à bord a accidentellement fait exactement ce que Lauren a fait. Erreur Lauren! J'ai levé le pied et insisté pour que la mission soit reconfigurée. Après cela, ils ont bien sûr déjà permis d'apporter des modifications au programme.

Les astronautes ont pris la majeure partie de la gloire pour la lune. Cependant, ils l'ont fait en utilisant le système que vous avez créé pour avertir des situations d'urgence en vol. Comme l'a dit Obama: "Nos astronautes n'avaient pas beaucoup de temps, mais, heureusement, ils avaient Margaret Hamilton."

Peu avant l'atterrissage, des avertissements d'urgence sont apparus sur l'affichage prioritaire de l'ordinateur et l'ordinateur était surchargé. J'ai vu comment tout cela s'est passé, debout dans le centre de contrôle du MIT. Après cela, nous avons recréé la situation - le commutateur radar était dans la mauvaise position et a pris l'alimentation du processeur. Il est rapidement devenu clair que le logiciel informait non seulement les gens d'un problème matériel, mais les compensait également - des tâches rechargées et réaffectées avec la plus haute priorité. Les mécanismes de détection et de récupération des erreurs sont venus à la rescousse. Tout le monde était soulagé en s'asseyant - et que les astronautes allaient bien, et que le logiciel fonctionnait parfaitement.

D'après ce que je comprends, au début de la programmation des femmes, il y en avait beaucoup. On croyait que c'était le travail des femmes . Est-ce le cas selon votre expérience?

La programmation n'a jamais été considérée comme un travail féminin, du moins dans aucun des nombreux projets sur lesquels j'ai travaillé. Les informaticiens étaient majoritairement des femmes, et de nombreuses femmes utilisaient des calculatrices mécaniques telles que Marchant - mais elles n'étaient pas programmeuses. Ils n'ont pas écrit de code. Quand j'ai commencé à travailler sur le projet Apollo, il n'y avait plus de femmes écrivant du code. Puis, après quelques années, peu de femmes sont apparues - dont certaines travaillaient pour moi. Il y a toujours eu beaucoup plus d'hommes.

Les hommes vous ont-ils ennuyé?

Lorsque j'ai pris le contrôle, l'un des plus hauts responsables a déclaré qu'il n'avait aucun doute sur ma compétence, mais qu'il craignait que certains hommes de mon groupe ne déclenchent une émeute. Mais cela ne s'est pas produit. Plus que toute autre chose, nous nous sommes concentrés sur les missions et avons travaillé côte à côte pour résoudre des problèmes complexes, en essayant d'être à l'heure dans des délais critiques. J'ai également eu la chance d'avoir un mari très moderne, surtout à cette époque. Certains hommes comprenaient l'égalité.

Vous avez inventé, ou du moins popularisé, le terme génie logiciel [développement logiciel, technologie logicielle]. Pourquoi avait-il besoin de trouver un nouveau nom?

Dans les premières années d'Apollo, les programmes n'étaient pas pris au sérieux comme les autres disciplines de l'ingénierie. Bien que nous disposions d'un système assez complexe de nombreux composants, nous n'avons pas été reconnus pour un travail dans un domaine vraiment sérieux. Par désespoir, j'ai inventé le terme, comme pour déclarer: "Hé, nous, en fait, nous sommes aussi des ingénieurs." Pendant longtemps, cela a été perçu comme une blague. Et puis un jour, lors d'une réunion, l'un des gourous de fer les plus respectés a expliqué à tout le monde qu'il était d'accord avec moi. Le processus de création de logiciels doit également être considéré comme une discipline d'ingénierie, comme c'est le cas avec le matériel. Ce fut un moment mémorable.


Margaret Hamilton est immortalisée sous forme de figures pour Lego de la série NASA Women

Après Apollo, des parties de votre code ont été utilisées dans Skylab, la première station spatiale, puis dans le programme de la navette spatiale. Vous avez fondé votre propre entreprise et mis à profit votre expérience pour développer des logiciels plus abordables et plus fiables. Quelles leçons les programmeurs peuvent-ils tirer aujourd'hui du projet Apollo?

Récemment, nous sommes tombés sur des systèmes qui ont provoqué l'écrasement de l'avion et le pilote n'a pas compris ce qui se passait. De plus, ce qui est devenu clair du projet Apollo - bien qu'il ait fonctionné différemment - qu'il est préférable de définir les systèmes à l'avance pour minimiser le nombre d'erreurs, au lieu de publier immédiatement un tas de code, qui devra ensuite être corrigé avec des correctifs, qui devront également être corrigés plus tard. . Apparemment, cette leçon n'a pas été apprise - à cet égard, les logiciels sont aujourd'hui développés de la même manière qu'il y a 50 ans.



Il y a une photographie célèbre de 1969 où vous vous tenez à côté d'une pile de code de mission Apollo imprimé presque aussi grand que vous. Récemment, cette image a été comparée à une photographie de Katie Bowman, une scientifique qui a aidé à développer un algorithme qui a créé la toute première image d'un trou noir. Elle pose avec une pile de disques durs de son projet, et ce montage photo est devenu viral. Vous souvenez-vous de la façon dont vous avez pris cette photo et de ce que vous avez appris de cette comparaison?

La photographie a été prise pendant la mission Apollo 11 par un photographe du MIT spécialement pour les journaux. Nous nous sommes emportés, avons saisi toutes les annonces d'Apollo dans mon bureau et avons construit cette tour. J'ai essayé de trouver un moyen de la tenir debout. Il ne me semble pas qu'une telle comparaison soit mauvaise. Au moins, ils ne nous ont pas cachés. Bien que je n'envie pas Bowman, elle a dû lutter contre tous les sarcasmes qui peuvent se propager sur Internet. Dans un sens, la situation est devenue pire pour les femmes aujourd'hui.

Quels conseils donneriez-vous aux jeunes femmes qui veulent faire carrière dans la programmation?

Ne laissez pas la peur vous saisir et n'ayez pas peur de dire «je ne sais pas» ou «je ne comprends pas» - il n'y a pas de questions stupides. Et ne croyez pas à 100% les soi-disant experts!

Source: https://habr.com/ru/post/fr460969/


All Articles