CMM是能力成熟度模型(Capability Maturity Model)的缩写,是由CMU/SEI(美国卡内基梅隆大学软件工程研究所)1987年开发成功的,现在普遍使用的是V1.1版本。CMM模型从1~5分为不同的等级,按照软件过程能力将一个组织定位于不同的成熟度等级。其一个重要思想是帮助一个组织通过基于模型的软件过程改进而达到使其软件过程向更高的能力成熟度等级迈进的目标。在这个过程中一个组织必须建立自己的软件过程,并依据CMM模型要求对此过程进行评估,针对评估结果来进一步改进自己的软件过程,再次评估自己的软件过程以期达到更高的成熟度等级或防止自己的过程能力退化。如此循环最终使一个组织的软件过程能力趋于高度的成熟。这样客户在选择其项目的承包商时可以依据一个组织达到CMM的某个等级来判断该组织的软件过程能力以及其是否有能力达到自己对于此项目的时间进度,资金控制,质量标准等方面对承包商的要求,从而决定是否会放心的将自己的项目交给某一个组织去做。也就是说,通过CMM认证的级别越高,其越容易获得用户的信任,在国内、国际市场上的竞争力也就越强。
CMM在中国的发展
CMM在中国的发展可以用一句话来形容:忽如一夜春风来。事实上,CMM最初是1999年7月通过一家通过CMM2级评估的合资企业悄然进入中国的,当时国内对CMM的研究与使用寥若晨星。CMM真正火爆起来还是由于2000年6月国务院颁发了《鼓励软件产业和集成电路产业发展的若干政策》(业内人士称之为“18号文件”),该文件的第五章第十七条明确提出“鼓励软件出口型企业通过GB/T19000-ISO9000系列质量保证体系认证和CMM(能力成熟度模型)认证。其认证费用通过中央外贸发展基金适当予以支持。”加上2001年初联想软件率先通过CMM2认证并得到北京市科委的30万奖金,各软件企业围绕CMM的研究、讨论、跃跃欲试、实施等活动紧锣密鼓,开始进入蜜月期。
2 中国需要CMM么?引入CMM认证对国家的好处
据了解,目前中国大陆的软件企业经CMM评估达到三级的只有2家,达到二级的有5家。而在软件出口居于世界首位的印度,达CMM四级、五级的软件企业已占世界总量的50%至60%。同时,据IDC统计在全球软件市场中,美国占据了2/3。美国和印度软件业为何如此发达?很重要的一个原因就是:无论规模大小,绝大多数企业都按照规范化的方法管理软件研发过程,始终把客户放在首位,把通过某种标准的评估认证放在很重要的位置上。 实际上,对于我国软件企业而言,长期以来存在的“小、散、软”的缺陷一直没有得到根本解决。不少软件企业的老总本人就是程序员出身,能够写出漂亮的程序,但是往往个人英雄主义严重,企业整体则缺乏团队精神。与国外相比,中国软件企业的规模偏小,开发能力不足,资金缺乏,人才流失严重对企业造成的影响很大。事实上根据CMM模型的思想,软件产品的质量是靠人才、技术、软件研发过程3个方面共同保障的,其中人才和技术对中国的软件企业来讲往往不是什么大问题,而短板恰恰总是出现在软件研发过程上。这一切都极大地影响了中国软件企业的国际竞争能力。
随着中国加入WTO,中国软件行业将面临更加激烈的竞争。入世后的中国软件企业要想走出国门,在世界软件业占有一席之地,就必须积极建立完善而标准的研发过程规范并同国际接轨。CMM认证对中国软件企业而言,已经不仅仅是获得一种证书,而成为关系到软件企业能否从此上正规化发展道路、提高国际形象和竞争力、走出国门去国外接单的关键。
同时,随着国民经济的发展,随着国家各行业信息化工作的推进,尤其是国家重点行业对于软件企业能否按时、保质的提供符合其需求的软件产品和解决方案越来越重视。中国软件企业的研发过程能力的迅速提高,迅速规模化、国际化也是国家能否健康发展,保持长治久安,有效保证国家信息安全的关键。
引入CMM认证能给企业带来什么?
中国软件企业一个普遍存在的现象是一个技术骨干一走,技术往往就被带走了(尤其是对小企业而言,影响更为明显)。小至项目无法延续,大至企业从此垮台。因此研发过程的规范化、文档化管理成了首要问题。
实施了CMM是否能够规避此类风险呢?回答是肯定的。CMM的实施将保证一个组织的项目软件研发真正能够做到铁打的营盘流水的兵。同时CMM的实施还有其他妙处。印度的一家软件企业的老总说,在实施CMM后其软件的可靠性提高了20%,成本降低了20%。联想软件在谈实施完CMM2时的收获是讲:收益颇丰。首先是产品质量得到了提高,千行代码错误率减少了,返工次数减少了,研发管理流程得到了梳理和优化,项目管理力度得以加强,软件项目的可视性提高了,预算得到了控制,中高层经理获得了对项目进展情况的更好的了解;客户感受最深的是交货期明显缩短,合作日渐愉快。联想软件面对企业的效益至少增加20%-30%的回报,最终有种找到真正适合软件企业的管理模式的欣喜。
某著名企业CTO就认为:CMM的意义不仅仅是对软件开发的过程进程管理,最关键的它还是一种高效的管理方法,有助于企业最大程度的降低成本,提高质量和用户满意度,而这正是中国软件业与美国、印度软件业最大的差距之处。
总之,实施CMM模型(尤其是CMM3级以上的企业)的一般意义为1、软件研发过程文档化,软件工作产品保证了一致性和可追溯性;2、企业内部过程改进制度化,产品开发周期控制能力,质量、成本控制能力,风险控制能力能力,生产效率等明显提高;3、市场竞争透明化、简单化,规范了市场竞争;4、企业国际化能力得到质的提升;
CMM认证实施的难度,同时给实践者会带来什么好处?
任何过程的实施都离不开人的因素,CMM的实施、认证也一样。绝大多数企业在实施规范化研发过程管理的过程中都会遇到来自员工的强大阻力,大多中途夭折。其实这对于中国那些习惯了自己为中心、不愿文档化、缺乏团队协作精神的软件行业文化来讲是很自然的现象。看来企业文化的特点对CMM的实施的影响还真不容忽视。
CMM的引入恰如一阵春风,从另一方面来看它对于团队协作精神的强调隐含在模型的字里行间。好的企业文化将使CMM实施事半功倍,而希望塑造团队协作企业文化的企业,CMM的实施将会起到强有力的推动作用。
CMM模型对于做事能力的重视不亚于具体的工程实施,无论项目经理还是项目成员各角色,完成其角色工作的进入准则之一就是ability。在实施基于CMM模型的过程改进过程中,将提供给员工定制的众多的培训课程,有的是针对性很强的专业课,有的是需要了解的基础课,在此过程中员工的软件工程素质得到了极大的提升,软件工程意识的提升作用于其技术上的积累将产生出更高质的软件精品,这样的企业研发出的产品将给整个团队带来极大的成就感,而个人素质、精神面貌与自信也将不断改善。实施CMM的过程也正是将研发人员点石成金的过程。无疑有过基于CMM的研发规范实践经验的员工将成为组织的骨干,在未来无疑将最受软件企业的青睐。
结束语
看来不可否认CMM是个好东西,CMM在世界软件行业研发过程标准中也享有很高的评价,而中国在这方面做的还远远不够。尤其在加入WTO全球经济一体化的趋势下,采用CMM标准认证工作作的好坏大有关系到中国软件企业在国际竞争中生死存亡的架势(当然我们在强调认证的同时不会忘记强调实施这个前提)。拿到高等级CMM证书的企业将毋庸置疑会在国际竞争中占据有利地位,这就象给企业的长远发展插上了不折的翅膀。而在此过程中一定要注意员工“人”的作用,加强和致力建设良好的企业文化也是很重要的,同时也需要向员工宣传实施CMM对其个人的益处,化阻力为动力。这样看来 CMM的实施和认证是一件多赢的事情,无论从国家、企业还是个人的角度,都是关系到更好生存和长远发展的大计。