Margaret com seu código para o Apollo 11. |
Margaret Heafield Hamilton (Paoli, Indiana, 17 de agosto de 1936) é uma cientista da computação, engenheira de software e empresária estadunidense. Foi diretora da Divisão de Software no Laboratório de Instrumentação do MIT, que desenvolveu o programa de voo usado no projeto Apollo 11, a primeira missão tripulada à Lua. O software de Hamilton impediu que o pouso na Lua fosse abortado. Margaret publicou mais de 130 artigos, atas e relatórios relacionados aos 60 projetos e seis programas importantes nos quais ela esteve envolvida.
História
Margaret Heafield é filha de Kenneth Heafield e Ruth Esther Heafield (sobrenome de solteira Partington). Ela se formou na Hancock High School em 1954 e estudou matemática na Universidade de Michigan. Formou-se em Matemática pelo Earlham College no estado de Indiana (EUA) no ano de 1958 e fez pós-graduação em Meteorologia no MIT (Instituto de Tecnologia de Massachusetts). Depois de se formar, ela lecionou matemática e francês no ensino médio por pouco tempo enquanto seu marido terminava a graduação. Ela se mudou para Boston, Massachusetts para fazer pós-graduação em matemática pura na Universidade Brandeis. Em 1960 assumiu uma posição interina no MIT para desenvolver programas de predição climatológica nos computadores LGP-30 e PDP-1 (no Project MAC de Marvin Minsky) para o professor Edward Norton Lorenz no departamento de meteorologia. Naquela época, ciência da computação e engenharia de software ainda não eram disciplinas; em vez disso, programadores aprendiam trabalhando e adquirindo experiência.
De 1961 a 1963, ela trabalhou no Projeto SAGE no MIT, onde ela foi uma das primeiras pessoas programadoras a escrever software para o computador de interceptação AN/FSQ-7 computer (the XD-1 computer) procurar aeronaves "não-amigáveis". Ela também escreveu software para os Laboratórios de Pesquisa da Força Aérea em Cambridge (Air Force Cambridge Research Laboratories).
De 1961 a 1963, ela trabalhou no Projeto SAGE no MIT, onde ela foi uma das primeiras pessoas programadoras a escrever software para o computador de interceptação AN/FSQ-7 computer (the XD-1 computer) procurar aeronaves "não-amigáveis". Ela também escreveu software para os Laboratórios de Pesquisa da Força Aérea em Cambridge (Air Force Cambridge Research Laboratories).
Margaret Heafield Hamilton na NASA. |
Chegando na NASA
Depois disso, Hamilton se juntou ao Laboratório Charles Stark Draper no MIT, que nessa época estava trabalhando na missão espacial Apollo. Ela se tornou diretora e supervisora da programação de software para os projetos Apollo e Skylab.
Na NASA, a equipe de Hamilton foi responsável por estar à frente do software de orientação de bordo da Apollo, necessário para navegar e pousar na lua, e suas variações usadas em várias missões (incluindo a Skylab, posteriormente).
Na NASA, a equipe de Hamilton foi responsável por estar à frente do software de orientação de bordo da Apollo, necessário para navegar e pousar na lua, e suas variações usadas em várias missões (incluindo a Skylab, posteriormente).
O trabalho de Margaret Hamilton evitou que o pouso na lua da Apollo 11 fosse abortado. Quando faltavam três minutos para a Apollo 11 pousar na lua, vários alarmes do módulo lunar começaram a tocar. O computador ficou sobrecarregado com atividades do radar de aproximação, desnecessárias para o pouso. No entanto, devido à arquitetura robusta do software, o sistema continuou funcionando de maneira que as atividades prioritárias interrompessem as menos prioritárias. Mas ela sabia, por ter escrito o código do computador, que ele seria capaz de realizar o pouso, pois foi programado para desconsiderar as tarefas desnecessárias no momento do pouso. A falha foi atribuída a um erro humano na lista de comandos a serem executados pelos astronautas.
Devido a um erro na lista de comandos, o interruptor do radar de aproximação ficou na posição errada. Isso fez com que ele mandasse sinais errados para o computador. O resultado foi que o computador estava sendo requisitado a executar todos as suas funções normais para o pouso ao mesmo tempo que recebia uma carga extra de dados espúrios que usavam 15% do seu tempo. O computador (ou melhor, o software) foi inteligente o suficiente para reconhecer que estava sendo requisitado a executar mais tarefas do que devia. Então ele mandou um alarme, que queria dizer ao astronauta "Eu estou sobrecarregado com mais tarefas do que devia estar fazendo agora e vou manter só as tarefas mais importantes"... Na verdade, o computador foi programado para mais do que reconhecer condições de erro. Um conjunto completo de programas de recuperação estava incorporado no software. A ação do software, neste caso, foi eliminar tarefas de baixa prioridade e reestabelecer as mais importantes ... Se o computador não tivesse reconhecido esse problema e se recuperado, duvido que a Apolo 11 tivesse pousado na lua com sucesso.
—Margaret Hamilton
Margaret Hamilton foi CEO de 1976 a 1984 de uma empresa co-fundada por ela, chamada Higher Order Software (HOS), que criou um produto chamado USE.IT.
Em 1986 ela fundou sua própria empresa, a Hamilton Technologies Inc. com sede em Cambridge, Massachusetts. A companhia foi desenvolvida com base em seu paradigma para Sistemas e Design de Software DBTF - Development Before the Fact (em inglês) (em tradução livre para o Português ficaria algo como: Desenvolvimento antes do fato).
Margaret Hamilton é creditada por ter criado o termo "engenharia de software". Ela foi uma das desenvolvedoras dos conceitos de computação paralela, priority scheduling, teste de sistema, e capacidade de decisão com integração humana, tais como mostradores de prioridade que viriam a ser o fundamento do design de software ultra confiável.