不忘初心方得始终

安全、服务、实效

CMMI

I、CMMI概述

CMMI 的全称为:Capability Maturity Model Integration,即能力成熟度模型集成。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的时候,一个组织可以把项目管理或者其他某类的实践一直做到最好,而其他方面的过程区域可以完全不必考虑。

 

II、CMMI各个进程的关键元素

CMMI自出道以来,它所达到的目标就没有变过,第一个是质量,第二个是时间表,第三就是要用最低的成本。不过特别强调的是,CMMI不是传统的、仅局限于软件开发的生命周期,它应该被运用于更广泛的一个范畴——工程设计的生命周期。TSP的建立,也是为了支持CMMI的这样一个系统。  

那么CMMI究竟是什么呢?它并不是一个过程,也不是告诉你怎么去做一件事情。如果用一句话来概括什么是CMMI,它就是各个进程的一个关键的元素,在很多领域里面一个集成的点。它是这样的一个基本架构,能够用来度量你的有效性和实用性;能够找出这样的一些机会,继续改进的机会,包括在商业目标、策略还有降低项目的风险等方面。

 

一、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将以更加系统和一致的框架来指导组织改善软件过程,提高产品和服务的开发、获取和维护能力。

 

二、实施CMMI的意义

很多人认为,实施CMMI的意义在于项目工程走向世界,可以在西方国家接到订单。实际上,这只是我国企业实施CMMI的意义的很小一部分。更为重要的意义则是,CMMI的实施能够提高我国企业的管理水平。降低企业的工程成本。事实表明,企业实施CMMI技术的投入都会得到丰厚的回报。据SEI统计,用于软件项目上的CMMI的投资,其回报率在5:1到8:1之间。由此可见,为什么这么多的企业纷纷实施CMMI项目管理技术。

近年来,很多软件企业纷纷实施CMMI管理模式,这一方面反映了我国企业在进入WTO后的危机意识,以及与世界接轨的迫切愿望。另一方面则反映出我国软件企业在改进管理方法上所作的努力。但是CMMI到底能够为我们做什么呢?实际上这个问题对不同的人有不同的答案。对采购部门的人员来说,掌握了CMMI技术可以有目的地考察项目实施人员或公司的实施能力,从而保证所采购的项目能够顺利完成。对于项目经理来说,掌握CMMI技术能够提高自己的管理能力,从而能够使项目高质量,低成本,按期限地完成。对于企业老总来说,CMMI还能够引入科学的管理理念,提升企业的整体管理水平。

在美国,很多企业通过CMMI评估,一方面为了满足承包国防工程或一些大企业的工程的要求,另一方面也是为了提高企业自身的管理能力。美国政府的工程项目,绝大多数都要求承包商有一定的CMMI级别作为参加投标的资格。越来越多的大型企业开始要求其工程承包商具有一定的CMMI级别。级别高的企业在赢得项目的竞标中具有一定的优势。因此,如果没有CMMI的等级评估,企业就会失去很多商机。

 

三、CMMI的两种实施方法

CMMI有两种不同的实施方法,不同的实施方法,其级别表示不同的内容。CMMI的一实施方法为连续式,主要是衡量一个企业的项目能力。企业在接受评估时可以选择自己希望评估的项目来进行评估。因为是企业自己挑选项目,其评估通过的可能性就较大一点。但是,它反映的内容也比较窄一点。它仅仅表示企业在该项目或类似项目的实施能力达到了某一等级。而另一种实施方法为阶段性。它主要是衡量一个企业的成熟度,亦即是企业在项目实施上的综合实力。企业在进行评估时,一定要由评估师来挑选企业内部的任何项目,甚至于任何项目的任何部分。一般地讲,一个企业要想在阶段性评估中得到三级,其企业内部的大部分项目要达到三级,小部分项目可以在二级,但绝不能够有一级。阶段性实施方法的难度要大一些。

虽然,CMMI的表述方式不同,但其实质内容是完全一样的。是同一种方法的两种不同的表述方式。企业在准备评估时要做的准备工作也是完全一样的。这些工作对企业的管理上的帮助也是一样的。因此,不管企业需要做什么样的评估,企业所获取的实惠应该是差别不大。具体要做连续性评估,还是做阶段性评估则要看企业对等级评估证书的具体要求。

 

四、CMMI可以帮助我们做什么

