在众多软件项目中,缺乏合理的时间进度是造成项目滞后的最主要原因,它比其他所有因素加起来的影响还大。
导致这种普遍性灾难的原因如下:
第一,我们对估算技术缺乏有效的研究,更加严肃地说,它反映了一种悄无声息,但并不真实的假设——
一切都将运作良好。
第二,我们采用的估算技术隐含地假设人和月可以互换,错误地将进度与工作量相互混淆。第三,由于对自己的估算缺乏信心,软件经理通常不会有耐心持续地进行估算这项工作。
第四,对进度缺少跟踪和监督。其他工程领域中,经过验证的跟踪技术和常规监督程序,
在软件工程中常常被认为是无谓的举动。
第五,当意识到进度的偏移时,下意识(以及传统)的反应是增加人力。这就像使用汽油灭火一样,
只会使事情更糟。越来越大的火势需要更多的汽油,从而进入了一场注定会导致灾难的循环。
几种人月关系:
用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话---布鲁克斯
对软件开发的任务安排:
1/3 计划
1/6 编码
1/4 软件测试和早期系统测试
1/4 系统测试,所有的构件已完成
向进度落后的项目中增加人手,只会使进度更加落后---Brooks法则