今日阅读了人月神话的没有银弹——软件工程中根本和次要问题。所有软件工程包含根本任务——打造有抽象软件实体
构成的复杂概念结构,次要任务——使用编程语言表达这些抽象实体,在空间和时间限制内将他们映射成机器语言。关注软
件任务中的必要活动就要1.仔细的进行市场调研,避免开发已上市的产品;2.在获取和定制软件需求是时,将快速原型开发作
为迭代计划的一部分;3.有机的更新软件,随着系统的运行,使用和测试,逐渐添加越来越多的功能;4.不断挑选和培养而出
的概念技术人员。
作者从民间妖怪传说狼人出发,因为他们可以完全出乎意料地从熟悉的面孔变成可怕的怪物。为了对付人狼,我们在寻找
可以消灭它们的银弹。大家熟悉的软件项目具有一些人狼的特性,常常看似简单明了的东西,却有可能变成一个落后进度、超
出预算、存在大量缺陷的怪物。因此,我们听到了近乎绝望的寻求银弹的呼唤,寻求一种可以使软件成本像计算机硬件成本一
样降低的尚方剑。
但是,我们看看近十年来的情况,没有银弹的踪迹。没有任何技术或管理上的进展,能够独立地许诺在生产率、可靠性或
简洁性上取得数量级的提高。不仅仅是在目力所及的范围内,没有发现银弹,而且软件的特性本身也导致了不大可能有任何的
发明创新——能够像计算机硬件工业中的微电子器件、晶体管、大规模集成一样——提高软件的生产率、可靠性和简洁程度。
我们甚至不能期望每两年有一倍的增长。