近年来,很多软件企业纷纷实施CMMI管理模式,不少企业如:东软,托普,华为等企业通过了三级或四级评估。 这一方面反映了我国企业在进入WTO后的危机意识,以及与世界接轨的迫切愿望。另一方面则反映出我国软件企业在改进管理方法上所作的努力。但是CMMI到底能够为我们做什么呢?实际上这个问题对不同的人有不同的答案。对采购部门的人员来说,掌握了CMMI技术可以有目的地考察项目实施人员或公司的实施能力,从而保证所采购的项目能够顺利完成。对于项目经理来说,掌握CMMI技术能够提高自己的项目管理能力, 从而能够使项目高质量,低成本,按期限地完成。 对于企业老总来说,CMMI技术不仅能够提升企业的管理水平,还能够引入科学的管理理念,提升企业的整体管理水平。

在美国,很多企业通过CMMI评估一方面为了满足承包国防工程或一些大企业的工程的要求, 另一方面也是为了提高企业自身的管理能力。美国政府的工程项目,绝大多数都要求承包商具有一定的CMMI级别作为参加投标的资格。越来越多的大型企业业开始要求其工程承包商具有一定的CMMI级别。级别高的企业在赢得项目的竞标中具有一定的优势。 因此,如果没有CMMI的等级评估,企业就会失去很多商机。另一方面,企业通过CMMI评估也是为了提升企业内部的管理水平,降低企业的工程成本。企业在实施CMMI技术的投入都会得到丰厚的回报。据SEI统计,用于软件项目上的CMMI的投资,其回报率在5:1到8:1之间。由此可见,为什么这么多的企业纷纷实施CMMI项目管理技术。

 

五、CMMI的基本表述

如果一家企业对外宣称自己通过了CMMI三级评估,外行的人会觉得还不错,因为三级比二级要高。 内行的人则要问通过了三级什么? 因为,CMMI有两种不同的表述方式,不同的表述方式,其级别表示不同的内容。CMMI的一种表述方式为连续表述,主要是衡量一个企业的项目能力。企业在接受评估时可以选择自己希望评估的项目来进行评估。因为是企业自己挑选项目,其评估通过的可能性就较大一点。但是,它反映的内容也比较窄一点。它仅仅表示企业在该项目或类似项目的实施能力达到了某一等级。而另一种表述方式为阶段性。它主要是衡量一个企业的成熟度,也即是企业在项目实施上的综合实力。企业在进行评估时,一定要由评估师来挑选企业内部的任何项目,甚至于任何项目的任何部分。一般地讲,一个企业要想在阶段性评估中得到三级,其企业内部的大部分项目要达到三级,小部分项目可以在二级,但绝不能够有一级。阶段性表述的难度要大一些。

虽然,CMMI的表述方式不同,但其实质内容是完全一样的。是同一种方法的两种不同的表达方式。企业在准备评估时要做的准备工作也是完全一样的。这些工作对企业的管理上的帮助也是一样的。因此,不能企业需要做什么样的评估,企业所获取的实惠应该是差别不大。具体要做连续性评估,还是做阶段性评估则是看企业对等级评估证书的具体要求。

 

六、CMMI的五个台阶

台阶一:CMMI一级,完成级。在完成级水平上,企业对项目的目标与要做的努力很清晰,项目的目标得以实现。但是由于任务的完成带有很大的偶然性,企业无法保证在实施同类项目的时候仍然能够完成任务。企业在一级上的项目实施对实施人员有很大的依赖性。

台阶二:CMMI二级,管理级。在管理级水平上,企业在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对相关的项目实施人员有相应的培训,对整个流程有监测与控制,并与上级单位对项目与流程进行审查。企业在二级水平上体现了对项目的一系列的管理程序。这一系列的管理手段排除了企业在一级时完成任务的随机性,保证了企业的所有项目实施都会得到成功。

台阶三:CMMI三级,定义级。在定义级水平上,企业不仅能够对项目的实施有一整套的管理措施,并保障项目的完成;而且,企业能够根据自身的特殊情况以及自己的标准流程,将这套管理体系与流程予以制度化这样,企业不仅能够在同类的项目上生到成功的实施,在不同类的项目上一样能够得到成功的实施。科学的管理成为企业的一种文化,企业的组织财富。

台阶四:CMMI四级,量化管理级。在量化管理级水平上,企业的项目管理不仅形成了一种制度,而且要实现数字化的管理。对管理流程要做到量化与数字化。通过量化技术来实现流程的稳定性,实现管理的精度,降低项目实施在质量上的波动。

