Margaret Hamilton: “Eles estavam preocupados que os homens pudessem se rebelar; mas não aconteceu "

Um inovador no campo da ciência da computação fala sobre como ele liderou o desenvolvimento de software para o pouso da missão Apollo 11 na lua



Barack Obama apresenta a Margaret Hamilton a Medalha Presidencial da Liberdade em 2016

A pioneira em ciência da computação, Margaret Hamilton, desempenhou um papel fundamental no pouso dos astronautas na Lua, que ocorreu pela primeira vez em 20 de julho de 1969, 50 anos atrás, bem como em devolvê-los em segurança alguns dias depois. Uma jovem programadora do MIT, com uma criança pequena, dirigia a equipe que criou o software de voo a bordo para as missões da Apollo, incluindo a Apollo 11 . Esse sistema de computador foi um dos mais difíceis da época. Sua abordagem rigorosa de programação foi tão bem-sucedida que nenhum erro de software ocorreu durante as missões tripuladas da Apollo. "Simboliza a geração de mulheres desconhecidas que ajudaram a enviar a humanidade ao espaço", disse o presidente Barack Obama em 2016, quando concedeu a Hamilton a Medalha da Liberdade Presidencial , o maior prêmio civil dos Estados Unidos. Em 2017, ela se tornou uma das poucas mulheres que trabalhavam para a NASA, imortalizada na forma de figuras LEGO. Por ocasião do 50º aniversário do primeiro pouso na lua, Hamilton, 82 anos, relembra seu trabalho pioneiro em tecnologia da computação.

Por que você entrou na programação? Quando você começou, não havia diplomas em ciência da computação ...

Casei-me em 1958, logo após receber um diploma em matemática e um diploma adicional em filosofia no Earlham College. Nós dois poderíamos ir para a faculdade - eu estou em matemática abstrata e meu marido em química - mas trabalhei como professora no ensino médio por um ano, tivemos uma filha e meu marido decidiu que queria se formar em direito em Harvard. Encontrei um emprego para sustentar minha família no MIT próximo. O trabalho estava no laboratório do professor Edward Lorenz, o pai da teoria do caos, e deveria desenvolver um sistema que previsse o clima. Ele precisava de graduados com educação matemática. Contratamos uma babá para cuidar de sua filha. Lá aprendi o que é um computador e como escrever software. Ciência da computação e programação ainda não existiam como disciplinas separadas; programadores estudaram no trabalho. O amor de Lorentz por experimentar o software acabou sendo contagioso, então eu fui infectado.

Como você entrou no projeto Apollo em 1964?

Dos programas de redação, passei a encontrar aeronaves inimigas no laboratório Lincoln no MIT. Eu planejava voltar para a faculdade quando meu marido viu um anúncio em um jornal. O laboratório de instrumentos de medição do MIT procurava pessoas para desenvolver software para "enviar um homem para a lua". O laboratório recebeu um contrato da NASA para criar software de voo a bordo para o projeto Apollo, pois foi ela quem também desenvolveu equipamentos de computação para isso. Fiquei atraído pela idéia em si e pelo fato de ninguém ter feito isso antes. Eu fui o primeiro programador e a primeira mulher que eles contrataram. Os engenheiros do sexo masculino já estavam trabalhando no projeto, mas estavam em eletrônica, e essa não era a área deles. E eu já tive essa experiência. Acho que no laboratório eles decidiram que eu lidaria com algo novo.

Você trabalhou pela primeira vez no software de missão não tripulada da Apollo. Mas então você foi gradualmente atualizado para o chefe da equipe de desenvolvimento de software para espaçonaves tripuladas, incluindo a Apollo 11. Qual foi a sua responsabilidade?

Havia dois computadores de bordo - um no módulo de comando da Columbia e outro na Eagle lunar. Nossa tarefa era desenvolver software que deveria funcionar sozinho em cada módulo, bem como o software comum. No começo, ninguém pensava que o software seria uma questão tão importante. No entanto, gradualmente todos começaram a entender o quanto tudo dependia dele. Nosso grupo cresceu tanto que, como resultado, cerca de 100 programadores trabalharam na equipe. Em risco estavam as vidas dos astronautas. Nosso software precisava ser extremamente confiável e precisava detectar erros e se recuperar deles a qualquer momento durante a missão. E tudo isso deveria ter correspondido ao ferro.


Margaret Hamilton, em 1969, listando o código de software desenvolvido por sua equipe para missões Apollo

Você teve problemas para combinar trabalho como programador e maternidade?

Muitas vezes à noite ou nos fins de semana, levava minha filha Lauren para trabalhar. Uma vez que estávamos juntos, e eu estava envolvido em uma simulação da missão de voar para a lua. Ela gostava de me imitar e brincar de astronauta. Ela começou a pressionar as teclas e de repente lançou uma simulação. Então ela apertou mais teclas, e a simulação caiu. Ela escolheu um programa que deveria rodar antes do lançamento - mas ao mesmo tempo a simulação já estava "voando" para a lua. O computador tinha tão pouca memória que apagou todos os dados de navegação necessários para voar. Eu pensei: meu Deus, isso poderia acontecer por acaso durante uma missão real. Sugeri alterar o programa para evitar a possibilidade de iniciar o segmento de pré-lançamento durante o voo.
No entanto, as autoridades do MIT e da NASA decidiram que os astronautas eram muito bem treinados para cometer esse erro. E durante o vôo, na próxima missão, Apollo 8, um dos astronautas a bordo acidentalmente fez exatamente o que Lauren fez. Erro Lauren! Eu levantei o buraco e insisti que a missão fosse reconfigurada. Depois disso, eles, é claro, já estão autorizados a fazer alterações no programa.

