«Если программист танцует и поëт — значит, он написал индусский код»
(Народная примета)
Boeing 737 стал одним из самых массовых узкофюзеляжных авиалайнеров в истори авиации, пережил множество модификаций и усовершенствований. На самолет ставились новые двигатели, другие системы управления полетом - одно оставалось неизменным: 737 оставался самолетом, управляемым "руками", без электронных систем обработки и передачи сигналов на управляющие поверхности.
Однако, полностью "механическим" самолет оставаться не мог, и в конструкцию крайнего (возможно, последнего) поколения 737 - 737 MAX - были внедрены электронные системы, призванные облегчить пилотирование самолета - в частности, пресловутая MCAS. Название этой системы, пожалуй, на слуху у каждого, кто хоть как-то интересуется авиацией. Именно по вине этой системы (точнее, неправильной логики её работы) произошли две катастрофы, унесшие жизни людей и остановившие полеты целого семейства самолетов почти на 2 года.
Почему так произошло? Дело в том, что при разработке MCAS Boeing использовал достаточно странную схему - написанием кода для неё были заняты не профессиональные программисты Боинга (а они в Сиэттле точно имеются, и опыт разработки ЭДСУ на 787 у американской авиастроительной корпорации имеется),
а программисты - аутсорсеры. Программное обеспечение MAX, с которым впоследствии возникли проблемы, было разработано в то время, когда компания увольняла опытных сотрудников и заставляла поставщиков сокращать расходы. Американский авиастроитель и его подрядчики выбрали путь экономии. Временные работники, которые занимались разработкой и тестированием программного обеспечения самолётов, зарабатывали всего 9 долларов в час. При этом набирали их в странах, не имеющих серьёзных традиций и достижений в аэрокосмической области, — например, в Индии.
По словам Марка Рабина (Mark Rabin), бывшего инженера по разработке программного обеспечения Boeing, недавние выпускники колледжа, нанятые индийской компанией HCL Technologies, занимали несколько рядов рабочих мест. Эти сотрудники проектировали в соответствии со спецификациями, установленными Boeing. Но, по словам Рабина, это было гораздо менее эффективно, чем работа опытных инженеров-разработчиков.
Конечно, такой контракт принёс Боингу и дивиденды - договоры на заключение поставок американским самолётам индийским авиакомпаниям достигли каких-то астрономических показателей.
Однако, справедливости ради, стоит отметить, что такая практика привела к двум катастрофам...
Система MCAS была переработана, ошибки исправлены. Самолёты допустили к эксплуатации, однако внезапно возникли очень интересные обстоятельства...
26 января в аэропорту Сиэтла случились два инцидента с длинными версиями Boeing 737 в модификациях -900 и MAX 9. Во внутреннем ПО для авиакомпании, произошла ошибка в системе расчетов, что привело к двум tail strike'ам на взлете. Первым вылетал MAX 9 (N941AK), в момент отрыва, экипаж почувствовал удар на взлете, а так же сзади послышались звуки скрежета металла. Спустя 40 минут, борт успешно вернулся в аэропорт вылета. А почти следом, всего через 6 минут, взлетала 900тка поколения NG, где история так же повторилась.
Причиной повреждения воздушных судов, оказалась ошибка в программном обеспечении, которая передавала неверные данные экипажам воздушных судов. И.. Барабанная дробь. снова Boeing 737max, на сей раз с длинной версией, снова проблемы с "Боинговским" ПО, на сей раз, затронувшем еще и NG, которые напрямую влияют на безопасность полетов!
И ведь действительно, занятые решением проблем с MCAS, американские авиационные власти, а, возможно, и сама компания Boeing, забыли о том, что индийские программисты создавали код не только для этой системы)...
Как думаете, насколько велика вероятность того, что случившиеся инциденты станут новым витком в скандале с ПО Боинг 737 макс? Ошибка ли это Боинга, или просто 2 совпадения?