小Bug大灾难
软件质量是个老话题了,今天我想用几个例子,用金钱数字聊聊软件质量成本,聊聊简单的软件Bug能造成的危害。
最近波音737MAX升级软件的问题,给波音带来了巨大的损失,估计量级应该在几十亿美金以上。由于有两架飞机机毁人亡,全球人都知道了波音升级软件的Bug,在IT朋友圈中掀起了一阵软件质量热。其实大部分软件Bug带来的祸害基本没有人知道,特别是在中国,好像没人关注统计软件Bug。我打过交道的所有中国软件组织,没有一家度量并使用软件质量成本(Cost of Quality)。偶尔在媒体上我们能看到软件Bug的报道,如某银行软件问题给数以百万计的客户带来了不便等,但从来没人统计这些Bug造成的金钱损失。
好多人以为给用户造成巨大损失的软件Bug一定都是高含金量的,团队做了这么多评审,这么多测试,还有验收、试运行等,再加上通过的各种质量认证,很难想象简单的小bug能是漏网之鱼。所以跑到用户那的Bug一定都是逻辑复杂的大Bug,现实会让你大跌眼球!
还记得当年的千年虫问题吗?多简单的Bug,那么多人没有意识到将至的新的千禧年会给运行的软件带来灾难。2017年,McPeak对软件Bug带来的实际损失做了些调研,让我们看到一些著名企业和组织也被一些低级软件错误折腾的死去活来。
据对363家公司的统计,2016年软件Bug带来的经济损失达1.1万亿美金,影响到了44亿用户,造成了315年的时间损失。令人叹息的是其中大部分问题是可以避免的。
下面是几个发生在著名企业和组织的小Bug大灾难的例子。
NASA 火星气候探测器解体(The Mars Climate Orbiter)
提起NASA,绝对让人肃然起敬。1998年发射到太空的火星气候探测器是他们一个重要项目,目的是研究火星的气候和大气层。可惜仅仅一年后,由于过于接近火星地面,这个造价1.25亿美元的航天器就解体消失了。我们普通人对航天工程都有一种高不可攀的感觉,出现一些问题也是情理之中的。而这次的问题却是由一个极为简单的软件错误造成的,程序员忘了把美式度量单位转为公制单位,让探测器过于接近火星表面。令人难以置信的是小小的软件Bug毁掉了多个NASA火箭。
Knight Capital Group的“Power Peg” 疯狂
Knight Capital Group是美国最大的金融服务公司之一,每天都有大量金钱交易,任何错误都可能是灭顶之灾。2012年的一天噩梦发生了,股票交易系统的“Power Peg”程序发疯了,把本应几天交易的150个买卖,在同一时刻执行了,导致所有牵扯到的公司股票大跌。在30分钟内,Knight Capital Group股票跌了75%。简单的程序错误造成了4亿4千万美金的损失,这是公司利润的四倍。如果不是新的投资人介入,Knight只能申请破产了!
AT&T的黑暗9小时
美国老牌电话公司AT&T也曾中招。1990年1月的一天,整整九个小时,电话系统失灵。7千5百万个电话没有打通,20万人丢掉了航班预订。在不到一天的时间里,AT&T损失了6千万美金,给竞争对手送上了可乘之机。 AT&T开始以为是黑客侵入,很快发现祸根是一行修改的代码,系统无法适应修改后的Speed,造成了整个系统瘫痪。
EDS Child Support 的糊涂账
10多年前,EDS接了英国政府一个软件大单,为它的Child Support Agency开发一个IT系统,管理离婚父母应付的子女抚养费。结果他们交付了一个“糊涂”系统。 2004年,70万人收到了低于协议的费用,同时190万人意外收到了额外的英镑。一年时间里,价值70亿美金的抚养费没有收上来,近24万旧案子和3万6千新案子压在系统里没有处理。纳税人为此付出了10亿美金的代价。做了根因分析后发现,政府相关机构做了重大调整,但忘记了通知EDS,导致软件系统和新机构的严重不匹配。唉,就是一句话的事!
让苹果颜面尽失的Apple Maps
没有金刚钻,就别揽瓷器活这句话对谁都适用。可惜最牛的苹果公司不信邪,几年前决定用自己开发的Apple Maps替代Google Maps。它的出发点很简单,不想让竞争对手在自己平台上赚钱出风头。可惜隔行如隔山,苹果急急忙忙发布的地图系统有一堆低级问题:未更新消失的小城镇、楼房、景点和错误的地点数据让导航系统无法正确工作,同时扭曲的图像也让用户无法忍受。Apple的无能更显示出Google的厉害,Apple Maps的软件错误打破了苹果无所不能的神话,把大批用户拱手推给了自己的对手。虽然无法用金钱统计苹果的损失,但从客户忠诚度到公司品牌,苹果都遭受重创。
我一直认为让客户为低级错误付出代价是态度问题、意识问题,是不能容忍的过程问题。软件质量管理不应该搞成运动模式(如质量月的做法,难道不同时间就有不同的质量要求吗?),应该体现在日常工作中。最近在国内一家军工组织看到他们把低级软件错误列为严重、需要深究的问题,这里为他们点个赞!Humphrey说过,质量是度量软件过程的关键指标!减少消灭可避免的软件Bug是过程价值的重要体现。
《小Bug大灾难》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:https://www.bookhoes.com/5261.html