Os astronautas tiraram a maior parte da glória pela lua. No entanto, eles fizeram isso usando o sistema que você criou que alertou sobre situações de emergência em voo. Como Obama disse: "Nossos astronautas não tiveram muito tempo, mas, felizmente, tiveram Margaret Hamilton".

Pouco antes do pouso, avisos de emergência apareceram na tela prioritária do computador e o computador estava sobrecarregado. Vi como tudo isso aconteceu, parado no centro de controle do MIT. Depois disso, recriamos a situação - a chave do radar estava na posição errada e consumiu a energia do processador. Logo ficou claro que o software não apenas informava as pessoas sobre um problema de hardware, mas também as compensava - tarefas recarregadas e reatribuídas com a mais alta prioridade. Os mecanismos de detecção e recuperação de erros foram úteis. Todos ficaram aliviados quando se sentaram - e que os astronautas estavam bem e que o software funcionou perfeitamente.

Até onde eu entendi, nos primeiros dias da programação das mulheres havia bastante. Acreditava-se que este era o trabalho das mulheres . Foi esse o caso em sua experiência?

A programação nunca foi considerada trabalho feminino, pelo menos não em nenhum dos muitos projetos em que trabalhei. O pessoal da computação manual era predominantemente mulher, e muitas mulheres usavam calculadoras mecânicas como Marchant - mas elas não eram programadoras. Eles não escreveram código. Quando comecei a trabalhar no projeto Apollo, não havia mais mulheres escrevendo código. Depois de alguns anos, poucas mulheres apareceram - algumas das quais trabalhavam para mim. Sempre houve muito mais homens.

Os homens incomodaram você liderá-los?

Quando assumi o controle, um dos principais chefes disse que não tinha dúvidas sobre minha competência, mas que estava preocupado que alguns homens do meu grupo pudessem provocar uma revolta. Mas isso não aconteceu. Mais do que qualquer outra coisa, nos concentramos em missões e trabalhamos lado a lado para resolver problemas complexos, tentando chegar a tempo em prazos críticos. Eu também tive a sorte de ter um marido muito moderno, especialmente para aquela época. Alguns homens entendiam igualdade.

Você inventou, ou pelo menos popularizou, o termo engenharia de software [desenvolvimento de software, tecnologia de software]. Por que ele precisava criar um novo nome?

Nos primeiros anos da Apollo, os programas não foram levados tão a sério como outras disciplinas de engenharia. Embora tivéssemos um sistema bastante complexo de muitos componentes, não recebemos reconhecimento pelo trabalho em um campo verdadeiramente sério. Desesperado, cunhei o termo, como se declarasse: "Ei, nós também somos engenheiros". Durante muito tempo, foi percebido como uma piada. E então, um dia em uma reunião, um dos mais respeitados gurus do ferro explicou a todos que ele concordava comigo. O processo de criação de software também precisa ser considerado como uma disciplina de engenharia, como é o caso do hardware. Foi um momento memorável.


Margaret Hamilton é imortalizada na forma de figuras para Lego da série NASA Women

Após o Apollo, partes do seu código foram usadas no Skylab, a primeira estação espacial e, em seguida, no programa de ônibus espaciais. Você fundou seu próprio negócio e usou sua experiência para desenvolver software mais acessível e confiável. Que lições os programadores podem aprender hoje com o projeto Apollo?

Recentemente, encontramos sistemas que causaram o acidente do avião e o piloto não entendeu o que estava acontecendo. Além disso, o que ficou claro no projeto Apollo - embora funcione de maneira diferente - é melhor definir sistemas com antecedência para minimizar o número de erros, em vez de emitir imediatamente um monte de código, que precisará ser corrigido com patches, que também precisarão ser corrigidos posteriormente . Aparentemente, esta lição permaneceu desaprendida - nesse sentido, hoje, o software é desenvolvido da mesma maneira que há 50 anos.



Há uma fotografia famosa de 1969, onde você está ao lado de uma pilha de códigos de missão da Apollo impressos quase tão altos quanto você. Recentemente, essa imagem foi comparada com uma fotografia de Katie Bowman, uma cientista que ajudou a desenvolver um algoritmo que criou a primeira imagem de um buraco negro. Ela posa com uma pilha de discos rígidos de seu projeto, e essa montagem de fotos se tornou viral. Você se lembra de como tirou essa foto e o que aprendeu com essa comparação?

A fotografia foi tirada durante a missão Apollo 11 por um fotógrafo do MIT, especialmente para jornais. Nós nos empolgamos, pegamos todas as listas da Apollo no meu escritório e construímos esta torre. Eu tentei encontrar uma maneira de mantê-la na posição vertical. Não me pareceu que essa comparação fosse ruim. Pelo menos eles não nos esconderam. Embora eu não tenha inveja de Bowman, ela teve que combater todo o sarcasmo que pode se espalhar na Internet. Em certo sentido, a situação piorou para as mulheres hoje.

Que conselho você daria para as jovens que desejam construir uma carreira em programação?

Não deixe o medo tomar conta de você e não tenha medo de dizer "eu não sei" ou "eu não entendo" - não há perguntas estúpidas. E não acredite 100% nos chamados especialistas!

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


All Articles