As equipes de software de voo da Apollo lideradas por Margaret Hamilton desenvolveram um sistema capaz de preservar as tarefas essenciais do pouso quando o computador ficava sobrecarregado. Durante a Apollo 11, em julho de 1969, o programa descartou trabalho de menor prioridade para que as funções críticas à aterrissagem continuassem.
Margaret Hamilton e as equipes de software da Apollo
Hamilton liderou equipes que desenvolveram o software de bordo da Apollo no Laboratório de Instrumentação do MIT. Em 1965, ela foi contratada como a primeira programadora do projeto Apollo no MIT e também foi a primeira mulher programadora do projeto. Em 1968, ocupava o cargo de diretora assistente responsável pela equipe do Módulo de Comando e Serviço.
O software não era obra de uma pessoa só: equipes desenvolveram os programas dos módulos Lunar e de Comando e Serviço. Os listados de código que aparecem na conhecida fotografia de Hamilton ao lado de uma pilha de páginas representam esse trabalho coletivo, não a autoria individual de cada folha.
Como o software da Apollo lidava com sobrecarga
Na Apollo 11, a recuperação por prioridades permitia que o computador interrompesse tarefas de menor importância e mantivesse em execução as funções necessárias ao pouso. Assim, uma sobrecarga não obrigava o sistema a abandonar todo o trabalho: as tarefas essenciais continuavam enquanto atividades dispensáveis eram descartadas.
Essa resposta fazia parte do software de voo desenvolvido pelas equipes de Hamilton. A nave concluiu o pouso lunar em 1969; o sistema de prioridades foi uma contribuição técnica para a missão, não o único fator de seu resultado.
O incidente P01 e uma proteção
Antes da Apollo 8, a filha de Hamilton, Lauren, acionou o programa pré-lançamento P01 durante uma simulação em modo de voo, provocando uma falha na simulação. Hamilton propôs mudanças no software para evitar esse tipo de problema.
Em 1968, durante a Apollo 8, Jim Lovell acionou o P01 por engano e dados de navegação desapareceram. As alterações propostas por Hamilton foram incorporadas depois desse episódio. O incidente do simulador e o erro ocorrido durante a missão foram eventos distintos, mas ajudaram a revelar a importância de prever como uma sequência de comandos poderia afetar o sistema.
Dos primeiros projetos de computação à engenharia de software
Antes da Apollo, Hamilton trabalhou com Edward Lorenz em software de previsão do tempo e, a partir de 1961, no projeto SAGE do Laboratório Lincoln do MIT. Em 1976, fundou a Higher Order Software; em 1985, criou a Hamilton Technologies.
Hamilton defendia a expressão “engenharia de software” para dar reconhecimento ao trabalho com programas e tratá-lo como parte da engenharia de sistemas. Ela começou a usar o termo, mas isso não significa que tenha sido sua criadora. Mais tarde, a Hamilton Technologies adotou a Universal Systems Language como seu principal produto: uma linguagem e metodologia de modelagem de sistemas voltada a prevenir erros e apoiar a programação defensiva.
Um trabalho coletivo e um reconhecimento público
O desenvolvimento do software Apollo envolveu equipes que Hamilton liderou. Em 2016, ela recebeu a Medalha Presidencial da Liberdade, uma das principais honrarias civis dos Estados Unidos.