软件项目失败的原因

来源:互联网 发布:mac怎么开机 编辑:程序博客网 时间:2024/04/27 04:18
 Grady Booch认为,软件项目的失败是由于以下几个基本的原因的组合造成的:
  1. 特别的需求管理。
  2. 模糊和不精确的交流。
  3. 脆弱的架构。
  4. 过度复杂。
  5. 未检测出需求,设计和实现中的不一致。
  6. 测试不足。
  7. 对项目状况的估计过于乐观。
  8. 未解决存在的风险。
  9. 无法控制变化的传播。
  10. 自动化程度不足。
   一,客户需求
    需求是最难处理的。客户和开发团队一样,对需求的理解是一个渐进的过程。刚开始时,客户可能根本不清楚自己需要什么样的系统,不能准确、完整地描述出系统的功能需求。随着对系统理解的深入,客户可能会不断地提出新的需求,并修改以前的需求,而这些情况又是所有开发人员都不愿意面对的。另外,开发团队可能会误解客户的需求。双方具有不同的知识背景,使用不能的词汇,如果没有一种有效的交流方式的话,误解客户的需求是肯定会发生的。所以,有效的交流对于正确地理解需求也是非常重要的。

   虽然很多流程(如RUP,XP)都宣称能解决这些需求问题, 但是没有一个开发人员乐于拥抱需求的变化。想起了Kent Beck的书:XP拥抱变化。真有人愿意拥抱变化吗?

  二,交流
   前面已经说过,开发团队和客户之间的交流非常重要,这里主要讨论团队内部之间的交流。
   现代的软件系统越来越复杂,单靠某个人是肯定不行的,需要团队的协作。一个软件开发团队可能由3、4个人组成,也可能由几千人组成。对于一个团队来说,最重要的莫过于成员之间的交流。随着团队规模的扩大,交流也就越来越重要。尤其是现在的分布式开发,项目的开发团队位于不同的场地,模糊不精确的交流可能会白白浪费很多时间,造成项目延期。
   交流的形势多种多样,可以通过书面文档,EMail,IM,电话以及面对面的交流。其中最有效的交流方式还是面对面的谈话。但是考虑到人员的流动性以及分布式开发的需要,有记录的文字交流是必需的。

原创粉丝点击