CMMI的实施效果为何不尽如人意
 
2008-11-20 作者: 张宝雷 来源: 中国服务外包网
 

引论

近几年,伴随着中国软件行业的高速发展和国家支持力度的不断加大,CMM/CMMI体系(为了行文方便,下文均以CMMI代表CMM/CMMI)在IT行业日益流行并逐渐深入,许多企业高层将CMMI视为解决问题的灵丹妙药,各大小公司迫不及待的引入了CMMI咨询和认证,并不断向高级别冲刺,认为这样就可以解决长期困扰企业的项目延期、项目成本超标、项目质量低下等难题。

但经过几年的工作,不少企业却不得不无奈的面对这样的现实:CMMI体系的引入带给企业的只是一些从来落实不下去的开发流程和文档模板、或者CMMI体系执行下去了,但效果却只是使研发文档齐全了一些、研发过程规范了一些,可是产品质量和开发进度却没有什么改进,甚至有所退步。

于是,质疑CMMI的声音大了起来,CMMI无用论也渐渐泛起。

难道在国外发达软件国家有着卓越表现的CMMI又将步某些管理体系的后尘,在中国的国情面前被拉下马来?难道真是CMMI不适合国内的企业吗?

问题分析

本人推进CMMI已有7、8年的时间,并且实际接触了很多CMMI案例,对此问题,个人认为:

首先,CMMI并不是纯理论的体系,它基于逐步改进的管理思想,通过提炼业界最佳实践形成体系,有大量的开发管理实践为基础,具有强大的生命力和适应能力,国内推行CMMI后,对软件行业管理的提升及研发效率的提高起到了很大帮助,且涌现出一批通过推行CMMI对企业管理有了巨大提高的企业,因此,CMMI是完全能满足国内的软件企业的。而且更为难得的是,CMMI的大量KPA保证了它高度的可实践性,避免了某些管理体系只重理论而忽视实践的缺陷,非常适合于企业操作,在目前国内软件企业普遍较小,无力聘请高水平的管理公司进行指导的情况下,CMMI更是这些企业的福音。

但为什么有些企业推行CMMI后,却没有取得相应的成果,而且这样的企业还不是个案,主要原因为:

1、对CMMI体系定位出现偏差

2、只注重CMMI的引进和推广,忽略了人的培养和作用

3、完全照搬CMMI,未结合本企业的实际进行落地

4、急功近利,未能长期坚持

下面依次介绍

对CMMI体系的定位出现偏差

许多企业对CMMI没有透彻、深入的理解,将CMMI当成了包治百病的灵丹妙药,认为只要推行CMMI体系,企业存在的所有问题,至少是产品研发中存在的各种问题都应该迎刃而解了,其实这是不对的认识。

任何一种管理体系,都有它的定位和适用范围,没有谁能包治百病,CMMI体系也是一样,它的定位很清晰:帮助企业提升研发能力,完成研发工作。它会告诉企业如何“把事情做正确”,却不会告诉企业如何“做正确的事”,做正确的事是企业战略要解决的问题,而CMMI则保证研发体系对企业战略的良好支撑:按质按时完成企业战略要求完成的研发工作,这两者是有根本区别的。

很多企业自身战略并不清晰,市场定位也不准确,却盲目引入CMMI,以为这样就能让企业研发上一个台阶,这显然是不可能的,这就如同一辆汽车上路,企业战略要决定汽车往哪个方向开,而CMMI则保证车开得又快又安全,如果车开的方向搞错了,那CMMI实施的再好又有什么意义呢?

只注重CMMI的引进和推广,忽略了人的培养和作用

CMMI的目标是将软件企业建设成为高成熟度的组织,并划分了5个等级来明确各组织都处在什么样的成熟度水平,但个人认为,组织要想成熟,有两个必须的前提:

组织中大多数个人的成熟。个人的成熟体现在具有岗位所需的知识和技能,并能够胜任岗位的工作,例如:需求人员能够完成质量合格的需求调研文档、架构设计师能够完成符合要求的架构设计书、编码人员能够开发出具有较少缺陷的代码等等,而更高的个人成熟度则体现在持续改进个人能力、提高个人对岗位的符合度,颇类似于CMMI的第五级:持续改进。

组织中大多数团队的成熟。团队的成熟体现在团队成员能够顺畅配合以完成分配给本团队的工作,例如:需求调研团队能够完成合格的需求调研任务并指导编码工作、测试团队能完成软件的测试工作等。

如果一个组织中的大多数人都不成熟,或者大多数小团队都不成熟,则很难想象一个组织能够是成熟的。道理很简单,组织的所有工作都是需要员工来完成的,员工或小团队作不好他们岗位要求的工作,整个企业能够作好工作那才是咄咄怪事。

