我们知道软件开发是一个复杂的过程,在设计时总会安排的是理想设计条件下的时间,但真正的软件设计它包括需求分析、概要设计、详细设计、编码、测试、软件交付等过程,任何一个过程出现问题都有可能导致软件开发周期延长。在软件开发的过程中总有可能出现这样那样的问题,比如需求分析中软件的功能可能达不到客户的需求,又或者是编码时一个小小的错误没有被检查出来,又或者是项目经理没有规划好任务的时间分配,导致有的模块时间太长,有的模块时间完全不够用。计划总是赶不上变化的,就好像暑假回家,本来已经计划好一切,今天要写什么作业,明天要看什么书,结果往床上一躺,一天过去了,发现一天过去了,自己好像什么也没干,软件开发也是如此。