软件项目根据统计有80% 以上的项目不能够按时提交给客户使用,与其它类型的项目比是失败率最高的。是什么导致项目的延期甚至失败呢?
本文再此必要对项目的失败的原因作一个深入的分析,并提出一些解决的思路
决定一个项目成功的因素有很多:高质量的团队、清晰的项目目标、对项目进行的有效管理、有效控制的客户需求等。
在CMM软件成熟度模型的5个级别中,第2级中第一个KPA(关键过程域)就是需求管理,CMM中第一级的概念是初始状态的公司,需求管理实际上是CMM模型里面第一个要求实现的关键过程域,可见其重要性。
总结在多年的软件项目管理实践,我认为:软件项目管理过程中,需求的变更是无法避免的。如果哪一个开发商要对客户说:客户需求在开始确定后就不能修改,我估计他十有八、九拿不到这个订单,没有哪一个客户愿意。
如何才能改善需求的管理,减少需求变更或需求变更的影响了,我认为要在以下三个方面做好相应的工作:
1)与客户建立良性的、基于理性的合作环境
2)在软件工程的方位内,尽量减少需求变更的影响
3)建立一套行之有效的,在项目启动阶段就应该得到客户认可的需求管理制度
一、与客户建立良性的、基于理性的合作环境
需求过程本身的问题
·在需求确定的过程中,客户往往会把他建议的解决方法当成了需求本身
·客户或开发者有时候会假定对方已经明白自己的意思,有些需求是理所当然的。
外部因素导致的变更
·经营方向的改变
·政策因素的影响
我们能够因为客户的变更不在合约的目标范围之内而拒绝变更呢?在国内的软件项目实践中,在目前主要是以客户关系为中心的销售模式下,要做到这点非常的困难。
我们必须要假定需求是一定会修改的,
1) 与客户建立良性的、基于理性的关系
如何与客户建立理性和良好的关系呢?我们首先要对客户有一个分析和了解:
国内的客户分为两类:
一类为国家单位和大型企业的IT 部门,这些部门对项目的成本的敏感性比较低,但对项目的成功与否,是否会延期等非常敏感,因为在一个大型的企业或单位里面,这关系自己的表现。
另一类为小规模的企业,这类小规模的企业往往是由企业的负责人(或者直接就是老板)来拍板某一个系统,这类企业对项目的成本就会非常敏感。