1685年的德国线雕画:艾森巴赫的狼人(The Werewolf of Eschenbach)
(资料来源:Courtesy of The Grainger Collection, New York)
在未来的十年内,无论是在技术还是管理方法上,都看不出有任何突破性的进步,能够独自保证在十年内大幅度地提高软件的生产率、可靠性和简洁性。
There is no single development,in either technology or manage-ment technique,which by itself promises even one order-of-magnitude improvement within a decade in productivity,in reliability,in simplicity.
摘要[1]
所有软件活动包括根本任务—— 打造构成抽象软件实体的复杂概念结构,次要任务—— 使用编程语言表达这些抽象实体,在空间和时间限制内将它们映射成机器语言。软件生产率在近年来取得的巨大进步来自对人为障碍的突破,例如硬件的限制、笨拙的编程语言和机器时间的缺乏等等,这些障碍使次要任务实施起来异常艰难。相对根本任务而言,软件工程师在次要任务上花费了多少时间和精力?除非它占了所有工作的9/10,否则即使全部次要任务的时间缩减到零,也不会带来生产率数量级上的提高。
因此,现在是关注软件任务中的必要活动的时候了,也就是那些和构造异常复杂的抽象概念结构有关的部分。我建议:
● 仔细地进行市场调研,避免开发已上市的产品;
● 在获取和制定软件需求时,将快速原型开发作为迭代计划的一部分;
● 有机地更新软件,随着系统的运行、使用和测试,逐渐添加越来越多的功能;
● 不断挑选和培养杰出新生代的概念设计人员。







