图片

图片

图片来源:Thomas Vimare / Unsplash

在泰坦号(Titan)潜艇悲剧中, 泰坦号潜艇在泰坦尼克号沉船遗址附近发生爆炸,造成五人丧生。这一事件让我们关注到在设计、建造和操作潜艇过程中的一些决策细节,这些决策都对其安全性构成了威胁。

尽管在软件工程领域,我们面对的风险可能并不如同潜艇工程那般高(但像健康与航天行业、自动驾驶汽车等领域例外),某些情况下,依然可能面临高风险。甚至在非极端情况下,软件的失效也可能导致严重后果,如重大财务损失、声誉损害,以及可能引发的监管问题。

在本文中,我们将深入分析导致该悲剧的技术因素,并探索在工程领域我们能从中吸取到的教训。

图片

图片

教训 1:不能忽视安全措施

泰坦号潜艇的设计和运行中严重缺乏必要的安全措施,如:缺乏适当的认证和检查,通讯设备不佳,无备用应急潜艇,没有备用的逃生设计方案,潜艇潜水后未进行无损检测或对金属部件定期进行X光检查。

在软件工程中,我们也有类似的安全措施:代码审查、系统审计、测试策略、备份系统以及冗余设计。忽视这些措施其实就像是在赌博,十赌九输。定期进行代码审查、严格测试,并设置备份系统,可能就是区分小瑕疵和灾难性系统故障的关键。

图片

教训 2:质量不能因成本而妥协

泰坦号潜艇在一些部件上为了节省成本而做出了妥协:

  • 使用了较低深度额定的观察罩
  • 使用了过期的碳纤维代替钛金属
  • 使用了具有已知连接问题的廉价罗技 PS4 控制器
  • 使用了从亚马逊购买的非船用额定的 LED 灯
  • 使用了非船用额定的内部电子部件

这些选择反映了把成本放在质量之前的危险倾向。在软件工程中,这可能体现为使用过时的库,过度追求开发速度而忽视全面测试,或选择更便宜但可靠性较低的服务器基础设施。

作为软件工程师,即使面临预算压力,我们也必须坚守质量承诺。这可能涉及到倡导使用最新且可靠的技术,保证充足的测试时间,以及确保支持应用程序的基础设施可靠且强大。

图片

教训 3:专业知识的重要性

泰坦号的 CEO 选择雇佣刚毕业的大学生来替代潜艇领域的资深专家,虽然这样做节省了成本,但也付出了在经验和知识方面的代价,这突出了专业知识在关键安全项目中的重要性。

在软件工程领域,这警示我们对于复杂或高风险的项目,需要高度重视经验丰富的开发人员和架构师的价值。初级开发人员可以带来新鲜的想法和活力,但资深专家所提供的指导和知识,通常是避免陷阱并确保最终产品健壮性的必要条件。

图片

结语

泰坦号潜艇事件给我们提供了关于在关键安全系统中削减成本的风险性的重要教训。尽管大多数软件工程师不会面临生死场景,但遵守的原则是一致的。我们应优先考虑质量,重视专业知识,不妥协安全措施,保证充足的配置,并能充分证明有高成本决策的必要性,这些都是至关重要的实践。我们的风险可能并不总是像潜艇工程那样生死攸关,但它们确实存在。系统故障、数据泄露、信任丧失以及可能造成的大量财务损失,都需要我们努力去预防。在我们反思这个悲剧事件时,让我们牢记我们在构建可靠、强大和安全系统中的关键角色。我们的行动可以决定成败,决定了系统是平稳运行还是因重大故障戛然而止。

在泰坦号潜艇悲剧中,我们可以从中学到很多关于安全和质量的教训。你认为在软件工程中我们还需要注意哪些方面?

Loading

作者 amtbbsportal