台阶五:CMMI五级,优化级。在优化级水平上,企业的项目管理达到了最高的境界。企业不仅能够通过信息手段与数字化手段来实现对项目的管理,而且能够充分利用信息资料,对企业在项目实施的过程中可能出现的次品予以预防。能够主动地改善流程,运用新技术,实现流程的优化。

由上述的五个台阶我们可以看出,每一个台阶都是上面一阶台阶的基石。要上高层台阶必须首先踏上较低一层台阶。企业在实施CMMI的时候,路要一步一步地走。一般地讲,应该先从二级入手。在管理上下功夫。争取最终实现CMMI的第五级。

 

III、CMMI组织实施的方法论

近年来,随着国民经济持续增长,作为高新技术的软件产业虽然发展很快,但和国外同行业相比仍存在很大的差距。究其原因,投资环境、人才和技术固然是制约因素,但管理和政策显得更为关键。随着电子信息产业的发展,人们已经逐步认识到,软件是促进我国电子信息产业发展的关键技术。而要发展我国的软件产业,在战略上,必须将软件产业作为我国高新技术产业的龙头和国民经济发展的新增长点,在策略上,必须走软件过程管理专业化的道路。

1.提高思想认识

实施CMMI对软件组织的发展起着至关重要的作用,这种作用并不是取决于CMMI评估的结果。CMMI过程本身就是对软件组织发展历程的一个完整而准确的描述,组织通过实施CMMI,可以更好地规范软件生产和管理流程,使组织的管理更加规范化。而且,只有在国际市场取得成功的产品和组织才具有长久的竞争力和生命力,由于CMMI已获得国际组织和用户的广泛认可,因此很有必要在软件组织中实施CMMI。

2.进行CMMI培训和咨询工作

任何一个组织要想实施先进的管理措施,首先应该做的就是理论基础的建设,作为一个过程式管理方法的CMMI,同样也不例外。

根据CMMI模型的要求,一个项目的开发一定要有章可循,而且要做到有章必循,这两点都离不开培训。培训工作需要投入很大的人力、物力和财力,只有组织的管理人员和软件开发人员对CMMI真正了解和认识了,自觉地按CMMI的方法去进行工作,才能真正实施CMMI,而不是一时应付,做表面文章。

培训的内容需要精心地准备,主要有两个方面,第一,对所有员工包括经理在内的最基本的软件工程和CMMI培训知识;第二,对各个工作组的有关人员提供专业领域知识等方面的培训;此外,在每次开发过程中,还要对普通人员进行软件过程方面的培训。

培训的方式有很多,可以向有关专业培训咨询机构进行咨询;可以利用互联网资源进行咨询和培训;可以聘请有关CMMI专家到组织实地指导CMMI的实施。

3.确定合理的目标

CMMI模型划分为5个级别,共计18个关键过程域,52个目标,316个关键实践。每一个CMMI等级的评估周期(从准备到完成)约需12~30个月。无论一个组织的软件过程处于什么样的水平,都可以在CMMI框架的5个级别中找到自己的位置。CMMI框架的不同级别是针对处于不同管理水平的组织制定的,组织实施CMMI,首先必须了解自己的管理现状,对照CMMI的级别,找到自己在CMMI中所处的位置,然后有针对性采取与自己所处级别相适应的措施,使组织尽早纳入CMMI的演化阶段,使软件过程管理早日得到改善,最终达到提高软件质量,获取经济效益的目的。

因此,要实施CMMI,首先应该对本组织的现状有一个准确的评估。组织目前处于什么水平,组织发展的问题是什么,借助CMMI要达到的目的是什么。然后再结合组织的实际情况选择CMMI的切入点,确定总体目标。这个目标包括在多长时间之内,需要投入多少人力、物力和财力,要达到哪一级。

由于软件过程的建立和改进是一个渐进的、分轻重缓急的、逐步完善的过程。所以,在总体目标已经确定的前提下,还要制订近期目标和长期目标。

4.成立工作组

组织针对CMMI的实施,应成立专门的CMMI实施领导小组或专门的机构。CMMI的实施需要有强有力的组织保证,领导层必须真正学习理解软件过程管理和改进的重要性,亲自领导和参与,要保证过程管理的人员配备,抽调组织中有管理能力、组织能力和软件开发能力的骨干人员,确实把此项工作当作组织生存和发展的大事来抓。

在CMMI的实施过程中,工作组的成立是CMMI的一个关键步骤。有几个重要的组织是必不可少的,这些组织包括软件工程过程组、软件工程组、系统工程组、系统测试组、需求管理组、软件项目计划组、软件项目跟踪与监督、软件配置管理组、软件质量保证组、培训组。

