波音 737 事故,軟體化要不要“背鍋”?
兩次慘痛空難後再看波音的軟體化之路:它曾滿載榮光,如今備受質疑。
事件回顧
3 月 10 日,衣索比亞航空公司一架波音 737 MAX 8 客機在飛往肯亞途中墜毀。機上有 149 名乘客和 8 名機組成員,無人生還。
據報道,此次失事的是一架全新的波音飛機,四個月前才交付給該航空公司。這是波音 737 MAX 8 半年內出現的第二起嚴重事故。(第一起為 2018 年 10 月 29 日印尼獅航的墜落事件,189 人罹難)目前中國大陸共有 96 架該機型飛機正在運營,中國民航局今天表示,為確保中國民航飛行安全,囯內暫停該機型的商業執行。
一年多前,波音公司還是傳統企業數字化轉型的傑出代表,其軟體化發展得到工業網際網路領域的一致認可。但短短半年時間,同一機型兩次空難,其中一次的失事原因已明確為軟體設計缺陷。這樣慘痛的後果,軟體化是不是要“背鍋”?更有人無奈戲言:波音真把自己當網際網路企業了,讓使用者去試 bug。
波音的數字化轉型,還有參考意義嗎?
兩次空難的技術原因分析
傷痛之餘,我們仍需覆盤兩次墜機的原因。
回顧第一起墜落事件,調查人員發現,失事飛機的迎角感測器“ 資料錯誤 ”觸發“防失速”自動操作,導致機頭不斷下壓,飛行員 多次手動拉昇未果 ,飛機最終墜海。
這個自動控制下壓機頭的系統,名叫 MCAS,意為自動糾正失速系統。波音 737 MAX 在設計上配備了更粗大更省油的發動機,而這也使得飛機容易在大迎角飛行失速。為此,波音設計師就為 737 MAX 開發了 MCAS。這是波音 737 MAX 的一種操縱輔助系統,其設計初衷是,如果機身上的感測器檢測到高速失速的情況,即使在沒有飛行員輸入訊號的情況下,該系統將強制將飛機的機頭向下推。
但在獅航空難事件中,該系統接收到了錯誤資料,導致飛機在正常情況下開始不斷下壓機頭,飛行員在 11 分鐘內連續手動拉昇 20 餘次終告失敗,墜海罹難。
獅航空難發生後,國內資深機長陳建國表示:“獅航空難是飛機訊號系統接收到一個假訊號,訊號顯示飛機‘抬頭’,所以控制系統持續給出了‘低頭’的指令。機組與控制系統搏鬥很長時間,最終發生事故。”
根據波音公司對飛行員的培訓,發現該系統程式有 4 個特點:
-
發現失速後,程式只相信主感測器,不與備份感測器核實。(同樣的情況空客的飛機則會交給飛行員處理。)
-
一旦相信,不通知飛行員,直接操縱機翼。
-
飛行員手動操作後,仍舊會每五秒自動執行,讓飛行員不得不與飛機較勁。
-
程式開關非常隱蔽。
業內人士指出:“因為 MCAS 系統,737 MAX 飛機可能在計算機控制下執行長達 10 秒的非指令性低頭,單靠駕駛杆操作很難拉住。而如果飛行員並不清楚這一切,那麼就可能變成飛機俯衝 - 人工向上配平 - 飛機繼續俯衝的搏鬥,飛行員的勝算並不大。”
空難發生後,波音公司更新了 737 MAX 飛行操作手冊,指導飛行員如何應對“迎角感測器資料錯誤”,報導稱波音考慮慮修改軟體設定:自動系統觸發後,一旦機組人員對設定作“反向”操作,即可關閉 MCAS 的“自動下壓機頭”功能。但這一“軟體升級”並沒有得到官方的確認。
本次衣索比亞航空空難的具體官方報告還未公佈,從目前已有的訊息來看:這架飛機失事前,最大地速達到 383 海里每小時,超過了飛機正常的飛行速度。該機起飛經歷後反反覆覆爬升下降,下降爬升的過程,高度 7000~8600 英尺之間,最大地速達到 383 海里每小時,超過了飛機正常的飛行速度。該資料與獅航的全球第一架 737MAX 空難有些相似,都可以歸結為 LOC—空中失控。具體原因還需要更多的資料來分析。
回過頭來再看看波音的軟體化道路:它曾滿載榮光,如今備受質疑。
波音的軟體化之路
2012 年,由通用電氣發起,思科、IBM、英特爾等 80 多家公司成立了工業網際網路聯盟,試圖重新定義製造業的未來,這其中的一員,就有波音公司。
波音公司是全球最大的航天航空器造商。每天,數以千計的波音客機從全球各地機場起降,將旅客運送至目的地。舉個例子,波音 787 夢想客機飛行一次就會產生多達 1TB 的資料,每年數百架 787 夢想客機飛行數千次,產生的資料使得波音公司坐擁了一座資料金礦。
面對如此海量的資料,這家 100 多年曆史的公司意識到,需要重新思考軟體方法,才能充分利用所有這些資料來改進各種職能。波音公司的核心競爭力並非工廠和生產線,而是其 7000 多種軟體。波音研發設計涉及 8000 多款軟體,其中 1000 多款為通用軟體,可以通過市場購買獲得,剩餘的 7000 多種軟體為波音自行開發,代表著其核心競爭力。
利用大資料預測飛行故障
波音與卡耐基梅隆大學合作建立了一個“航空資料分析實驗室”,期望利用 AI 和大資料技術對波音飛機進行全面升級。這次合作的初衷是,讓人類更好地理解和利用航空工業中每天產生的巨量資料,用機器學習的方法來優化波音飛機的執行,用大資料來指導設計、建造和運營。
一架飛機上往往有數千個感測器,每條航線每次飛行產生的海量資料,通過 AI、大資料技術快速鎖定有效資料,讓飛機在起飛前有能力預判潛在風險,從而得以進行定點檢查和零部件替換,降低風險。
數字化轉型的 3E 法則
2017 年 12 月,在 Pivotal 舉辦的的 SpringOne Platform 大會上,波音公司 CIO 辦公室執行主任 Niki Allen,分享了她負責主導的波音公司軟體開發方法轉型的演講。以下做簡要摘錄。
從傳統企業到軟體驅動,波音的數字化轉型總結起來就是 3 個“E”法則:參與(Engagement)、卓越(Excellence)和支援(Enablement)。
參與:第一個挑戰是讓你的開發人員,IT 人員,業務領導人和高階管理人員 ,對轉型過程和帶來的成效感興趣並激動不已。 如果沒有積極參與,轉型的效果就可能會大打折扣 ,這需要 IT 採用新的思維模式。除了內部新鮮血液,波音公司還與 Pivotal 等外部組織建立強大的合作關係,共同推進。
卓越:執行的質量。 實現卓越的執行要求團隊的每個成員都致力於自己的工作,並與同事合作。鼓勵團隊成員傾聽並相互學習,並與同事分享他們的知識。
支援:前兩個 E 的執行會引出第三個 E:支援 (Enablement)。但要支援企業發展,還需要企業自身投入到轉型工作中。否則,這些工作將無法產生預期的效果。
建立數字化轉型環境
波音公司將其數字工廠稱為 DTE(數字轉型環境) 。DTE 包括應用程式開發和執行平臺 Pivotal Cloud Foundry 以及平臺執行的底層硬體,還包括開發團隊的新工作流程,以充分利用平臺的雲原生能力。這些包括支援持續整合和開發,這使得波音的應用團隊能夠快速測試和部署新軟體到生產環境,獲得使用者的反饋意見,並反覆持續改進軟體。
通過數字軟體化轉型,波音公司極大地提升了資料的利用率與生產效率。但這樣的數字化轉型帶來的也不全是好訊息,不斷進化的智慧化、自動化技術,也帶來了一些思考和問題:當軟體系統出現故障或者對於飛行狀況判斷失誤時,如何規避風險?人工何時介入?
技術發展的數字化悖論
雖然現代汽車的自動駕駛系統仍然處在很初級的階段,但在航空領域,自動駕駛系統早已大行其道,飛機的自動駕駛系統,會根據預先設定好的航路,全程駕駛飛機,甚至完成降落,飛行員反而成為了輔助存在。在這種情況下,很容易會造成一種“自動化悖論”:
自動化不但操作簡單,而且可以自動糾錯,哪怕操作者不夠專業都能夠正常工作很長時間,他的不足被自動化完美掩蓋,很可能一輩子都不會被同行發現。
即便是老手,由於系統不需要他們手工作業,原有的操作技能也會因為疏於練習而退化。
自動化系統往往在異常情況下失效,或者以發生異常的形式失效,如果操作者技巧不夠熟練是無法應付這些突發狀況的。
這種悖論不僅發生在飛機自動駕駛系統裡,也出現在如運維自動化、自動化港口、自動駕駛汽車等領域裡,我們過去討論的大多是如何提升自動化水平,甚至做到無人值守,但是,現在我們有必要嚴肅的討論一下如何防止自動化悖論了。
當金融、汽車、製造、零售等傳統行業的產業網際網路程序逐漸加快時,我們也不會無動於衷。把先進的軟體技術介紹給更多傳統行業,關注和挖掘傳統行業優秀的技術實踐是我們的使命。如果你對產業網際網路的實踐經驗有興趣,願意跟同行交流,歡迎掃描以下二維碼,進群與我們交流。