在软件项目中,缺乏时间进度是导致项目滞后的最主要原因,这比其他所有因素加起来的影响还大。
导致这种普遍性灾难的原因是什么:
第一,对估算技术缺乏有效的研究,反应了一种悄无声息,但并不真实的假设——一切都运作良好。
第二,错误地将进度与工作量互相混淆。
第三,由于对自己估算缺乏信心,软件经理通常不会有耐心持续地进行估算这项工作。
第四,进度缺少跟踪和监督。
第五,当意识到进度的偏移时,下意识反应是增加人力,这会使事情更糟。
乐观主义。
所有的编程人员都是乐观主义者,人们习惯只关注结果。所以系统编程的进度安排背后的第一个假设是:一切都运作良好,每一项任务仅花费它所“应该”花费的时间。这让我联想到了老师上课经常讲的一个案例,美国挑战者航天飞机爆炸事故,之前的无数次测试都正常运作,但是起飞的时候却由于内存溢出发生爆炸。
过去怎么做的:
编写代码很多做一些极端的错误校验和测试。
坏处:
养成了这个习惯,就会不知道自己程序的极限和一些小的非法操作引发的不可估计损失。
怎么改:
多做一些测试,了解自己程序的极限。养成编程的好习惯,尽量在编写的时候避开错误。