
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: проблема была не в том, что кто-то не договорился, а в том, что проект не смог поймать проблему до аварии.
