1968年北约软件工程大会语录
经常的我们会忘记,如今我们在软件开发中遇到的问题,通常是别人在很多年前就已经遇到过的。
下面这些语录来自1968年北约软件工程大会的会议记录。
关于软件项目管理:
软件开发管理将继续背负目前的在成本和计划有效性上的坏名声,直到有朝一日,人们对软件设计工程有了更全面的理解和认识。
我们开发软件系统就像莱特兄弟制造飞机——造好整个系统,把它推下悬崖,让它坠毁,然后重新开始。
管理工作方面,大型软件的开发是一个令人恐怖的事情。人们的认识中,这种工作通常会成为血本无归的泥潭,耗费财力,永无止境。人们的这种认识也许并不是偏见。
关于设计和最终产品的区别:
软件产品是我们对程序如何在计算机里执行进行设计的产物。设计和最终产品之间的区别本质上是一个理论与实际的问题,受各生产部门需求的影响。事实上,设计和最终产品间没有本质区别[...]
软件中大多数致命问题都起源于概念,几乎都统一的遵循这样的规律:你试图弄清楚你们打算要做什么,然后就这样做了。这就是我们大多数麻烦问题的来源。
关于处理用户需求:
用户感兴趣的是对系统提需求,而且按照需求购买系统。但这里的潜台词是用户能说出他们想要什么。而大部分的用户说不清楚。
我们应该在设计过程中尽早的获取用户反馈。
关于程序员的工作效率(跟Paul Graham的Great Hackers对比):
我对程序员在工作效率中表现出的巨大的差异有个疑问。你能在其它类似的技术领域找到相似的差异度吗?事实上,软件开发中的差异比任何其它行业都要大。
关于软件开发:
开发应该循序渐进开展,软件一步一步完成。我的座右铭是“解决小的,有用的,现在。”
大型系统必须慢慢完善,不可能在某个时间里全部完成。你必须让最初的小的核心系统真正无误的运行起来。
关于软件测试:
系统必须具有自动化测试能力。我们必须开发和维护一些可执行程序来检验系统中所有的其它部分。[...]作为测试程序运行输出的结果,每次测试都要列出测试检验的模块,同样,还要列出测试了哪些接口和数据表。对测试成功做记录很重要,跟记录失败一样。
[本文英文原文链接:Quotes from the Nato Software Engineering Conference in 1968 ]
来自:http://www.aqee.net/quotes-from-the-nato-software-engineering-conference-in-1968/