CMMI的全称为Capability Maturity Model Integration,即能力成熟度模型集成。CMMI是CMM模型的最新版本。早期的CMMI(CMMI-SE/SW/IPPD),SEI在部分国家和地区开始推广和试用。随着应用的推广与模型本身的发展,演绎成为一种被广泛应用的综合性模型。
CMMI全称是能力成熟度模型集成,CMMI认证一共有5个级别,CMMI1级,完成级;CMMI2级,管理级;CMMI3级,定义级;CMMI4级,量化管理级;CMMI5级,优化级。
注:
Capability:[ˌkeɪpəˈbɪləti],能力; 才能;
Maturity:[məˈtʃʊərəti],“成熟;到期;完备”
发展
CMMI(Capability Maturity Model Integration For Software,软件能力成熟度模型集成)是在CMM(Capability Maturity Model For Software,软件能力成熟度模型)的基础上发展而来的。CMMI是由美国卡耐基梅隆大学软件工程研究所(Software Engineering Institute,SEI)组织全世界的软件过程改进和软件开发管理方面的专家历时四年而开发出来的,并在全世界推广实施的一种软件能力成熟度评估标准,主要用于指导软件开发过程的改进和进行软件开发能力的评估。
CMM模型自20世纪80年代末推出,并于20世纪90年代广泛应用于软件过程的改进以来,极大地促进了软件生产率的提高和软件质量的提高,为软件产业的发展和壮大做出了巨大的贡献。
然而,CMM模型主要用于软件过程的改进,促进软件企业软件能力成熟度的提高,但它对于系统工程、集成化产品和过程开发、供应商管理等领域的过程改进都存在缺陷,因而人们不得不分别开发软件以外其他学科的类似模型。
自从引入基于模型的过程改进之后,工程界至少在三个重要领域已经有了变化。
首先,执行工程的环境已经变得更加复杂。工程量更大、需要更多的人员、需要跨越公司界限、发布范围更宽更广,而且必须继续加快实现的进度,以满足客户的需要。这样导致各种协调工作的大量增加。
其次,执行工程任务的方式已经有了进化。交叉学科群组、并行工程、高度自动化的过程以及多国标准等都影响到工程实践。这样一来,一个工程项目可能要涉及到几个国际标准。
第三,软件工程研究所的软件能力成熟度模型(CMM)的成功,导致了各种模型的衍生,而每一种模型都探讨了某一特定领域中的过程改进问题。各机构也已采用多种改善模型分别处理各自的关键过程问题。在工程组织中模型的繁衍导致了过程改进目标和技术的冲突,也导致了实践人员在应用各种不同的模型来实现特定的需求时容易产生混淆,这就要求培训工作也随之增长。
所有这些变化都表明,有必要将各种过程改进工作集成起来。包含在当代工程中各种各样的学科和过程是密切交叉在一起的。在应用不同模型时,效率低下且容易混淆,常常要付出极其昂贵的代价。因而需要有一种单一的过程改进框架而又能跨越多种学科的工具。软件能力成熟度模型集成(CMMI)就是用来解决这三类问题的。
基本思想
开发和应用CMMl的主要原因有三点:一是软件项目的复杂性的快速增长使过程改进的难度增大,二是软件工程的并行与多学科组合,三是实现过程改进的最佳效益。
(1)解决软件项目的过程改进难度增大问题。CMM成功实施以后,极大地提高了软件企业的开发效率和软件产品的质量,从而也提高了软件产品的可靠性和软件产业的信誉,这样人们就对软件寄予了更大的希望。人们希望软件能够完成更多、更大、更复杂的任务。
(2)实现软件工程的并行与多学科组合。CMM模型的成功实践,促进了工程和产品开发的组织发生了巨大的变革,变革的目标主要是为了消除与分段开发有关的低效。在分段开发过程中,中间产品传给下一阶段的工作人员时,有可能要进行大量的返工,以纠正原先的理解错误。并行工程、交叉学科群组、交叉功能群组、集成化产品群组以及集成化产品和过程开发等,都代表了在产品或服务的整个生命周期的合适时间内处理这类问题的不同方法。这种倾向意味着设计人员和客户要与制造人员、测试人员和用户共同工作,以支持开发需求的制造组织。这种工作方式蕴涵着所有关键的相关人员要支持产品或服务开发的所有阶段。
(3)实现过程改进的最佳效益。尽管过程改进存在复杂化的因素,但软件管理专家们相信,其中的许多障碍可以通过一个集成过程改进的公共模型来克服。这种信念反映了在集成方面所进行的工作和CMMl项目的作者和评审人员的经验。人们相信,正如通过CMM的过程改进能够产生显著的效益一样,集成过程改进也能产生更大的效益。
从根本上来说,过程改进集成主要影响四个领域:成本、侧重点、过程集成和灵活性。其中某些变化可能比另一些变化容易量化,但所有这些都体现了过程改进集成的真正优势。
CMMI模型的表示法
在CMMI中,每一种CMMI学科模型都有两种表示法:阶段式表示法和连续式表示法。
不同表示法的模型具有不同的结构。连续式表示法强调的是单个过程域的能力,从过程域的角度考察基线和度量结果的改善,其关键术语是“能力”;而阶段式表示法强调的是组织的成熟度,从过程域集合的角度考察整个组织的过程成熟度阶段,其关键术语是“成熟度”。
(1)阶段式表示法
软件CMM是一种阶段式模型,该模型经过多年的成功使用已经被证明是有效的,这为选择阶段式表示法模型提供了最强有力的证据。考虑从不成熟组织向成熟组织的发展过程,阶段式表示法具有两方面优势。
首先,阶段式模型为支持组织的过程改进提供了一个过程平台,该模型将软件组织的软件能力成熟度描述为5级。对于着眼于改善过程成熟度的组织来说,阶段式模型提供了一种明确的、行之有效的跨越式发展途径。阶段式模型中所描述的组织的五个成熟度等级中,每实现一次等级间的跨越,组织就致力于解决某一方面的问题。例如,组织从成熟度等级1到成熟度等级2,主要致力于项目管理过程的改进;从成熟度等级2到成熟度等级3,主要致力于广泛的组织级过程的改进;从成熟度等级3到成熟度等级4,主要致力于过程定量管理的过程的改进;从成熟度等级4到成熟度等级5,主要致力于技术革新和优化过程的改进。通过这种方式,阶段式模型确定了组织进行过程改进的最佳次序。
其次,阶段式模型可以为组织定义一个过程成熟度等级,便于进行跨组织的比较。在阶段式模型中,每一个过程域都被指定归属到一个成熟度等级中。因此,基于阶段式模型为组织所定义的成熟度等级中,过程域的预期范围和应用将变得非常清晰。这样,在对不同的组织进行比较时,只要对比组织所达到的不同的成熟度等级,即可知道不同组织在执行过程域方面所存在的差别。
阶段式表示法存在两方面的缺点:一是阶段式表示法采用分组形式,将过程域划分到五个等级中。在一般情况下,一个组织要到达某一个等级,必须满足该等级及其低等级的所有过程域,因而缺乏灵活性。另外,阶段式表示法的每个等级都会出现同时进行多个过程改进的情况,因而工作量大,所花费的成本也很大。
(2)连续式表示法
相比之下,连续式模型不如阶段式模型常用,采用连续式模型也有如下两方面的优势:
首先,连续式模型为用户进行过程改进提供了比较大的自由度。如同上面所说,阶段式模型确定了组织进行过程改进的最佳次序,但同时也限定了用户在进行过程改进时必须遵循单一的改善路径。而连续式模型则允许用户根据组织的业务目的来选择过程改进活动的次序。在连续式模型中,用户可以选择定义组织的成熟度等级,同时还可以选择定义更适合于自身业务环境的过程域的次序。组织可以在一个自己选择的次序中使过程域达到给定的能力等级,而不必遵循单一的阶段式模型的原则。
其次,基于连续式模型对组织的过程进行评估,其评估结果具有更好的可见性。在连续式模型中,可以为每个过程域定义多个能力等级,从而可以增强对过程改进中强项和弱点的认识。由于连续式模型是对每个个别的过程域进行单独的评定,并给出个别过程域的能力等级特征图,这样更便于观察。
连续式表示法也存在两方面的缺点:一是由于连续式表示法没有规定过程域应用的顺序,因而组织的过程改进需要软件过程改进专家的指导,以便确定组织需要改进的过程和改进的先后次序。另外,尽管组织应用连续式表示法进行了过程改进,但难以与其他软件组织进行组织间过程能力的比较。
级别
CMMI共有5个级别,代表软件团队能力成熟度的5个等级,数字越大,成熟度越高,高成熟度等级表示有比较强的软件综合开发能力。
CMMI一级,执行级。在执行级水平上,软件组织对项目的目标与要做的努力很清晰,项目的目标可以实现。但是由于任务的完成带有很大的偶然性,软件组织无法保证在实施同类项目时仍然能够完成任务。项目实施能否成功主要取决于实施人员。
CMMI二级,管理级。在管理级水平上,所有第一级的要求都已经达到,另外,软件组织在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对项目相关的实施人员进行了相应的培训,对整个流程进行监测与控制,并联合上级单位对项目与流程进行审查。二级水平的软件组织对项目有一系列管理程序,避免了软件组织完成任务的随机性,保证了软件组织实施项目的成功率。
CMMl三级,明确级。在明确级水平上,所有第二级的要求都已经达到,另外,软件组织能够根据自身的特殊情况及自己的标准流程,将这套管理体系与流程予以制度化。这样,软件组织不仅能够在同类项目上成功,也可以在其他项目上成功。科学管理成为软件组织的一种文化,成为软件组织的财富。
CMMI四级,量化级。在量化管理级水平上,所有第三级的要求都已经达到,另外,软件组织的项目管理实现了数字化。通过数字化技术来实现流程的稳定性,实现管理的精度,降低项目实施在质量上的波动。
CMMI五级,优化级。在优化级水平上,所有第四级的要求都已经达到,另外,软件组织能够充分利用信息资料,对软件组织在项目实施的过程中可能出现的次品予以预防。能够主动地改善流程,运用新技术,实现流程的优化。
由上述的5个级别可以看出,每一个级别都是更高一级的基石。要上高层台阶必须首先踏上所有下层的台阶。
作用
在美国,很多企业通过CMMI评估一方面为了满足承包国防工程或一些大企业的工程的要求,另一方面也是为了提高企业自身的管理能力。美国政府的工程项目,绝大多数都要求承包商具有一定的CMMI级别作为参加投标的资格。越来越多的大型企业业开始要求其工程承包商具有一定的CMMl级别。级别高的企业在赢得项目的竞标中具有一定的优势。因此,如果没有CMMI的等级评估,企业就会失去很多商机。
应用
CMMI是一个庞大的过程元模型,自发布以来在世界软件界产生了巨大的影响。CMMI等级评估已经成为业界公认的标准,CMMI的证书成了一个企业或组织能力和形象的标志,没有这个证书不仅难以获得国外项目,甚至也难以在国内一些项目的竞标中获胜。CMMI适合企业操作,避免了某些管理体系只重理论而忽视实践的缺陷。在我国,随着媒体的宣传和政府的支持,许多企业引入了CMMI咨询和认证,对于整个软件行业的管理提升及研发效率提高起到了很大的帮助作用。但也有一些企业引入CMMI体系后,只留下一些形式上的开发流程和文档模板,在管理上并无实质性改进。对于CMMI,业界一直存在着两种声音,有人认为CMMI执行过度,得不偿失;也有人说它过于通用,实用价值不大;但多数人还是认同它,并根据需要加以应用。
CMMI 2.0
2018年7月17日,CMMI 研究院正式发布了 CMMI 2.0 中文版。CMMI 2.0 版本是一个全球公认的软件、产品和系统开发优良实践过程改进模型,能够帮助组织提升绩效。
与此同时,CMMI中国卓越中心也宣布正式成立,该中心位于北京,将支持 CMMI 2.0 版本和未来更多升级,致力于推动软件、服务、数据管理和网络安全的新兴实践,通过教育、咨询、评估、对标和研究为中国企业提供服务。CMMI开发2.0版本是 CMMI 研究院针对软件、产品和系统优良实践发布的过程改进模型。
CMMI的较早版本已被用于评估和提升全球领先组织和企业的绩效,惠及数千家中国组织。CMMI开发2.0版本让经过验证的方法能适应不断变化的技术环境,更精简易用,确保决策者更好地应对新挑战,极大限度提高业绩。
CMMI2.0 版本产品套件包括成熟度模型、使用指南、系统与支持工具、培训、认证和评估方法。与前期版本一样,CMMI2.0 版本使用五个级别代表提高能力成熟度以改进业务绩效的途径。
CMMI2.0版本具备以下优势:
改善业务绩效- 商业目标直接与运营相关联,达到在时间、质量、预算、客户满意度和其他关键驱动因素的性能方面实现可衡量的提升。
利用当前的优良实践- CMMI2.0 版本是经过验证的优良实践的可靠来源,并会在新的在线平台上持续更新,能够反映不断变化的业务需求。
构建敏捷弹性和规模化- 在整个企业范围内以绩效为焦点,为加强使用Scrum的敏捷项目过程提供直接的指导。
对能力和性能进行对标- 新的性能导向的评估方法提高了基准评估的可靠性和一致性,同时缩短了准备时间,降低了生命周期成本。
加速采用- 通过在线平台和应用指南,更容易获得 CMMI 提供的帮助。