Как стать автором
Обновить

Чему меня, как разработчика, научили аварии в космосе

Время на прочтение8 мин
Количество просмотров32K
Всего голосов 90: ↑89 и ↓1+125
Комментарии29

Комментарии 29

А меня есть тоже пара уроков, вынесенных из аварий в космосе и в самолетостроении. Данные уроки больше для разработчиков электроники, а не только софта:


  • Всегда имей "Черный ящик" — т.е. еще до того, как система или устройство разработано и запущено, предусмотри систему сбора данных на случай сбоев или отказов для возможности пост-анализа. Пусть это будет простой лог файл или буффер — но обязательно предусмотри. Не рассчитывай, что тебе кто-то расскажет, как все было. Когда твое устройство накроется, а ты не будешь знать почему — это поможет.


  • Это тоже из космоса: Никогда не пытайся решить проблему (или фиксить баг) на обум, т.е. пока ты не докопаешься до причины. Потрать 1-2-3 дня на выяснение, даже если ты уверен, что решение займет минуты.
    Слишком часто я видел уверенных программистов, которые смотрят на проблему и говорят мне:
    — А, я догадываюсь в чем проблема, счас пофиксю за 5 минут.



Прихожу на следующий день:
— Пофиксил?
— Нет, не сработало, счас работаю над вторым вариантом
— Сколько времени надо?
— Да, не больше 5 минут.


На следующий день:
— Пофиксил?
— Нет. Этот вариант тоже не сработал, но у меня есть…
— Стоп! Теперь предлагаю я. Что ты сделал, чтобы лучше диагностировать дефект? Ты пробовал его воспроизвести в этой ситуации?
— Нет.
— А в этой?
— Нет, это займет 5 часов на написание теста, а у нас нет времени…
— Да, но я знаю, что через 5 часов мы будем знать больше о дефекте, чем до этого. Поэтому делай. И я даю тебе еще целый день на то, чтобы ты добавил отладочные порты, а не жду от тебя фикс..


В итоге ошибка была в совершенно другом месте, чем думал программист...

Как же приятно было читать этот комент! Мне уже казалось что я один так считаю. За 10 лет опыта в разработке электроники, я работал всего в одной конторе(из 5), которая вываливала максимум диагностической информации и на это выделялось отдельное время. У всех остальных нет времени на то, чтобы это сделать. и потом тратятся месяцы, на то, что можно было бы пофиксить за часы, если бы предварительно было заложена неделя на добавление хоть какого-то логирования.
На каждом митинге, где я упоминал про необходимость логов, на меня смотрели как на фрика и крутили пальцем у виска, «да какие логи! на это нету времени! просто не будь рукожопом!» и другие сказки о мифических единорогах-ниженерах, которые делают всё с первого раза и никогда не ошибаются.
Ну я тоже всегда так делаю. Но я-то как раз по первому образованию — инженер-ракетчик :-)
ни НАСА не знали об испытании

Это вы, простите, гоните. Майкл Фолл был командиром экипажа. Не знать, что происходит на станции он не мог.

Это в шестом своём полёте, на МКС в 2003 году, он был командиром экипажа.
А в 1997 — бортинженер-2 на Мире.

Действительно. Что-то я напутал.

НЛО прилетело и опубликовало эту надпись здесь

История с Волыновым напоминает ещё историю с катастрофой Ту-104, командир которого во время падения передавал в эфир показания приборов — самому́ ему это не помогло, но переданные сведения помогли потом исправить другие экземпляры той же модели.

Ещё одно правило, почерпнутое «из космоса» — когда работаешь на удалённой системе и вносишь изменения в конфиги, продумай автоматический откат к текущему состоянию в случае, если что-то пойдёт не так

И всегда имей реплику удаленной системы под рукой, на которой тестируешь все изменения таким же образом, как это сделал бы на удаленной.

Только не забывай её выключать, когда работаешь с удалённой. А то при попытке связи с "Луной-3" ответы имитатора из соседнего здания приняли. Хорошо, время было, и успели его выключить.

не зря одно из правил админа: через терминал удаленного доступа все сервера кажутся одинаковыми

Вот прямо рекомендую цветовую маркировку. В настройках терминала поменять черный дефолтный цвет фона на какой-нибудь другой. И к этому еще расположение терминалов на рабочих столах: на первом столе — боевые сервера, на втором — тестовые, и т.д. Банально, требует некоторой дисциплины — но помогает!
+100.
Как-то раз по-ошибке набрал halt не на локальной машине, а в консоли, подключенной по ssh к удалённому контроллеру.

Пришлось ехать на другой конец города, включать.

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

А тут уже, кажется, кашу маслом не испортишь! :-) И в баше цвет, и имя хоста в заголовок окна. И строгая рекомендация иметь открытым только один прод (хочешь другой — закрой тот, открой этот — или хотя бы сверни!). Разные названия БД у разных клиентов. Рекомендация не цепляться к проду через pgadmin, а только через psql (так фон будет разный, а pgadmin везде одинаковый). Но общий смысл один — увеличить дистанцию (цветовую, пространственную, временную) между окнами в разные серверы. А то да, страшновато…
И не запускать там обновление системы пока там работает архивация.
из примет:
удаленно настраивать фаервол - к дальней дороге.
Очень любопытные параллели — спасибо за нестандартный подход.
Спасибо, очень интересно. Из космического добавлю «Фобос»: ни когда не ленись прогнать программу с изменениями на стенде-имитаторе, какими бы ни банальными они ни казались.
Измученный разработчик библиотеки, работавший ночью, пропустил всего один пробел

Чего стоило этого бедному разработчику!
НЛО прилетело и опубликовало эту надпись здесь
Интересно, что Волынов после такого фактически падения смог восстановится и добиться возвращение в отряд космонавтов. И даже полетел в космос ещё раз.
Лучше пока статью не читать — много фактических ошибок в переводе, которые меняют смысл (переводчик не связывался со мной, как автором для вычитки). Сейчас отправлю список ошибок автору.

«Люди, ЗНАВШИЕ меня лично»

Они слишком много знали
Перевод исправили — теперь всё ОК

Книга Чертока Ракеты и люди очень информативна в этом плане. Как они ракеты испытывали. А еще мемуары Грабина. Про испытания пушек

НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий