Архитектурные катастрофы – часть 12: как 2 миллиона человек встретили Рождество в аэропортах из-за техдолга в софте авиакомпании
С 21 по 31 декабря 2022 года Southwest снял 16 700 рейсов и десять дней не мог выполнять расписание: больше 2 000 000 пассажиров встретили Рождество в аэропортах.
Триггером стал шторм Elliott. Он ударил по всей отрасли – больше 18 000 отмен, но конкуренты оправились за пару дней, а Southwest простаивал почти до Нового Года.
❄️ Погода превращается в событие планирования экипажей
Денвер стоял с вечера 21-го до утра 23-го, Chicago Midway – с середины 22-го до конца 23-го. Из-за этого сломалась вся цепочка укомплектования самолетов экипажами.
Экипаж уходит со своей базы в трёхдневную цепочку рейсов через всю страну. Первый рейс цепочки не ушёл – экипаж остался дома, а его рейсы завтра и послезавтра в другом конце страны остались без людей.
В Денвере и Чикаго базировалась четверть всего лётного состава – поэтому обрыв вышел массовым.
Шторм закончился 26 декабря, и конкуренты возобновили полеты в тот же день. А Southwest отменял рейсы ещё три дня – на них пришлось 3/4 всех отмен отрасли за 24–31 декабря.
🧠 Что перестало работать
Планировщик экипажей был технически исправен. Дословно из письменных показаний COO Эндрю Уоттерсона Сенату США: "our Crew Scheduling software didn't stop working during this event". Но он устарел настолько, что оказался не готов к происшествию такого масштаба.
🔹 Состояние обновлялось голосом. Где экипаж, сколько отлетал, когда упрётся в лимит – это попадало в систему через телефонный разговор с планировщиком, по коллективному договору на записываемой линии. Очередь быстро стала огромной, по данным профсоюза бортпроводников – до 17 часов. Оптимизатор расписания полетов считал дальше, по картине мира, которой уже не было.
🔹 Режима восстановления не существовало. Планировщик (GE Crew Optimization, внутри – SkySolver) строил расписание вперёд. Разобрать бэклог сломанных связок он не умел вовсе: "SkySolver was never designed to look back" – подпись к графику в показаниях профсоюза пилотов.
🔹 Два оптимизатора без общего контракта. Самолёты и пассажиров считала отдельная система Baker, экипажи она почти не учитывала. В обычные дни расхождение терпимо, в кризисе Baker выдавал планы, исполнять которые было нечем.
💥 Кульминация
26 декабря сеть перезагрузили руками: заранее сняли две трети расписания на 27–29 декабря, сжавшись до ~1 500 вылетов в день с праздничного пика ~4 000. Планирование экипажей шло по старинке: карандашом и бумагой. Борта перегоняли 517 пустыми рейсами.
Счёт: 16 700 отменённых рейсов за 21–31 декабря, более 2 000 000 пострадавших пассажиров, $800 млн убытка до налогов за квартал, $140 млн штрафа Минтранса США – в 30 раз больше предыдущего рекорда ведомства.
🔍 Разбор полётов
🔸 Что пошло не так: единственный канал обновления состояния встал, и оптимизатор потерял связь с реальностью.
🔸 Почему это произошло: модернизацию откладывали годами. SWAPA предупреждал с 2014-го, TWU Local 556 – с 2018-го, в октябре 2021-го был сбой того же типа в меньшем масштабе. 7 ноября 2022-го глава SWAPA публично сказал, что до коллапса остаётся одна гроза, один сбой управления воздушным движением, один отказ роутера. Elliott пришёл через 44 дня.
🔸 Как надо было: электронное обновление состояния, отдельный режим разбора бэклога сломанных связок, общий контракт между Baker и планировщиком. Именно это Southwest сделал в 2023-м, вложив $1,3 млрд в ИТ.
📌 Три урока
🔹 Техдолг нельзя откладывать бесконечно, рано или поздно он выстрелит. Отсутствие инцидентов не доказывает запас прочности.
🔹 Мелкие инциденты уже случаются – предполагайте крупный. Октябрь 2021-го был тем же отказом в меньшем масштабе.
🔹 Ручной фолбэк держит тот масштаб, под который спроектирован. Телефон лежал на критическом пути автоматики: встала очередь – и оптимизатор остался без актуального состояния.
📚 Что почитать
– Наше короткое видео в Instagram
– Письменные показания COO Southwest Эндрю Уоттерсона и президента SWAPA Кейси Мюррея Сенату США (09.02.2023); consent order Минтранса США 2023-12-11