需求说明差(poor requirements)──需求不清楚、不完整、太概括、或者不可测试,都会造成问题。
不切实际的时间表(unrealistic schedule)──如果在很短的时间里要求做许多事,出现错误是不可避免的。
测试不充分(inadequate testing)──只能根据客户意见或者系统崩溃来判断系统质量的高低。
不断增加功能(featuritis)──在开发正在进行过程中要求增加许多新的功能。这是常见的问题。
交流问题(miscommunication)──如果开发人员对客户的要求不了解,或者客户由不恰当的期望,必然会导致错误。