美国航空航天局的代码

我在美国国家航空航天局艾姆斯研究中心做程序员的时候,我的软件小组常常会遇到下面的情况,久而久之,这成了我们小组内的笑谈。很多航空航天局的科学家为风洞试验和流体动力学模拟写程序。他们经常来到我们的办公室,询问我们这些软件专家为什么他们的代码不运行。他们会解释说,自己的软件程序一直都运行得很好,然后却不知什么原因停止运行了。他们一直在找原因,所有的可能都解释不了,于是只好来寻求我们的帮助。他们似乎在期待我们告诉他们线路因为某种原因坏掉了或者操作系统不受控制了,因此VAX41小型电脑或者CRAY巨型计算机今天无法运行。

但是,原因总是同一个:经过询问,他们会承认曾经自己改过代码。他们会恼火地说:“但我仅仅改了一行代码啊!”显而易见,由于他们这点儿小改动,代码被破坏了,而这也正是我们用来解决问题的决定性证据。这些航空航天局的科学家无法相信,正是他们看似无辜的小改动导致了问题,所以才到别处找答案。我们知道,一个经过了几百个工程师设计并检测,并忠诚地服务了多年的计算机不太可能出现问题,而在相互依存度极高的软件程序中,一行仓促写下的代码更有可能是症结所在。