在CMMI的实施中组织机构的设置必须完善,但不等于说每一个机构必须是独立的。有些组织很小时,机构可以适当合并,成员可以身兼数职。但对那些关键实践要求独立性时,组织必须十分小心。例如,软件质量保证组的独立性就是必须考虑的,否则在技术上或机构上出现的偏差,会无目的地影响到软件过程、项目质量和风险决策的正确性。

在这里还要提到一点,那就是物理组和逻辑组。在CMMI中有两种组织,一种叫物理组织,它是客观存在的,例如项目组、技术部等,有众多专职人员;另一种叫逻辑组织,就是说它的人员可以是兼职的,在用不到的时候,成员有自己的工作,而且很多逻辑组只需一两个人就可以了。

5.制定和完善软件过程

CMMI模型强调软件过程的改进,如果组织还没有一个文档形式的软件过程,则首要任务是对当前的工作流程进行分析、整理及文档化,从而制定出一个具有本组织风格的软件过程,并用该文档化的过程指导软件项目的开发。

如果已经具备了软件过程,则要对这个过程做内部评估,对照CMMI的要求,找出问题,然后对这个过程进行补充修改。在具体实施的过程中,可以选择有一定代表性和完善性的项目组或项目进行试点,跟踪、监督改进后的软件过程的实施情况,执行改进活动的状态。

同时,过程小组的成员还应该维护过程中的数据库,定期统计各个过程中的产品和规模、开发周期、修改次数及评估周期。这些数据库可用来分析项目的效率以及存在的问题,以便今后进一步的改进,同时还可以为项目开发过程提供咨询。

总结这些项目组或项目以前成功的经验,从中规划出一个具有实际意义的软件过程,按照CMMI规范评估这个过程,找出其中的优缺点。对不满足CMMI要求的地方加以完善,使其成为一个完美的实施CMMI的软件过程方案;然后将这个软件过程应用到当前正在承接的或即将承接的项目上,在实际使用过程中进一步发现其中的不足和错误之处,加以改进,最后将试点的结果推广到整个组织。

6.内部评审

CMMI每一级别的评估都由CMU/SEI授权的主任评估师领导一个评审小组进行,相对来说,评审费用比较高。因此,希赛教育专家建议,组织在进行正式评估之前,先进行内部评审或评估。组织自己内部成员,严格、认真地按照CMMI规范评估过程,对自己的软件过程进行评审,找出其中的不足点并进行改进。这样,就能确保正式评估时能一次性通过,节约成本。

7.正式评估

CMMI正式评估的过程包括员工培训(组织的高层领导也要参加)、问卷调查和统计、文档审查、数据分析、与组织的高层领导讨论和撰写评估报告等,评估结束时由主任评估师签字生效。

基于CMMI的评估方法主要有两种,一种是CBA-SCE(CMMI-Based Appraisal for Software Capability Estimation),它是基于CMMI对组织的软件能力进行评价,是由组织外部的评估小组对该组织的软件能力进行的评价。另一种是CBA-IPI(CMMI-Based Appraisal for Internal Process Improvement),它是基于CMMI对内部的过程改进进行的评估,是由组织内部的小组对软件组织本身进行评估以改进质量,结果归组织所有,目的是引导组织不断改进质量。

这两种评估均由CMU/SEI授权的主任评估师领导,参考CMMI框架来进行,都要审查正在使用和将来使用的文档,并对不同的员工进行采访。SCE与IPI的评估结果应该一致,评估结果的所有资料都将呈报给CMU/SEI。

8.根据评估结果改进软件过程

根据CMMI模型,成熟度的评估只是软件过程改进中的一个环节,如果这个环节与软件过程改进的其他环节不能很好地结合,那么,CMMI评估对于软件过程改进所应具有的作用就得不到发挥。

一般来说,应该在评估之后很快地作出软件过程改进的计划,因为这时大家对评估结果和存在的问题仍有一个深刻的认识。计划在软件过程改进中是一个非常必要的阶段,只有有效的计划,才能确保软件过程得到有效的改进。

CBA评估方法对衡量软件组织的能力成熟度是一个非常有效的手段,评估结果本身就是一个非常坚实的基础,是制定软件过程改进计划的依据。CBA评估客观地指出了组织软件过程存在的问题,帮助组织发现软件过程的不足之处,充分指出了软件过程改进的前景。

2020年6月29日 14:28
浏览量:0
收藏