? 不切实际的计划: 没有充分考虑问题的复杂性 ,把一个庞大的工程限定在非常短的时间之 内 ,出现问题是不可避免的。因此我们应该拿出足够多的时间作计划、设计、测试、修改错误、回归测试、整理文档,不要把长时间熬夜作为软件公司的家常便饭。

  ? 需求分析不充分:如果需求分析不清晰、不完整、太笼统或者不具有可测试性,那么一定会 出现问题。 这要求我们在动手开发之前一定要有完整的,详细的,可维护的,可测试的需 求分析,该需求分析一定要得到各方的认可

  ? 不充分的测试: 在系统崩溃和用户强烈抱怨之前,没有人知道是不是存在问题。因此要尽早 地开展测试,问题修改之后要尽快地进行回归测试,一定要给测试和修改问题留出足够的时间

  ? 交流不充分:如果开发人员与开发人员之间 ,开发人员与项目管理组之间,项目组和用户之 间不能充分的交流的话,也会出现问题。因此使用新闻组、电子邮件以及其他的网络化的错误 跟踪工具等等方式来加强整个团队的沟通和交流是必要的。

  ? 不断增加新的特性:在开发完成之后,不断有新的需求,这是常见的问题。 因此一定要 大限度地坚持初的需求分析,如果万不得已,确实需要增加新的需求,那么一定要更改相关 的计划,如果可能在设计阶段好使用快速原型法,让用户知道他们希望的系统是个什么样子 的,这样可以在初期更好地听从用户的意见。