CMM/CMMI/SPCA业务介绍
一、背景介绍: CMM是“软件能力成熟度模型”的英文简写,该模型由美国卡内基-梅隆大学的软件工程研究所(简称SEI)受美国国防部委托,于1991年研究制定,初始的主要目的是为了评价美国国防部的软件合同承包组织的能力,后因为在软件企业应用CMM模型实施过程改进取得较大的成功,所以在全世界范围内被广泛使用,SEI同时建立了主任评估师评估制度,CMM的评估方法为CBA-IPI。
CMMI是SEI于2000年发布的CMM的新版本。CMMI不但包括了软件开发过程改进,还包含系统集成、软硬件采购等方面的过程改进内容。CMMI纠正了CMM存在的一些缺点,使其更加适用企业的过程改进实施。CMMI适用SCAMPI评估方法。需要注意的是,SEI没有废除CMM模型,只是停止了CMM评估方法:CBA-IPI。现在如要进行CMM评估,需使用SCAMPI方法。但CMMI模型最终代替CMM模型的趋势不可避免。
SPCA(又称“双模认证”)是软件过程能力评估和软件能力成熟度评估的统称。为了贯彻国务院18号文件精神,加快发展我国软件行业,提高国内软件企业的竞争力,信息产业部会同国家认证认可监督委员会,在研究了国际软件评估体制尤其是美国卡内基-梅隆大学SEI所建立的能力成熟度模型CMMI的基础上,考虑国内软件产业实际情况,于2001年建立了SPCA评估体系。SPCA所依据的评估标准是我国制定的SJ/T 11234《软件过程能力评估模型》和SJ/T 11235《软件能力成熟度模型》。
二、标准特点: CMM/CMMI/SPCA的思想来源于已有多年历史的产品质量管理和全面质量管理。Watts Humphrey和Ron Radice在IBM公司将全面质量管理的思想应用于软件工程过程,收到了很大的成效。SEI的软件能力成熟度框架就是在以Humphrey为主的软件专家实践经验的基础上发展而来的。软件能力成熟度模型中融合了全面质量管理的思想,以不断进化的层次反映了软件过程定量控制中项目管理和项目工程的基本原则。CMM/CMMI/SPCA所依据的想法是只要不断地对企业的工程过程的基础结构和实践进行管理和改进,就可以克服软硬件生产中的困难,增强开发制造能力,从而能按时地、不超预算地制造出高质量的软件产品。
CMM模型的结构如下图所示:
CMMI/SPCA模型分为连续式和阶段式两种。连续式的CMMI模型结构如下图(SJ/T11234):
阶段式的CMMI模型结构如下图(SJ/T11235):
各模型的等级对应
Level
|
CMM
|
CMMI(分级式)/ SJ/T11235
|
CMMI(连续式)/ SJ/T11234
|
5
|
优化中
|
优化中
|
优化中
|
4
|
已管理
|
定量管理
|
定量管理
|
3
|
已定义
|
已定义
|
已定义
|
2
|
可重复
|
已管理
|
已管理
|
1
|
初始级
|
初始级
|
已执行
|
0
|
未完成
|
CMMI模型由不同的组建组成,以适用于不同的企业和不同的目的。下表为CMMI模型的组成和适用范围:
CMMI模型组件 | 适用范围 |
SE/SW | 软件工程、系统工程 |
SE/SW /IPPD | 软件工程、系统工程、集成产品和过程开发 |
SE/SW /IPPD/SS | 软件工程、系统工程、集成产品和过程开发、供应采购 |
培训课程 | 评估师、过程改进人员等培训 |
SCMPI | 评估方法 |
三、好处/作用:实施CMM/CMMI/SPCA,可以帮助IT企业对软件/系统工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件和系统集成项目,从而提高企业的管理水平,增强企业的国际竞争能力。实施CMM/CMMI/SPCA对企业的好处主要体现为:
第一、能保证软件开发的质量与进度,能对“杂乱无章、无序管理”的项目开发过程进行规范。
第二、有利于成本控制。因为质量有所保证,浪费在修改、解决客户的抱怨方面的成本会降低很多。现在绝大多数情况是缺少规范制度,只是求快。项目完成后,要花很多时间修修补补,费用很容易失控。
第三、有助于提高软件开发者的职业素养。每一个具体参与其中的员工,无论是项目经理,还是工程师,甚至一些高层管理人的做事方法逐渐变得标准化、规范化。
第四、能够解决人员流动所带来的问题。公司通过过程改进,建立了财富库以共享经验, 而不是单纯依靠某些人员。
第五、有利于提升公司和员工绩效管理水平,以持续改进效益。通过度量和分析开发过程和产品,建立公司的效率指标。
等等。
我国政府一直重视软件和IT产业的规范和发展,强调提高我国软件开发和软件产品质量的重要性。国务院 “18号文件” 《鼓励软件产业和集成电路产业发展的若干政策》明确提出鼓励软件出口型企业软件能力成熟度认证,其认证费用通过中央外贸发展基金适当予以支持。目前各省市高新区、软件园或信息产业主管部门大都有对通过CMM/CMMI/SPCA评估的企业给予资金奖励的制度。特别是SPCA评估得到了中国政府的直接支持,反映了政府大力支持和推动我国软件业发展的政策导向。可以相信对于通过SPAC评估的企业将得到更多得政策支持。
四、适用范围: CMM/CMMI/SPCA评估为软件开发、外包和系统集成(IT)企业提供了业界最佳实践,有利于这些企业提升管理水平,增强竞争能力。
根据企业的业务及产品情况。一般可按如下原则选择:
1) 国内软件开发企业:CMMI-SW和SPCA
2) 软件外包企业(特别是承包美国软件项目):CMM或CMMI-SW
3) 系统集成企业:CMMI-SW/SE
4) 在国际市场竞争中显示软件过程能力:CMM或CMMI
5) 内部软件过程改进:SPCA,因为评估成本较低
6) 承担较多政府项目和国内项目:SPCA,有利于享受信息产业政策
五、基本条件:
(a) 评估机构及人员要求:开展CMM/CMMI评估必须是SEI授权的合作机构,评估活动由SEI授权的主任评估师进行,并遵守SEI发布的评估需求(ARC)和评估方法(SCAMPI);开展SPCA评估必须得到信息产业部和国家认证认可委员会的批准,评估过程遵守国家发布的SPCA评估方法。
(b) 对于CMM/CMMI评估,一般要求企业的项目或产品活动应能覆盖所申请CMM/CMMI等级的要求;而对于SPCA评估,一般要求为:企业成立5年以上,软件开发人员20人以上,评估项目和人员覆盖率达到70%。
六、基本流程: CMM/CMMI/SPCA实施的基本流程如下:
基础培训-->差距分析-->文件评审-->项目试点-->制度化-->预评估-->最终评估
其中制度化过程的时间一般不低于6个月。
七、基本步骤:企业实施CMM/CMMI/SPCA的基本步骤为:
CMM/CMMI培训→成立SEPG、SQA组→建立和完善文件体系→试点实施→推广并制度化→参加预评估→参加、准备最终评估→持续改进