缺乏合理的时间进度控制是造成滞后的主要原因,比其他任何事情影响的和还大,书中也对造成这种这种普遍灾难的原因进行了并进行了详细列举。
首先,我们对估算技术缺乏有效的研究。也就是文章中所介绍的对于与每一个编程人员来说都是乐观主义者,在编程人员的心中,认为一切都将运作良好,每一项任务仅花费它所“应该”花费的时间。然而事实并不是这么简单的,在创作工程中总会遇到不同的苦难的,你的程序并不一定就按照这你的思路进行,总会遇到一定的bug等着你去处理。第二,我们采用的估算技术隐含地假设人和月可以互换,错误地将进度与工作量相互混淆。按照常规思维,人多力量大,然而实际在编程过程中却不一定是这样的当任务由于次序上的限制不能分解时,人手的添加对进度没有帮助,因为程序的次序性不同每一步都必须经过一点时间的孕育的。第三,由于对自己的估算缺乏信心,软件经理通常不会有耐心持续地进行估算这项工作。由于没有认真的估算好时间就会导致对于系统测试的安排时间较短,如果没有经过这些基本的测试就直接交付就会导致重新的维护,这样相应的成本也会上涨,最终造成的费事费力,所以一个良好的时间规划是程序编写的关键。正确的时间规划应该是:1/3 计划1/6 编码1/4 构件测试和早期系统测试1/4 系统测试,所有的构件已完成。第四,对进度缺少跟踪和监督。其他工程领域中,经过验证的跟踪技术和常规监督程序,在软件工程中常常被认为是无谓的举动。就如同书中所介绍的那样,编程人员,同厨师一样,某项任务的计划进度,可能受限于顾客要求的紧迫程度,但紧迫程度无法控制实际的完成情况。
这也给我们我们很大的启示,要想做一个真正的程序开发人员,我们还是远远不够的我们必须通过不断地学习,不断提升自己的能力,能够融入到优秀得队伍中去。