从波音飞机事故说起 --- 我经历的软件出错噩梦

来源: 2019-04-05 20:06:57 [博客] [旧帖] [给我悄悄话] 本文已被阅读:

这是三个星期之前写的,那是早上,刚写好这个软件crash的文字,下午开车就经历了crash, 于是再没心思贴出。现在稍微缓过来一点,提醒各位:开车注意安全,平安是福,此言不虚。
 

波音飞机坠毁,引发全球关注。波音昨天(3月17日)宣布,已完成最新软件更新,说明事故的确跟软件有关。我能想象,自从出事以来,波音搞软件的人经历的巨大压力:赶紧查找原因,必须限时完成。最难的是,无法实际测试,一切只能靠模拟和分析,总不能为了排查错误,真摔一架飞机。这方面,我有过痛苦不堪的经历。

我们公司开发的是监控大型石油天然气管道的软件。24小时实时运行,一定要关停软件的话,最多只能半小时。偏偏软件质量太差(主要是人的问题),以前我笑话过国内某通信公司现场改软件的做法,那时在我的“老东家”,加拿大百年老店北方电讯,软件都是经过最严格的设计、反复测试,发布以后,偶尔一年才会出个错。软件出错之后,决不能马上修改,因为这时出的错,一般已经不是简单的错误,基本与设计或者实际因素有关,匆忙改动,很有可能改坏其他部分,必须备案,研究分析之后,才确定如何修改。这样做出的软件,质量不是一般的高。各位打手机,没出现掉线吧?那里面有我们的努力和智慧呀,哈哈.

换到现在这个公司后,完全没有这一套,用户一句话,你说咋办就咋办。结果,有一次,我参与的一个大项目,投产之后,立马出现软件崩溃。要命的是它随机发作,每次重新启动后,有时隔半天,有时就是一两小时,突然崩溃。想了各种办法,花了星期四、五两天时间,再加整个周末熬到半夜,还是不知道怎么回事。大家纳闷:以前在老系统上好好的,怎么换到微软的新系统上就不行了?

用户骑虎难下,不得已,只好安排一名员工晚上加班看守,一旦出错,立即人工重启。NND,软件做到这个份上,耻辱啊!到周一,我觉得不能再这样盲人摸象。静下心来,把源程序拿来 (别人写的),密密麻麻两三千行,一个字一个字看了一遍。最后锁定其中一行,肯定就是祸根,就是一个没脑子的简单错误。修改好放上去,果然止住流血,一干人总算松口气。

后来,我在其他项目的程序里也看到同样的错误,赶紧修改,免了几场灾难。