波音737事故,软件化要不要“背锅”?
欢迎关注“创事记”的微信订阅号:sinachuangshiji
文/小智、徐川
来源:InfoQ(ID:infoqchina)
两次惨痛空难后再看波音的软件化之路:它曾满载荣光,如今备受质疑。
事件回顾
3月10日,埃塞俄比亚航空公司一架波音737 MAX 8客机在飞往肯尼亚途中坠毁。机上有149名乘客和8名机组成员,无人生还。
据报道,此次失事的是一架全新的波音飞机,四个月前才交付给该航空公司。这是波音737 MAX 8半年内出现的第二起严重事故。(第一起为2018年10月29日印尼狮航的坠落事件,189人罹难)目前中国大陆共有96架该机型飞机正在运营,中国民航局今天表示,为确保中国民航飞行安全,囯内暂停该机型的商业运行。
一年多前,波音公司还是传统企业数字化转型的杰出代表,其软件化发展得到工业互联网领域的一致认可。但短短半年时间,同一机型两次空难,其中一次的失事原因已明确为软件设计缺陷。这样惨痛的后果,软件化是不是要“背锅”?更有人无奈戏言:波音真把自己当互联网企业了,让用户去试bug。
波音的数字化转型,还有参考意义吗?
两次空难的技术原因分析
伤痛之余,我们仍需复盘两次坠机的原因。
回顾第一起坠落事件,调查人员发现,失事飞机的迎角传感器“数据错误”触发“防失速”自动操作,导致机头不断下压,飞行员多次手动拉升未果,飞机最终坠海。
这个自动控制下压机头的系统,名叫MCAS,意为自动纠正失速系统。波音737MAX在设计上配备了更粗大更省油的发动机,而这也使得飞机容易在大迎角飞行失速。为此,波音设计师就为737MAX开发了MCAS。这是波音737MAX的一种操纵辅助系统,其设计初衷是,如果机身上的传感器检测到高速失速的情况,即使在没有飞行员输入信号的情况下,该系统将强制将飞机的机头向下推。
但在狮航空难事件中,该系统接收到了错误数据,导致飞机在正常情况下开始不断下压机头,飞行员在11分钟内连续手动拉升20余次终告失败,坠海罹难。
狮航空难发生后,国内资深机长陈建国表示:“狮航空难是飞机信号系统接收到一个假信号,信号显示飞机‘抬头’,所以控制系统持续给出了‘低头’的指令。机组与控制系统搏斗很长时间,最终发生事故。”
根据波音公司对飞行员的培训,发现该系统程序有4个特点:
1、发现失速后,程序只相信主传感器,不与备份传感器核实。(同样的情况空客的飞机则会交给飞行员处理。)
2、一旦相信,不通知飞行员,直接操纵机翼。
3、飞行员手动操作后,仍旧会每五秒自动执行,让飞行员不得不与飞机较劲。
4、程序开关非常隐蔽。
业内人士指出:“因为MCAS系统,737MAX飞机可能在计算机控制下执行长达10秒的非指令性低头,单靠驾驶杆操作很难拉住。而如果飞行员并不清楚这一切,那么就可能变成飞机俯冲-人工向上配平-飞机继续俯冲的搏斗,飞行员的胜算并不大。”
空难发生后,波音公司更新了737MAX飞行操作手册,指导飞行员如何应对“迎角传感器数据错误”,报导称波音考虑虑修改软件设置:自动系统触发后,一旦机组人员对设置作“反向”操作,即可关闭MCAS的“自动下压机头”功能。但这一“软件升级”并没有得到官方的确认。
本次埃塞俄比亚航空空难的具体官方报告还未公布,从目前已有的消息来看:这架飞机失事前,最大地速达到383海里每小时,超过了飞机正常的飞行速度。该机起飞经历后反反复复爬升下降,下降爬升的过程,高度7000~8600英尺之间,最大地速达到383海里每小时,超过了飞机正常的飞行速度。该数据与狮航的全球第一架737MAX空难有些相似,都可以归结为LOC—空中失控。具体原因还需要更多的数据来分析。
两次惨痛空难过后,回过头来再看看波音的软件化道路:它曾满载荣光,如今备受质疑。
波音的软件化之路
2012年,由通用电气发起,思科、IBM、英特尔等80多家公司成立了工业互联网联盟,试图重新定义制造业的未来,这其中的一员,就有波音公司。
波音公司是全球最大的航天航空器造商。每天,数以千计的波音客机从全球各地机场起降,将旅客运送至目的地。举个例子,波音787梦想客机飞行一次就会产生多达1TB的数据,每年数百架787梦想客机飞行数千次,产生的数据使得波音公司坐拥了一座数据金矿。
面对如此海量的数据,这家100多年历史的公司意识到,需要重新思考软件方法,才能充分利用所有这些数据来改进各种职能。波音公司的核心竞争力并非工厂和生产线,而是其7000多种软件。波音研发设计涉及8000多款软件,其中1000多款为通用软件,可以通过市场购买获得,剩余的7000多种软件为波音自行开发,代表着其核心竞争力。
利用大数据预测飞行故障
波音与卡耐基梅隆大学合作建立了一个“航空数据分析实验室”,期望利用AI和大数据技术对波音飞机进行全面升级。这次合作的初衷是,让人类更好地理解和利用航空工业中每天产生的巨量数据,用机器学习的方法来优化波音飞机的运行,用大数据来指导设计、建造和运营。
一架飞机上往往有数千个传感器,每条航线每次飞行产生的海量数据,通过AI、大数据技术快速锁定有效数据,让飞机在起飞前有能力预判潜在风险,从而得以进行定点检查和零部件替换,降低风险。
数字化转型的3E法则
2017年12月,在Pivotal举办的的SpringOnePlatform大会上,波音公司CIO办公室执行主任NikiAllen,分享了她负责主导的波音公司软件开发方法转型的演讲。以下做简要摘录。
从传统企业到软件驱动,波音的数字化转型总结起来就是3个“E”法则:参与(Engagement)、卓越(Excellence)和支持(Enablement)。
参与:第一个挑战是让你的开发人员IT人员,业务领导人和高级管理人员,对转型过程和带来的成效感兴趣并激动不已。如果没有积极参与,转型的效果就可能会大打折扣,这需要IT采用新的思维模式。除了内部新鲜血液,波音公司还与Pivotal等外部组织建立强大的合作关系,共同推进。
卓越:执行的质量。实现卓越的执行要求团队的每个成员都致力于自己的工作,并与同事合作。鼓励团队成员倾听并相互学习,并与同事分享他们的知识。
支持:前两个E的执行会引出第三个E:支持(Enablement)。但要支持企业发展,还需要企业自身投入到转型工作中。否则,这些工作将无法产生预期的效果。
建立数字化转型环境
波音公司将其数字工厂称为DTE(数字转型环境)。DTE包括应用程序开发和运行平台PivotalCloudFoundry以及平台运行的底层硬件,还包括开发团队的新工作流程,以充分利用平台的云原生能力。这些包括支持持续集成和开发,这使得波音的应用团队能够快速测试和部署新软件到生产环境,获得用户的反馈意见,并反复持续改进软件。
通过数字软件化转型,波音公司极大地提升了数据的利用率与生产效率。但这样的数字化转型带来的也不全是好消息,不断进化的智能化、自动化技术,也带来了一些思考和问题:当软件系统出现故障或者对于飞行状况判断失误时,如何规避风险?人工何时介入?
技术发展的自动化悖论
虽然现代汽车的自动驾驶系统仍然处在很初级的阶段,但在航空领域,自动驾驶系统早已大行其道,飞机的自动驾驶系统,会根据预先设定好的航路,全程驾驶飞机,甚至完成降落,飞行员反而成为了辅助存在。在这种情况下,很容易会造成一种“自动化悖论”:
自动化不但操作简单,而且可以自动纠错,哪怕操作者不够专业都能够正常工作很长时间,他的不足被自动化完美掩盖,很可能一辈子都不会被同行发现。
即便是老手,由于系统不需要他们手工作业,原有的操作技能也会因为疏于练习而退化。
自动化系统往往在异常情况下失效,或者以发生异常的形式失效,如果操作者技巧不够熟练是无法应付这些突发状况的。
这种悖论不仅发生在飞机自动驾驶系统里,也出现在如运维自动化、自动化港口、自动驾驶汽车等领域里,我们过去讨论的大多是如何提升自动化水平,甚至做到无人值守,但是,现在我们有必要严肃的讨论一下如何防止自动化悖论了。