单项选择题

A.交流不充分及沟通不畅;软件需求的变更;软件开发工具的缺陷
B.软件的复杂性;软件项目的时间压力
C.程序开发人员的错误;软件项目文档的缺乏
D.以上都是