1.什么是CMMI
CMMI是CMM模型的最新版本。早期的CMMI(CMMI-SE/SW/IPPD)1.02版本是应用于软件业项目的管理方法,SEI在部分国家和地区开始推广和试用。随着应用的推广与模型本身的发展,演绎成为一种被广泛应用的综合性模型。
自从1994年SEI正式发布软件CMM以来,相继又开发出了系统工程、软件采购、人力资源管理以及集成产品和过程开发方面的多个能力成熟度模型。虽然这些模型在许多组织都得到了良好的应用,但对于一些大型软件企业来说,可能会出现需要同时采用多种模型来改进自己多方面过程能力的情况。这时他们就会发现存在一些问题,其中主要问题体现在:
1、不能集中其不同过程改进的能力以取得更大成绩;
2、要进行一些重复的培训、评估和改进活动,因而增加了许多成本;
3、遇到不同模型中有一些对相同事物说法不一致,或活动不协调,甚至相抵触。
于是,希望整合不同CMM 模型的需求产生了。1997 年,美国联邦航空管理局(FAA)开发了FAA-iCMMSM(联邦航空管理局的集成CMM),该模型集成了适用于系统工程的SE-CMM、软件获取的SA-CMM 和软件的SW-CMM 三个模型中的所有原则、概念和实践。该模型被认为是第一个集成化的模型。
CMMI 与CMM 最大的不同点在于:CMMISM-SE/SW/IPPD/SS 1.1 版本有四个集成成分,即:系统工程(SE)和软件工程(SW)是基本的科目,对于有些组织还可以应用集成产品和过程开发方面(IPPD)的内容,如果涉及到供应商外包管理可以相应的应用SS(Supplier Sourcing)部分。
CMMI 有两种表示方法,一种是大家很熟悉的,和软件CMM 一样的阶段式表现方法,另一种是连续式的表现方法。这两种表现方法的区别是:阶段式表现方法仍然把CMMI 中的若干个过程区域分成了5 个成熟度级别,帮助实施CMMI 的组织建议一条比较容易实现的过程改进发展道路。而连续式表现方法则通过将CMMI 中过程区域分为四大类:过程管理、项目管理、工程以及支持。对于每个大类中的过程区域,又进一步分为基本的和高级的。这样,在按照连续式表示方法实施CMMI的时候,一个组织可以把项目管理或者其他某类的实践一直做到最好,而其他方面的过程区域可以完全不必考虑。
CMMI各个进程的关键元素
CMMI自出道以来,它所达到的目标就没有变过,第一个是质量,第二个是时间表,第三就是要用最低的成本。不过特别强调的是,CMMI不是传统的、仅局限于软件开发的生命周期,它应该被运用于更广泛的一个范畴——工程设计的生命周期。TSP的建立,也是为了支持CMMI的这样一个系统。那么CMMI究竟是什么呢?它并不是一个过程,也不是告诉你怎么去做一件事情。如果用一句话来概括什么是CMMI,它就是各个进程的一个关键的元素,在很多领域里面一个集成的点。它是这样的一个基本架构,能够用来度量你的有效性和实用性;能够找出这样的一些机会,继续改进的机会,包括在商业目标、策略还有降低项目的风险等方面。
2.CMMI的原则
(1)强调高层管理者的支持。过程改进往往也是由高层管理者认识和提出的,大力度的一致的支持是过程改进的关键。
(2)仔细确定改进目标,首先应该对给定时间内的所能完成的改进目标进行正确的估计和定义并制定计划。选择能够达到的目标和能够看到对组织的效益。
(3)选择最佳实践,应该基于组织现有的软件活动和过程财富,参考其他标准模型,取其精华去其糟粕,得到新的实践活动模型。
(4)过程改进要与组织的商务目标一致,与发展战略紧密结合。
3.CMMI的组织结构
4.CMMI的起源
随着人们对CMM研究的不断深入,其他学科也结合本系统的特点,陆续推出了自己的CMM模型。例如,人力资源能力成熟度模型、系统工程能力成熟度模型等等:
(1)SW-CMM (Software CMM) 软件CMM
(2)SE-CMM (System Engineering CMM) 系统工程CMM
(3)SA-CMM (Software Acquisition CMM) 软件采购CMM
(4)IPT-CMM (Integrated Product Team CMM) 集成产品群组CMM
(5)P-CMM (People CMM) 人力资源能力成熟度模型
为了以示区别,国内外很多资料把CMM叫做SW-CMM。按照SEI原来的计划,CMM的改进版本2.0应该在1997年11月完成,然后在取得版本2.0得实践反馈意见之后,在1999年完成准CMM2.0版本。但是,美国国防部办公室要求SEI推迟发布 CMM2.0版本,而要先完成一个更为紧迫的项目CMMI。
CMMI(Capability Maturity Model Integration)即能力成熟度集成模型,这也是美国国防部的一个设想,他们想把现在所有的以及将被发展出来的各种能力成熟度模型,集成到一个框架中去。这个框架有两个功能,第一,软件采购方法的改革;第二,建立一种从集成产品与过程发展的角度出发、包含健全的系统开发原则的过程改进。就软件而言, CMMI是SW-CMM的修订本。它兼收了SW-CMM 2.0版C稿草案和SPA中更合理、更科学和更周密的优点。SEI在发表CMMI-SE/SW 1.0版时,宣布大约用两年的时间完成从CMM到CMMI的过渡。
CMMI项目更为工业界和政府部门提供了一个集成的产品集,其主要目的是消除不同模型之间的不一致和重复,降低基于模型改善的成本。CMMI将以更加系统和一致的框架来指导组织改善软件过程,提高产品和服务的开发、获取和维护能力。
5.实施CMMI的意义
很多人认为,实施CMMI的意义在于项目工程走向世界,可以在西方国家接到订单。实际上,这只是我国企业实施CMMI的意义的很小一部分。更为重要的意义则是,CMMI的实施能够提高我国企业的管理水平。降低企业的工程成本。事实表明,企业实施CMMI技术的投入都会得到丰厚的回报。据SEI统计,用于软件项目上的CMMI的投资,其回报率在5:1到8:1之间。由此可见,为什么这么多的企业纷纷实施CMMI项目管理技术。
近年来,很多软件企业纷纷实施CMMI管理模式,这一方面反映了我国企业在进入WTO后的危机意识,以及与世界接轨的迫切愿望。另一方面则反映出我国软件企业在改进管理方法上所作的努力。但是CMMI到底能够为我们做什么呢?实际上这个问题对不同的人有不同的答案。对采购部门的人员来说,掌握了CMMI技术可以有目的地考察项目实施人员或公司的实施能力,从而保证所采购的项目能够顺利完成。对于项目经理来说,掌握CMMI技术能够提高自己的管理能力,从而能够使项目高质量,低成本,按期限地完成。对于企业老总来说,CMMI还能够引入科学的管理理念,提升企业的整体管理水平。
在美国,很多企业通过CMMI评估,一方面为了满足承包国防工程或一些大企业的工程的要求,另一方面也是为了提高企业自身的管理能力。美国政府的工程项目,绝大多数都要求承包商有一定的CMMI级别作为参加投标的资格。越来越多的大型企业开始要求其工程承包商具有一定的CMMI级别。级别高的企业在赢得项目的竞标中具有一定的优势。因此,如果没有CMMI的等级评估,企业就会失去很多商机。
6.CMMI的两种实施方法
CMMI有两种不同的实施方法,不同的实施方法,其级别表示不同的内容。CMMI的一实施方法为连续式,主要是衡量一个企业的项目能力。企业在接受评估时可以选择自己希望评估的项目来进行评估。因为是企业自己挑选项目,其评估通过的可能性就较大一点。但是,它反映的内容也比较窄一点。它仅仅表示企业在该项目或类似项目的实施能力达到了某一等级。而另一种实施方法为阶段性。它主要是衡量一个企业的成熟度,亦即是企业在项目实施上的综合实力。企业在进行评估时,一定要由评估师来挑选企业内部的任何项目,甚至于任何项目的任何部分。一般地讲,一个企业要想在阶段性评估中得到三级,其企业内部的大部分项目要达到三级,小部分项目可以在二级,但绝不能够有一级。阶段性实施方法的难度要大一些。
虽然,CMMI的表述方式不同,但其实质内容是完全一样的。是同一种方法的两种不同的表述方式。企业在准备评估时要做的准备工作也是完全一样的。这些工作对企业的管理上的帮助也是一样的。因此,不管企业需要做什么样的评估,企业所获取的实惠应该是差别不大。具体要做连续性评估,还是做阶段性评估则要看企业对等级评估证书的具体要求。
7.CMMI可以帮助我们做什么
近年来,很多软件企业纷纷实施CMMI管理模式,不少企业如:东软,托普,华为等企业通过了三级或四级评估。这一方面反映了我国企业在进入WTO后的危机意识,以及与世界接轨的迫切愿望。另一方面则反映出我国软件企业在改进管理方法上所作的努力。但是CMMI到底能够为我们做什么呢?实际上这个问题对不同的人有不同的答案。对采购部门的人员来说,掌握了CMMI技术可以有目的地考察项目实施人员或公司的实施能力,从而保证所采购的项目能够顺利完成。对于项目经理来说,掌握CMMI技术能够提高自己的项目管理能力,从而能够使项目高质量,低成本,按期限地完成。对于企业老总来说,CMMI技术不仅能够提升企业的管理水平,还能够引入科学的管理理念,提升企业的整体管理水平。
在美国,很多企业通过CMMI评估一方面为了满足承包国防工程或一些大企业的工程的要求,另一方面也是为了提高企业自身的管理能力。美国政府的工程项目,绝大多数都要求承包商具有一定的CMMI级别作为参加投标的资格。越来越多的大型企业业开始要求其工程承包商具有一定的CMMI级别。级别高的企业在赢得项目的竞标中具有一定的优势。因此,如果没有CMMI的等级评估,企业就会失去很多商机。另一方面,企业通过CMMI评估也是为了提升企业内部的管理水平,降低企业的工程成本。企业在实施CMMI技术的投入都会得到丰厚的回报。据SEI统计,用于软件项目上的CMMI的投资,其回报率在5:1到8:1之间。由此可见,为什么这么多的企业纷纷实施CMMI项目管理技术。
8.CMMI的基本表述
如果一家企业对外宣称自己通过了CMMI三级评估,外行的人会觉得还不错,因为三级比二级要高。内行的人则要问通过了三级什么?因为,CMMI有两种不同的表述方式,不同的表述方式,其级别表示不同的内容。CMMI的一种表述方式为连续表述,主要是衡量一个企业的项目能力。企业在接受评估时可以选择自己希望评估的项目来进行评估。因为是企业自己挑选项目,其评估通过的可能性就较大一点。但是,它反映的内容也比较窄一点。它仅仅表示企业在该项目或类似项目的实施能力达到了某一等级。而另一种表述方式为阶段性。它主要是衡量一个企业的成熟度,也即是企业在项目实施上的综合实力。企业在进行评估时,一定要由评估师来挑选企业内部的任何项目,甚至于任何项目的任何部分。一般地讲,一个企业要想在阶段性评估中得到三级,其企业内部的大部分项目要达到三级,小部分项目可以在二级,但绝不能够有一级。阶段性表述的难度要大一些。
虽然,CMMI的表述方式不同,但其实质内容是完全一样的。是同一种方法的两种不同的表达方式。企业在准备评估时要做的准备工作也是完全一样的。这些工作对企业的管理上的帮助也是一样的。因此,不能企业需要做什么样的评估,企业所获取的实惠应该是差别不大。具体要做连续性评估,还是做阶段性评估则是看企业对等级评估证书的具体要求。
9.CMMI的五个台阶
台阶一:CMMI一级,完成级。在完成级水平上,企业对项目的目标与要做的努力很清晰,项目的目标得以实现。但是由于任务的完成带有很大的偶然性,企业无法保证在实施同类项目的时候仍然能够完成任务。企业在一级上的项目实施对实施人员有很大的依赖性。
台阶二:CMMI二级,管理级。在管理级水平上,企业在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对相关的项目实施人员有相应的培训,对整个流程有监测与控制,并与上级单位对项目与流程进行审查。企业在二级水平上体现了对项目的一系列的管理程序。这一系列的管理手段排除了企业在一级时完成任务的随机性,保证了企业的所有项目实施都会得到成功。
台阶三:CMMI三级,定义级。在定义级水平上,企业不仅能够对项目的实施有一整套的管理措施,并保障项目的完成;而且,企业能够根据自身的特殊情况以及自己的标准流程,将这套管理体系与流程予以制度化这样,企业不仅能够在同类的项目上生到成功的实施,在不同类的项目上一样能够得到成功的实施。科学的管理成为企业的一种文化,企业的组织财富。
台阶四:CMMI四级,量化管理级。在量化管理级水平上,企业的项目管理不仅形成了一种制度,而且要实现数字化的管理。对管理流程要做到量化与数字化。通过量化技术来实现流程的稳定性,实现管理的精度,降低项目实施在质量上的波动。
台阶五:CMMI五级,优化级。在优化级水平上,企业的项目管理达到了最高的境界。企业不仅能够通过信息手段与数字化手段来实现对项目的管理,而且能够充分利用信息资料,对企业在项目实施的过程中可能出现的次品予以预防。能够主动地改善流程,运用新技术,实现流程的优化。
由上述的五个台阶我们可以看出,每一个台阶都是上面一阶台阶的基石。要上高层台阶必须首先踏上较低一层台阶。企业在实施CMMI的时候,路要一步一步地走。一般地讲,应该先从二级入手。在管理上下功夫。争取最终实现CMMI的第五级。
10.实施CMMI易犯的8个错误[1]
自从CMMI被引进国内以后,越来越多的企业实施了CMMI。但是真正取得良好收益的企业不多见。亚远景科技总结了几十个CMMI案例后,发现了实施CMMI过程中容易犯的8个错误。如果企业能过有效规避这些错误,就能够顺利实施CMMI,并取得良好效果。
- 1、企业高层不重视
这是最重要的一点。公司高层领导对CMMI实施不够重视,没有提供足够的资源,同时监督参与不够,就会直接影响实施的效果。如果缺少了企业高层的支持,体系的推广是很困难的的,所以必须使高层充分认识实施CMMI对企业长期发展的的重要性。
- 2、人员素质不够
关键过程改进实施人员例如EPG组长, CM和PPQA人员在管理经验及技术实力上不足以担负其职责,没有足够的软件工程背景,在组织中亦无足够的能力获得足够的威信,则可能导致项目人员不理解不支持过程改进工作,其结果将直接导致实施项目失败,或者在评估时暴露太多严重问题,从而决定性的影响整个评估工作。必须选择那些有经验、有能力、有威望的员工参与的实施过程中来,充分发挥他们在企业里的正面影响力。
- 3、依赖顾问的文档
EPG成员过于依赖顾问提供的参考文档,对CMMI的模型学习不够,没有花必要的时间构造企业自己的过程文件,使过程文件的不能很好地适应企业的实际情况。必须提高EPG对参与CMMI实施工作价值的认识,培养EPG的工作技能。只有真正理解了模型才能根据实际进行裁剪,才能不机械照搬CMMI条文或其他企业的标准过程。
- 4、没有循序渐进
过程改进不是推倒重来,而是应该在企业原来的基础上发现不足,循序渐进。员工学习新的知识,企业建立新的体系都需要时间,拔苗助长是不切实际的。过程改进不是只为了取得证书,企业应当制定长期的过程改进计划,一步步不断完善自己的研发体系。
- 5、员工有抵触情绪
员工对实施CMMI的目的没有认同,新流程实施与原有开发习惯不同,开发人员有抵触,认为新增加的过程文件和模板没有实际作用。必须加强培训,使员工了解 CMMI能够带来的好处;同时设计合理有效的过程文件和模版,减少形式主义的没有用处的工作;建立过程改进激励机制,使员工乐于参与过程改进。
- 6、CMMI实施计划变动
由于市场压力和项目交货期的压力,CMMI实施计划不能保证,工作被推迟或者减少。企业领导和全体相关人员必须充分认识这一风险,通过CMMI的项目管理,合理计划、分配和使用资源。选择咨询管理成熟的公司,提前安排和计划工作资源。
- 7、没有过程改进定期汇报机制
如果组织内部未建立过程改进定期汇报机制,关注过程改进、实施及过程表现情况,那么首先不能满足模型本身的要求,同时也会给组织人员造成管理层不重视,进而对组织过程改进漠不关心的现象。
- 8、工具的使用
有的公司全凭手工来做,在不熟悉过程和模板的情况,导致增加很多工作量。也有的公司大量使用工具,但是在使用之前未给项目组做充分的培训,导致项目快结束了,项目组还在修正或者弥补项目因为不能正确使用工具所产生的问题或者困难。
11.CMMi实施流程[2]
阶段1:CMMI项目启动会
明确企业实施CMMI的商业目标,建立CMMI项目实施的沟通机制。
阶段2:CMMI基础培训和过程改进小组(EPG)组建
进行CMMI基础概念讲解,指导企业建立核心的过程改进小组。
阶段3:诊断
充分了解企业研发过程现状,识别企业现有软件过程与企业现阶段理应达到的的CMMI成熟度级别的差距,提交诊断报告,进行过程改进的策划。
阶段4:过程域培训和文件定义
结合企业过程现状进行CMMI过程域培训,通过举例、案例分析等方式,让企业的EPG掌握过程文件定义技巧,结合企业实际情况有针对性的定义组织的研发过程,并确定过程产出物(如:需求报告)
阶段5:项目试点
选择代表公司核心业务的项目或者典型项目进行试点,通过试点来完善过程文件,从而为企业全面推广过程文件打下基础。
阶段6:组织推广
全员参与全面导入与执行CMMI。
阶段7:预评估
验证组织推广的结果,识别企业尚存缺陷并制定再次改善方案,准备充分,以便企业能够更好进行正式SCAMPI评估。
阶段8:SCAMPI正式评估
由SEI授权的主任评估师领导,采用SCAMPI ( Standard CMMI Appraisal Method for Process Improvement)评估方法,对企业的能力成熟度进行正式的评估,颁发证书,通过SEI网站向全球发布企业信息。