Маргарет Гамильтон — специалист по информатике, чье имя долгое время оставалось в тени астронавтов, хотя именно созданное ей программное обеспечение сделало возможной высадку на Луну. О женщине, которая возглавила разработку кода для миссий «Аполлон» и ввела в обиход термин software engineering, — в очередной статье из серии «Эта женщина».
«Дикий Запад» программирования
Маргарет Гамильтон (в девичестве Хифилд) родилась 17 августа 1936 года в Паоли, штат Индиана. В 1958-м она получила степень бакалавра математики в колледже Эрлхам. Переехав в Бостон, Гамильтон устроилась в Массачусетский технологический институт (MIT).
Там она начала с разработки программного обеспечения для прогнозирования погоды под руководством Эдварда Лоренца, чьи работы позже легли в основу теории хаоса. В те годы компьютерная наука как дисциплина практически не существовала: программисты учились на собственном опыте, это была новая территория, настоящий Фронтир.

Маргарет Гамильтон в MIT
MIT
«Когда я только начинала работать в этой сфере, все это было для нас как Дикий Запад — мы были первооткрывателями неизведанных земель. Никто нас ничему не учил», — вспоминала Гамильтон.
Путь к NASA
С 1961 по 1963 год Гамильтон работала над проектом SAGE (Semi-Automatic Ground Environment) в Линкольнской лаборатории MIT. Это была система противовоздушной обороны США. О том, насколько велика ее важность, говорит хотя бы тот факт, что ее стоимость превысила затраты на Манхэттенский проект. Маргарет оказалась среди программистов, писавших код для компьютера AN/FSQ-7, который занимался обнаружением вражеских самолетов.

Маргарет в макете командного модуля «Аполлон-12»
MIT
В этой работе проявилась ее редкая настойчивость. Новичкам в проекте обычно давали программу, с которой никто не мог справиться. «Это была весьма хитроумная программа, и более того, автор кода находил удовольствие в написании комментариев исключительно на греческом и латинском языках. Я была первой, кто смог ее запустить», — признается Маргарет. Именно успехи в SAGE сделали ее кандидатом на работу в NASA.
В 1965 году Гамильтон присоединилась к MIT Instrumentation Laboratory, где разрабатывали бортовой компьютер для миссии «Аполлон». Она стала первым программистом, нанятым в проект, а позже возглавила подразделение Software Engineering Division. Ее команда отвечала за создание всего бортового программного обеспечения лунного модуля, а также станции Skylab. Именно тогда Гамильтон начала использовать термин software engineering («программная инженерия»), желая подчеркнуть серьезность своей работы:
«Я боролась за то, чтобы придать программному обеспечению значимость, чтобы те, кто его создает, получили должное уважение. Когда я впервые начала использовать эту фразу, ее посчитали забавной. Надо мной долго подшучивали. Но программное обеспечение в конце концов получило ту же степень уважения, что и любая другая дисциплина».
Как Маргарет нашла критический баг
Одна из самых показательных историй, иллюстрирующих проницательность Гамильтон, связана с миссией «Аполлон-8». Как-то раз ее дочь Лорен, которую она брала на работу, играла «в астронавта». Девочку посадили за компьютерное моделирование миссии — сама того не зная, она выполняла задачу бета-тестера программы. Лорен случайно запустила команду P01, предназначенную для старта, в то время как корабль в симуляции уже находился в режиме полета. Это привело к сбою.


Гамильтон с коллегой в у прототипа компьютера XD-1 системы наведения SAGE
Margaret Hamilton's archive
Бортовой управляющий компьютер «Аполлона»
NASA
Гамильтон поняла, что ее дочь случайно открыла уязвимость системы. Маргарет предложила добавить защиту от такой ошибки, но в NASA отказались: сочли, что подготовленные астронавты не сделают подобную глупость. Тогда Гамильтон настояла на том, чтобы в документации появилось предупреждение: «Не запускайте P01 во время полета».
По иронии астронавт Джеймс Ловелл, возвращаясь с орбиты Луны, именно это и сделал. Навигационные данные оказались стерты, и Гамильтон с коллегами потратили девять часов, чтобы восстановить работу системы. Позже Ловелл признал, что это была его ошибка, и полученный опыт помог ему во время аварии на «Аполлоне-13».
Спасение миссии «Аполлон-11»
20 июля 1969 года, когда лунный модуль «Орёл» с Нилом Армстронгом и Баззом Олдрином находился в считанных километрах от поверхности Луны, сработали аварийные сигналы. Компьютер был перегружен: из-за случайно включенного стыковочного радара он получал больше задач, чем мог обработать.

План полета миссии «Апполон», 1976
NASA
Если бы он вышел из строя, миссию пришлось бы отменить. Но Гамильтон предусмотрела такой сценарий. В разработанной ею системе приоритетов компьютер смог сконцентрироваться на главной задаче — посадке, и игнорировать второстепенные операции. Программа выдала предупреждение, давая астронавтам выбор: продолжить посадку или прервать ее. Они выбрали нужную опцию — и модуль успешно сел на Луну.
Сама Гамильтон позже объясняла: «Компьютер был достаточно умен, чтобы понять, что его просят выполнить больше задач, чем он способен. Он отправил сигнал тревоги, означавший: „Я перегружен задачами, и я буду выполнять только самые важные — те, что нужны для посадки“».
Признание и наследие
В 1976 году Гамильтон основала компанию Higher Order Software, а в 1986-м — Hamilton Technologies, где развивала так называемый метод «разработки до факта» (Development Before The Fact) — подхода, позволяющего предотвращать ошибки еще на этапе проектирования.


Базз Олдрин и космический корабль «Аполлон-11» на Луне 24 июля 1969
NASA
Маргарет Гамильтон в 1989
NASA
Ее заслуги получили официальное признание: в 2003 году NASA присудило ей Exceptional Space Act Award с премией 37 200 долларов — крупнейшее индивидуальное вознаграждение в истории агентства. 22 ноября 2016 года Барак Обама вручил Гамильтон Президентскую медаль Свободы — высшую гражданскую награду США. Он отметил: «Маргарет символизирует поколение незамеченных женщин, которые помогли отправить человечество в космос».
Маргарет Гамильтон опубликовала более 130 научных работ. Сегодня она продолжает руководить своей компанией в Кембридже, штат Массачусетс, а введенный ей термин «программная инженерия» прижился и стал повсеместным названием этой дисциплины.
Еще в серии
→ Эта женщина. Первый автор в истории: Энхедуанна
→ Эта женщина. Императрица и поэтесса: Нур-Джахан
→ Эта женщина. Глава академиков и бретер: Екатерина Дашкова
→ Эта женщина. Лучший репортер Америки: Нелли Блай
→ Эта женщина. Легендарная летчица: Амелия Эрхарт
→ Эта женщина. Первая в кинорежиссуре: Алис Ги-Блаше
→ Эта женщина. Открывшая структуру ДНК: Розалинд Франклин
→ Эта женщина. Единственная соло-путешественница: Сара Маркиз










