На чому економив Boeing? Фатальні наслідки дешевого програмного забезпечення

29


Залишається загадкою, що лежить в основі кризи Boeing Co і 737 Max і як іменита компанія, допустила катастрофічні помилки в програмному забезпеченні. Подейкують, що причина може бути в прагненні Boeing передати роботу підрядникам, з більш дешевою вартістю послуг. Про це повідомляє агентство Bloomberg.
Аутсорсинг давно став болючим питанням для деяких інженерів Boeing, які, крім страху втрати роботи, кажуть, що це призвело до фатальних наслідків.
Програмне забезпечення Boeing 737 MAX, було розроблено в той час, коли корпорація звільняла досвідчених інженерів і постачальників скорочувати витрати. В авіакомпанію запрошували інженерів з недостатніми знаннями для роботи в аерокосмічній галузі.
Відзначається, що програмне забезпечення, яке послужило причиною загибелі двох літаків, а також декільком позаштатних ситуацій вкрай небезпечним для життя всіх пасажирів і екіпажу, було віддано на аутсорсинг в Індію. Місцеві програмісти працювали за 9 доларів в годину, що в середньому в 4 рази дешевше аналогічної роботи в США.
За словами Марка Рабіна, колишнього інженера з розробки програмного забезпечення Boeing, який працював у групі льотних випробувань, яка підтримувала MAX, софт писали недавні випускники коледжу, найняті індійським розробником програмного забезпечення HCL Technologies Ltd.
Недавні випробування на симуляторі, проведені Федеральним управлінням цивільної авіації США, показали, що проблеми з програмним забезпеченням самої продаваної моделі Boeing виявилися ще глибше, ніж передбачалося. Після того, як регулятор виявив ще одну проблему з комп’ютерним чіпом, пов’язану із затримкою реагування на надзвичайні ситуації, акції корпорації впали ще на кілька пунктів.
Як це було
Відомий американський авіабудівник і його субпідрядники покладалися на тимчасових працівників заробляють лише 9 доларів в годину за розробку і тестування програмного забезпечення.
За словами Марка Рабіна, в офісах Boeing Field в Сіетлі недавні випускники коледжу, найняті індійським розробником програмного забезпечення HCL Technologies Ltd., займали кілька рядів робочих місць.
Кодери з HCL зазвичай проектували у відповідності зі специфікаціями, встановленими Boeing. Тим не менш, «це було спірно, тому що це було набагато менш ефективним, ніж код написаний Boeing-інженерами», — каже Рабін. Він згадує, що «потрібно багато обхідних маневрів і доробок, тому що цей код був не коректний». Багато правила просто ігнорувалися дешевими і не дуже досвідченими працівниками.
Залучення до роботи над літаком індійських компаній давало Boeing та інші дивіденди, крім прямої економії на зарплатах.
В останні роки Boeing отримав декілька замовлень на виготовлення військових і комерційних літаків для Індії, наприклад, на 22 мільярди доларів у січні 2017 року на поставку SpiceJet Ltd. Це замовлення включав 100 літаків 737 Max 8 і представляв найбільший замовлення Boeing за всю історію індійської авіакомпанії, в країні, де домінує Airbus.
Грунтуючись на резюме, розміщеному в соціальних мережах, інженери HCL допомогли розробити і протестувати програмне забезпечення 737 Max для відображення польотів, а співробітники іншої індійської компанії Cyient Ltd. займалися програмним забезпеченням обладнання для льотних випробувань.
В одному пості співробітник HCL підсумував свої обов’язки з посиланням на сумно відому модель, яка почала льотні випробування в січні 2016 року: «Забезпечив швидкий обхідний шлях для вирішення проблеми, за якої були відкладені льотні випробування 737 Max».
Інженери, які працювали на розробці 737 Max, який Boeing поспішав випустити, щоб відповідати конкуруючому літаку Airbus SE, скаржилися на тиск з боку менеджерів, які, при проектуванні нової моделі, обмежували зміни, які могли призвести до додаткових витрат.
«Boeing робив все можливе, все, що ви можете собі уявити, щоб знизити витрати, в тому числі переїзд з Puget Sound, тому що ми стали тут дуже дорогими», — сказав Рік Людтке, колишній інженер з управління польотом Boeing, звільнений в 2017 році. «Все це зрозуміло, якщо ви думаєте тільки з точки зору бізнесу».
Рабін, колишній інженер-програміст, згадував одного менеджера, який на загальних зборах сказав, що Boeing не потрібні провідні інженери. «Я був шокований тим, що в кімнаті, де було кілька сотень, в основному, провідних інженерів, нам говорили, що ми не потрібні», — сказав Рабін, звільнений в 2015 році.
Аутсорсинг та інженіринг
Типовий лайнер має мільйони деталей — і мільйони рядків коду — і Boeing вже давно передав більшу частину роботи постачальникам, які слідують його детальним проектів.
Починаючи з моделі 787 Dreamliner, випущеної в 2004 році, Boeing прагнула збільшити прибуток, пропонуючи постачальникам самостійно розробляти більше деталей. Думка полягала в тому, що «вони експерти, розумієте, і вони подбають про все це для нас», — сказав Френк Маккормік, колишній інженер-програміст Boeing, який пізніше працював консультантом для регуляторних органів та виробників. «Це була просто нісенітниця».
В обмін на замовлення компанії Air India в 2005 році на 11 мільярдів доларів Boeing пообіцяв інвестувати 1,7 мільярда доларів в індійські компанії. Це було благом для HCL та інших розробників програмного забезпечення з Індії, таких як Cyient, чиї інженери широко використовувалися в індустрії комп’ютерних послуг.
Rockwell Collins, яка виробляє електроніку кабіни, була однією з перших аерокосмічних компаній, яка почала значну роботу в Індії у 2000 році, коли HCL почала тестувати там програмне забезпечення для компанії Cedar Rapids, розташованої в штаті Айова. До 2010 року в HCL працювало більше 400 чоловік в центрах проектування, розробки та перевірки для Rockwell Collins.
У тому ж році Boeing відкрив «центр передового досвіду» з HCL, заявивши, що компанії будуть співпрацювати в створенні програмного забезпечення, необхідного для льотних випробувань». У 2011 році Boeing назвав Cyient, тоді відомий як Infotech, у списку своїх «постачальників» для проектування, аналізу напруг і розробки програмного забезпечення на 787 і 747-8.
«Інжиніринг почав ставати товаром», — сказав Венс Хильдерман, співзасновник компанії TekSci, яка постачала інженерів з аерокосмічним контрактами і почала втрачати роботу зарубіжних конкурентів на початку 2000-х років.
Американські компанії, які займаються авіаційним радіоелектронним обладнанням, особливо активно просувалися, переносячи більше 30% своїх розробок програмного забезпечення в офшори.
Інженери в Індії заробляли близько 5 доларів на годину; зараз — 9 або 10 доларів порівняно з 35-40 доларами для тих, хто знаходиться в США по візі H1B.
«У нас були проблеми з командою Індії»
HCL, колись відома як Hindustan Computers, була заснована в 1976 році мільярдером Шивом Надаром і має річний обсяг продажів понад 8,6 мільярдів доларів. За словами Сукамала Банерджі (Sukamal Banerjee), віце-президента Sukamal Banerjee, має 18 000 співробітників у США і 15 000 у Європі, глобальна компанія має великий досвід роботи в області обчислювальної техніки.
737 Max став лідером продажів незабаром після того, як його презентували у 2011 році. Але для амбітних інженерів його розробка нагадувала «болото», сказав Пітер Лем, який розробив автоматизоване управління польотом 767 і тепер є консультантом. Max був оновленням 50-річної конструкції, і зміни повинні були бути досить обмеженими, щоб Boeing міг випускати нові літаки, такі як формочки для печива, з невеликими змінами для складальної лінії або авіакомпаній. «Для інженера це не найкраща робота», — говорить він.
Контрактні інженери з Cyient допомогли протестувати обладнання для льотних випробувань. Чарльз Лавджой, колишній інженер-конструктор контрольно-вимірювальних приладів в компанії, сказав, що інженери в США перевіряли креслення, зроблені вночі в Індії щоранку о 7:30. «У нас були проблеми з командою Індії», — говорить він. «Креслення відповідали вимогам самі по собі, але ми могли б зробити це краще».
Численні розслідування, в тому числі розслідування кримінальної справи Міністерством юстиції, намагаються з’ясувати, як і коли були прийняті критичні рішення щодо програмного забезпечення. За словами слідчих, під час катастроф літаків Lion Air і Ethiopian Airlines, в результаті яких загинули 346 людей, система MCAS підштовхнула літаки до неконтрольованих занурень з-за поганих даних з одного датчика.
За словами Лемма, така конструкція порушувала базові принципи надлишковості для декількох поколінь інженерів Boeing, і компанія, мабуть, ніколи не перевіряла, як реагує програмне забезпечення. «Це приголомшливий провал», — сказав він.
Boeing також повідомив, що незабаром після того, як у 2017 році почалися поставки Max, він дізнався, що сигнальна лампочка, яка могла попередити екіпажі про проблему з датчиком, була неправильно встановлена в програмному забезпеченні для відображення польоту. У заяві Boeing в травні, объясняющем, чому компанія не поінформувала регуляторів в той час, кажуть, що інженери вирішили, що це не проблема безпеки. «Старше керівництво компанії, — йдеться в заяві, — не брали участь у перевірці».
Є думка…
Перед менеджментом Boeing виникла дилема: створити новий літак цього класу або ж ще раз оновити легендарний 737. Створення повністю нової машини — це складно, дорого і ризиковано в частині термінів (особливо, коли проект конкурента вже вирвався вперед). Але і поставити нові двигуни на 737-й теж не так просто: вони банально не поміщаються під крилом, адже, як ми пам’ятаємо, чим більше діаметр, тим більшою мірою двухконтурности можна домогтися, а разом з нею й більшої економічності, і меншій гучності.
В результаті, було прийнято рішення не ризикувати, а замовити версію двигуна з трохи зменшеним діаметром, підняти передню стійку шасі, а сам двигун винести трохи вперед. Але у такого рішення виявилися побічні ефекти. Найважливіший з них — зміна аеродинаміки літака. Компенсувати ці зміни було вирішено програмним способом. Додавши ту саму систему MCAS.
Система отримує свідчення з єдиного датчика і його поломка може призвести до того, що вона буде відхиляти літак навіть у ситуаціях, в яких це не потрібно. Пілоти не були поінформовані про наявність MCAS і були впевнені, що управляють все тим же, добре відомим 737-им. Це призвело до двох схожим катастроф, які почалися з поломки датчика і активації MCAS.
Для багатьох, винними у трагедії виявилися програмісти. Стали постити посилання на сторінку вакансій програмістів Boeing в Індії. Як, мовляв, довірили написання критично важливого коду людям, які вірять в реінкарнацію?
Але у всіх випадках працювало в точності так, як було задумано конструктором. Готується оновлення виправляє «помилки програмістів», а змінює параметри роботи системи MCAS. Урок цієї трагедії в тому, що ніякі програмні продукти не здатні компенсувати відсутність компетенцій і системного мислення. Вони можуть лише підвищити ефективність, але не бути заміною. Неважливо, про що йдеться управлінні літаком, мережею оператора зв’язку або державою — завжди є спокуса сказати «У всьому винні програмісти».
Роман Барський