NASA, 23 сентября 1999 года. К тому моменту аппарат Mars Climate Orbiter уже девять месяцев летел к Марсу. Вот-вот он должен был выйти на орбиту планеты. Но что-то пошло не так: связь со спутником пропала. А вместе с ней — несколько лет кропотливой работы и около 125 миллионов долларов. Что же там произошло и кто оказался виноват в ошибке? Разбираемся. 

Что случилось в космосе

В конце 90-х NASA активно изучало Марс. Одной из ключевых миссий стал Mars Climate Orbiter — автоматический космический аппарат для изучения атмосферы и климата планеты. Кроме научной работы, он должен был выполнять ещё одну важную задачу — выступать ретранслятором связи для следующей марсианской миссии — посадочного аппарата Mars Polar Lander.

Над проектом работали сразу несколько организаций. За часть программного обеспечения отвечала компания Lockheed Martin, а за навигацию и управление полётом — специалисты NASA и Лаборатории реактивного движения (JPL). 

Запуск состоялся в декабре 1998 года — всё прошло успешно. Аппарат штатно покинул Землю, вышел на межпланетную траекторию и начал путешествие к Марсу. В следующие месяцы команда провела несколько коррекций курса, получала телеметрию и в целом не видела причин для серьёзного беспокойства. Со стороны всё выглядело так, будто миссия идёт по плану.

Ровно до 23 сентября 1999 года. В этот день Mars Climate Orbiter должен был выйти на орбиту Марса. Для этого — пройти за планетой, включить двигатели и замедлиться, чтобы марсианская гравитация «зацепила» спутник.

Когда аппарат скрылся за Марсом, связь с ним временно прервалась. Это была штатная часть процедуры. Но в назначенное время сигнал не вернулся. Инженеры пытались установить контакт снова и снова, но безрезультатно. 

Позже расследование покажет, что аппарат вошёл в атмосферу Марса гораздо ниже расчётной высоты. Вместо запланированной орбиты он оказался слишком близко к планете. По одной из версий, аппарат разрушился в верхних слоях атмосферы. Точно установить его судьбу не удалось.

В чём была проблема

После потери аппарата, NASA провело расследование. Довольно быстро выяснилось, что стало причиной аварии. Как обычно, дьявол скрывался в мелочах.

В США исторически используются две системы измерений одновременно.

  • В науке, аэрокосмической отрасли и большинстве инженерных расчётов обычно применяется метрическая система (SI).

  • При этом многие компании десятилетиями использовали другие единицы измерения: футы, фунты и так далее.

Скорее всего, вы уже догадались. Помните, мы говорили, что аппарат делали несколько подрядчиков. Так вот, ПО Lockheed Martin передавало данные об импульсе двигателей в pound-force seconds — в единицах, основанных на фунтах силы. А навигационная система от NASA ожидала получить ту же информацию в ньютон-секундах.

“The 'root cause' of the loss of the spacecraft was the failed translation of English units into metric units in a segment of ground-based, navigation-related mission software”

Во время полёта специалисты наблюдали расхождения в навигационных данных. Но аппарат продолжал выполнять команды и двигаться к Марсу. Ошибки накапливались постепенно, влияли на расчёты траектории и привели к аварии в самый ответственный момент.

Кого назвали виновными

Короткий ответ: никого конкретно, а систему в целом. В обеих командах работали опытные инженеры, они старались провести успешную миссию и не вредили проекту специально. 

Не было никакого смысла делать вывод: «Человек перепутал единицы измерения. Уволить человека и найти на замену кого-то получше». Ошибки не зависят от уровня таланта. И бороться с ними лучше с помощью системы, а не через людей. 

Если убрать из этой истории Марс, космос и 125 миллионов долларов, останется очень знакомая ситуация. Несколько команд делают один сложный продукт. Ошибки в нём будут с вероятностью 99,9% — и это просто надо принять. А затем выдохнуть и начать системно работать с рисками.

Мы в Профи.ру придумали такую систему: поделили весь продукт на логические домены. У каждого свой цвет:

  • Если домен зелёный, значит, он некритичен. Мы за него переживаем, но несильно. Если что-то пойдёт не так, ничего страшного не случится. Команда в своём темпе и без паники всё поднимет.

  • Если домен красный, значит, команда оперативно идёт чинить код в случае ошибки. К красным относятся, например, чаты, аутентификация или базы данных.

Мы раскрашиваем эту карту рисков на специальных встречах. И таким образом, меньше переживаем, что кто-то может что-то сломать.

И что в итоге

Главная задача не в том, чтобы создать систему, в которой никто никогда не ошибается. Такая система, скорее всего, вообще не сможет работать. 

Цель — понимать, где ошибка действительно критична, и вовремя её замечать. Собственно, к такому же выводу после потери Mars Climate Orbiter пришло и NASA: проблема была не в том, что кто-то не договорился, а в том, что проект не смог поймать проблему до аварии.