可能近似正确的软件
如果你曾乘坐过飞机,就体验过世界上最安全的出行方式之一。飞机失事致人死亡的概率为1/2940万,这意味着一个人若成为民航飞行员,在40年的职业生涯中可能都不会遭遇一次坠机事故。考虑到飞机实际上的复杂程度,这样的概率令人惊叹。但情况并非一直如此。
2014年航空业状况不佳,有824起航空相关死亡事件,包括失联的马航客机。1929年有257人遇难。这看起来航空业似乎在退步,但实际上仅美国每年就有超过1000万次航班,而1929年只有约5 - 10万次。这表明从1929年到2014年,飞机失事死亡的总体概率从0.25%骤降至0.00824%。
飞机旅行多年来发生了变化,软件开发也是如此。1929年时,我们所知的软件开发还不存在,但在85年的时间里,我们有许多软件开发项目成功,也有许多失败。近期的例子包括healthcare.gov的推出,这是一场财政灾难,耗费了约6.34亿美元。更糟糕的是一些软件项目存在严重漏洞。2013年,纳斯达克因软件故障关闭,并被罚款1000万美元。2014年出现了心脏出血漏洞,使许多使用SSL的网站变得脆弱。因此,CloudFlare撤销了超过10万张SSL证书,他们称这将花费数百万美元。
软件和飞机有一个共同点:它们都很复杂,一旦失败,后果将是灾难性的且会公之于众。航空公司能够确保安全飞行,将航空灾难的概率降低了96%以上。不幸的是,我们不能对软件也这样说,软件正变得越来越复杂,灾难性的漏洞经常出现,浪费了数十亿美元。
为什么航空业变得如此安全,而软件却漏洞百出呢?
正确编写软件
从1929年到2014年,飞机变得更复杂、更大、更快。随着这种发展,美国联邦航空管理局(FAA)和国
超级会员免费看
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



