文章中,他们原先预定10天后的晚上六点,从威武滚到洛杉矶。但是,途中遇到重重困难,到达日期也比原先预定的日期晚很多。软件开发周期亦是如此,计划赶不上变化,开发期间会出现许多意想不到的问题和重重困难,所以往往也会是预估的2~3倍。
通常,软件开发周期包括可行性分析和开发计划,需求分析,设计(摘要设计和详细设计),编码,测试,维护等。首先,起初预定计划的时候可能过于乐观,将所有步骤都理想化,没有预留容错期,所以一旦遇到一点困难,就会导致延期。然后,一开始预定计划的时候,可能忽略的法定假期,导致实际比预期要晚。有时候,项目可能要比预料的复杂,遇到的困难可能也比预期要多,开发人员水平有高有低,诸多因素导致项目无法顺利进行。在开发末期,发现时间不够的时候,可能会增加人手来参与开发项目,但是根据Brooks法则,投入更多的人来开发一个紧急的项目,只会让进度更慢。
还所以,综上因素,就可导致软件开发周期延长,但实际还有更多因素,只有尽可能地考虑周全,才能使实际时间尽可能接近预期时间。