O Poder do CTO: Margaret Hamilton – O software que salvou o pouso da Apollo 11 ...
Atendimento / Ouvidoria

O Poder do CTO: Margaret Hamilton – O software que salvou o pouso da Apollo 11

Blog

Margaret Hamilton liderou o software da Apollo. Em 1969, ele lidou com uma sobrecarga minutos antes do pouso na Lua. Veja como funcionou.

Margaret Hamilton liderou a divisão de engenharia de software do Laboratório de Instrumentação do MIT, responsável pelo programa que guiou as naves do projeto Apollo. Em 20 de julho de 1969, minutos antes do pouso da Apollo 11 na Lua, o computador de bordo ficou sobrecarregado e disparou os alarmes 1201 e 1202. O software, desenhado pela equipe dela, descartou as tarefas menos importantes, manteve as críticas funcionando e permitiu o pouso. Em 2016, ela recebeu a Medalha Presidencial da Liberdade, a maior honraria civil dos Estados Unidos.

A história é contada como um feito da exploração espacial. Para quem pensa na carreira de CTO, é sobretudo uma lição de liderança técnica: projetar sistemas que continuam funcionando quando algo dá errado.

Quem é Margaret Hamilton?

Margaret Hamilton nasceu em 17 de agosto de 1936, em Paoli, no estado americano de Indiana. Formou-se em matemática pelo Earlham College e fez pós-graduação em meteorologia no MIT. Trabalhou também no SAGE, sistema de defesa aérea desenvolvido pelo Lincoln Laboratory do MIT.

O Laboratório de Instrumentação recebeu o contrato de orientação e controle do programa Apollo em 9 de agosto de 1961. Hamilton entrou na equipe alguns anos depois e chegou a diretora da divisão de engenharia de software. É creditada como quem deu nome à disciplina “engenharia de software”.

O que aconteceu durante o pouso da Apollo 11?

Faltando cerca de três minutos para o pouso, o computador de bordo começou a emitir alarmes. Os códigos 1201 e 1202 indicavam que ele estava sobrecarregado.

A causa, descoberta depois por uma análise de falhas, estava na lista de verificação dos astronautas. Ela orientava a tripulação a colocar a chave do radar de encontro, equipamento usado para reencontrar a nave principal na volta, na posição errada. O radar passou a sobrecarregar o processador com interrupções, justamente na fase mais delicada da missão.

O computador havia sido projetado para executar sete programas ao mesmo tempo. Um pedido do astronauta Buzz Aldrin foi o oitavo.

Como o software resolveu o problema?

Escolhendo o que sacrificar. Nas palavras de Hamilton, a cada vez que o processador se aproximava da sobrecarga, o software “limpava toda a sua fila de processos, reiniciava suas funções” e deixava rodar “apenas as de maior prioridade” até o pouso ser concluído.

O raciocínio é o de uma triagem. Em vez de travar tentando fazer tudo, o sistema descartava as tarefas acessórias e mantinha as necessárias ao pouso. A tripulação recebeu os alarmes como alertas de prioridade e teve de decidir entre seguir ou abortar. Com minutos de margem, a decisão foi seguir.

Hamilton resumiu o episódio dizendo que o software estava “compensando” um problema de hardware.

O que eram os alertas de prioridade?

Uma inovação da equipe dela. Em vez de mostrar todos os avisos da mesma forma, o sistema interrompia os astronautas apenas com os alarmes críticos. O conselho de Hamilton para quem recebesse um deles era contar até cinco antes de responder.

A citação da Medalha da Liberdade descreve a contribuição em termos técnicos: ela “contribuiu para os conceitos de software assíncrono, escalonamento por prioridade e exibição de prioridades”, que “estabeleceram a base do projeto e da engenharia de software modernos e ultraconfiáveis”.

Qual foi o legado técnico?

A correção permitiu os pousos seguintes: Apollo 12, 14, 15, 16 e 17. A Apollo 13 abortou antes de pousar, depois de uma explosão no módulo de serviço.

A base do software da Apollo foi adaptada para a estação Skylab, para o ônibus espacial e para os primeiros sistemas digitais de controle de voo de aviões. O ônibus espacial fez mais de 100 missões em órbita entre 1981 e 2011.

Quando o código-fonte da Apollo 11 foi publicado na plataforma GitHub, em 2016, o nome dela aparecia na primeira linha: “SUBMITTED: MARGARET H. HAMILTON DATE: 28 MAR 69”, seguido do cargo, “COLOSSUS PROGRAMMING LEADER”.

Que reconhecimento ela recebeu?

Os principais marcos:

  • 1976: cofundou a empresa Higher Order Software.
  • Março de 1986: fundou a Hamilton Technologies, em Cambridge, Massachusetts.
  • 2003: recebeu da Nasa o prêmio Exceptional Space Act Award, com 37.200 dólares, o maior valor concedido pela agência a uma pessoa até então.
  • 22 de novembro de 2016: recebeu a Medalha Presidencial da Liberdade do presidente Barack Obama.
  • 2017: a Lego lançou o conjunto “Mulheres da Nasa”, que recria a foto de 1969 em que ela aparece ao lado da pilha de listagens do software.

Por que o caso fala de liderança, e não só de programação?

Porque a decisão que salvou o pouso foi tomada anos antes, no desenho do sistema. Alguém precisou defender que o software fosse preparado para uma situação que ninguém havia previsto: excesso de trabalho causado por um erro de outra equipe, em outro equipamento, a partir de uma instrução em um papel.

O erro não estava no código. Estava na lista de verificação. Um sistema que só funciona se todas as outras partes funcionarem é frágil. Um sistema que se protege das falhas alheias sobrevive.

O que o caso Margaret Hamilton ensina a quem quer ser CTO?

Ensina a projetar para a falha. A pergunta certa não é se algo vai dar errado, e sim o que o sistema faz quando der. Definir o que é prioritário e o que pode ser descartado em uma crise é uma decisão técnica que precisa ser tomada com antecedência.

Ensina também a cuidar de quem opera o sistema. Os alertas de prioridade foram pensados para pessoas sob pressão, com segundos para decidir. Um diretor de tecnologia responde pelo código e pela forma como as pessoas interagem com ele. Formação, trajetória e remuneração da função estão na página de CTO (Diretor de Tecnologia) do Guia de Carreiras.


Precisa de ajuda?