目前国内推广CMMI就在犯这样的错误,一方面极力提高企业的成熟度,而另一方面却对组织内部个人和小团队的成熟漠不关心,这样做的结果,只能是要么CMMI体系无法真正得到落实(因为员工没有能力按照CMMI的要求工作)、要么CMMI体系的落实无法发挥真正的效果(因为员工并不能将事情做到CMMI要求的标准)。

其实SEI当初推出CMM体系后,也发现了同样的问题,因此,SEI后来推出了PSP(个体软件过程)和TSP(团队软件过程)来帮助组织内的个人和团队提高成熟度,从而为CMMI的实施奠定非常良好的基础。从国外的实践来看,PSP和TSP也确实起到了非常巨大的作用。

完全照搬CMMI,未结合本企业的实际进行落地

CMMI是由美国SEI在上世纪末受美国国防部的委托开发的,当时美国软件行业已经走过了幼稚期,正在高速成长,IBM、Microsoft 、Oracle等大公司比比皆是,而美国国防部的软件订单也是动辄上亿美金,所涉及的软件组织经常有上万人,发展到这样的阶段,这些企业一方面有能力在过程改进方面支付更多的花费,另一方面,这些企业开发的软件一旦后续出现质量问题,带来的损失也将是非常严重的,因此,各企业也有动力在过程改进方面加大投入,在这种背景下,SEI在设计CMMI模型时,并不需要特别考虑过程改进方面的投入问题,而只需将过程改进设计的尽善尽美,因此,CMMI体系对过程改进考虑的非常全面,也非常周到,但这就带来一个问题:过程成本问题。这对那些实力雄厚、项目动辄上亿美金的大公司,例如:洛克西德?马丁公司、波音公司等,是非常适合的,但对目前的国内软件企业却并不适合,国内软件企业大多实力单薄,所接项目也比较小,能够支付多少的过程成本,并且需要支付多少的过程成本是需要考虑的。就国内的企业而言,由于项目普遍较小等原因,也没有必要花费如此高昂的过程成本。

这种情况其实SEI也有所考虑,因此CMMI中并没有硬性规定一套确定的研发流程和模板,而是要求各企业的SEPG来定义适合本组织的研发流程和模板,这样,如果一个企业的SEPG组织足够强大和专业的话,将能够定义出符合公司实际的研发流程和模板,可以在很大程度上避开这个问题,但可惜的是,目前各公司对SEPG组织的作用普遍重视不够,很多公司设立SEPG组的目的就是为了应付过级评估,而国内真正够专业的SEPG 人员也相当稀少,造成很多公司直接使用国外公司及咨询公司提供的研发流程和模板,从而使CMMI根本没有在本企业落地,造成此问题不但得不到解决,反而使不良影响急速扩大。

急功近利,无法长期坚持

实施CMMI是一项长期的工作,只有坚持推进,才能有所收获,国外大公司通过CMMI的评估通常需要花多年的时间,有的甚至花10年时间来通过评估,而国内企业则常常一年就通过,拿到了证书,通过后就万事大吉,CMMI放在一边,再也不过问了,这怎能取得好效果呢?因此,企业对CMMI体系的长期坚持推进,是CMMI真正发挥作用的一个关键。

说起这个问题,就不得不提这个问题的另一面,为什么企业领导不愿意坚持CMMI的长期推行?还有一个核心原因:很多企业SEPG人员和QA人员由于能力不足,并不能为企业领导提供有说服力的数据和成果,来说服企业领导坚持推进CMMI,企业领导面对着一个总也看不到效果的体系,又有多少人能够坚持呢?

解决建议

综上所述,个人认为,各企业如果想真正发挥CMMI的作用,需要在如下几方面加强工作:

1、深刻理解CMMI的定位。深刻领会CMMI的定位和内涵,用CMMI来解决它所擅长的问题,并对它报有合理的期望;

2、充分重视SEPG组和QA组。只有一个专业并得到充分支持的SEPG组,才能将CMMI思想和企业实际相结合,制订出符合企业实际的流程和规范,实现CMMI在企业的落地,充分发挥其作用;也只有一个专业的QA组,才能将SEPG组制定的流程和规范在组织内真正落实下来,取得实实在在的成果;

3、引入PSP、TSP。由于种种原因,目前在国内IT行业,很多员工其实是不合格的,例如需求人员不能写出表达清晰透彻的需求文档、设计师作的软件架构不符合实际、编码人员开发的程序频繁出现低级错误、项目经理管理水平普遍低下等等,因此本人建议各企业在引入CMMI前,首先应该引入TSP和PSP并大力落实,人员和团队成熟了,组织成熟就是水到渠成的事情了;

4、坚持,再坚持。一方面公司领导要坚定的支持CMMI体系的长期推行,另一方面,SEPG组和QA组也要妥善规划CMMI的实施工作,以便于CMMI的实施尽快产生成果,并做好和企业高层的沟通工作,以获取高层对CMMI的持续支持。

相信通过这些工作,企业会真正享受到CMMI带来的巨大收益。产品研发效率和质量也会取得快速的提高和进步。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织