CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成
是美国国防部的一个设想,1994年由美国国防部(United States Department of Defense)与卡内基-梅隆大学(Carnegie-Mellon University)下的软件工程研究中心(Software Engineering Institute,SEI)以及美国国防工业协会(National Defense Industrial Association)共同开发和研制的,他们计划把现在所有现存实施的与即将被发展出来的各种能力成熟度模型,集成到一个框架中去,申请此认证的前提条件是该企业具有有效的软件企业认定证书。
其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。
CMMI版本介绍
CMMI是一套融合多学科的、可扩充的产品集合, 其研制的初步动机是为了利用两个或多个单一学科的模型实现一个组织的集成化过程改进。CMMI的本质是软件管理工程的一个部分。软件过程改善是当前软件管理工程的核心问题, 50多年来计算机的发展使人们认识到要高效率、高质量和低成本地开发软件,必须改善软件生产过程。基于模型的过程改进是指采用能力模型来指导组织的过程改进,使之过程能力稳定的进行改善,该组织也能变得更加成熟。
CMMI的成功促使其他学科也相继开发类似的过程改进模型,例如系统工程、需求工程、人力资源、集成产品开发、软件采购等等,从CMM衍生出了一些改善模型,比如:SW-CMM,SE-CMM,IPD-CMM等。不过,在同一个组织中多个过程改进模型的存在可能会引起冲突和混淆。CMMI就是为了解决怎么保持这些模式之间的协调。
CMMI 1.3是2010年11月SEI发布的CMMI模型的最新版本。CMMI 1.3包括CMMI采购模型1.3版、CMMI开发模型1.3版、CMMI服务模型1.3版。
CMMI开发模型1.3版(CMMI-DEV 1.3)与CMMI开发模型1.2版相比,做了如下改进:
1)将过程域“组织级创新与部署”(Organizational Innovation and Deployment,OID)更名为“组织绩效管理”(Organizational Performance Management, OPM),并增加了一个新的特定目标与几个新的特定实践。
2)对模型架构进行了改进,简化对多个模型的使用。
CMMI的价值
CMMI为企业带来价值主要体现在以下几个方面:
第一、能保证软件开发的质量与进度,能对“杂乱无章、无序管理”的项目开发过程进行规范。
第二、有利于成本控制。因为质量有所保证,浪费在修改、解决客户的抱怨方面的成本会降低很多。绝大多数情况是缺少规范制度,只是求快。项目完成后,要花很多时间修修补补,费用很容易失控。
第三、有助于提高软件开发者的职业素养。每一个具体参与其中的员工,无论是项目经理,还是工程师,甚至一些高层管理人的做事方法逐渐变得标准化、规范化。
第四、能够解决人员流动所带来的问题。公司通过过程改进,建立了财富库以共享经验, 而不是单纯依靠某些人员。
第五、有利于提升公司和员工绩效管理水平,以持续改进效益。通过度量和分析开发过程和产品,建立公司的效率指标。
实施流程
阶段1:CMMI项目启动会
明确企业实施CMMI的商业目标,建立CMMI项目实施的沟通机制。
阶段2:CMMI基础培训和过程改进小组(EPG)组建
进行CMMI基础概念讲解,指导企业建立核心的过程改进小组。
阶段3:诊断
充分了解企业研发过程现状,识别企业现有软件过程与企业现阶段理应达到的CMMI成熟度级别的差距,提交诊断报告,进行过程改进的策划。
阶段4:过程域培训和文件定义
结合企业过程现状进行CMMI过程域培训,通过举例、案例分析等方式,让企业的EPG掌握过程文件定义技巧,结合企业实际情况有针对性的定义组织的研发过程,并确定过程产出物(如:需求报告)
阶段5:项目试点
选择代表公司核心业务的项目或者典型项目进行试点,通过试点来完善过程文件,从而为企业全面推广过程文件打下基础。
阶段6:组织推广
全员参与全面导入与执行CMMI。
阶段7:预评估
验证组织推广的结果,识别企业尚存缺陷并制定再次改善方案,准备充分,以便企业能够更好进行正式SCAMPI评估。
阶段8:SCAMPI A 正式评估
由美国CMMI研究所授权的主任评估师领导,采用SCAMPI ( Standard CMMI Appraisal Method for Process Improvement)评估方法,对企业的能力成熟度进行正式的评估,颁发证书,通过美国CMMI研究所网站向全球发布企业信息。
CMMI过程域
Process Area:过程域。简单的说就是做好一个事情的某一个方面,对应软件开发来说,就是做好软件开发的某一个方面。
2、3级共有18个过程域(PA),主要内容如下,分四大类:
过程管理
1. OPD:(Organizational Process Definition)组织级过程定义。建立和维护有用的组织过程资产。
2. OPF:(Organizational Process Focus)组织级过程焦点。在理解现有过程强项和弱项的基础上计划和实施组织过程改善。
3. OT:(Organizational Training)组织培训管理。增加组织各级人员的技能和知识,使他们能有效地执行他们的任务。
项目管理
4. PP:(Project Plan)项目计划。保证在正确的时间有正确的资源可用。为每个人员分配任务、协调人员。根据实际情况,调整项目。
5. PMC:(Project Monitoring and Control)项目监督与控制。通过项目的跟踪与监控活动,及时反映项目的进度、费用、风险、规模、关键计算机资源及工作量等情况,通过对跟踪结果的分析,依据跟踪与监控策略采取有效的行动,使项目组能在既定的时间、费用、质量要求等情况下完成项目。
6.SAM:(Supplier Agreement Management)供应商协议管理。旨在对以正式协定的形式从项目之外的供方采办的产品和服务实施管理。
7.IPM:(Integrated Project Management)集成项目管理。根据从组织标准过程剪裁而来的集成的、定义的过程对项目和利益相关者的介入进行管理。
8. RSKM:(Risk Management)风险管理。识别潜在的问题,以便策划应对风险的活动和必要时在整个项目生存周期中实施这些活动,缓解不利的影响,实现目标。
工程管理
9.RD:(Requirement Development)需求开发。需求开发的目的在于定义系统的边界和功能、非功能需求,以便涉众(客户、最终用户)和项目组对所开发的内容达成一致。
10.REQM(Requirement Management)需求管理。需求管理的目的是在客户和软件项目之间就需要满足的需求建立和 维护一致的约定。
11.TS:(Technical Solution)技术解决方案。在开发、设计和实现满足需求的解决方案。解决方案的设计和实现等都围绕产品、产品组件和与过程有关的产品。
12.PI:(Product Integration)产品集成。从产品部件组装产品,确保集成产品功能正确并交付产品。
13.VAL:(Validation)确认。确认证明产品或产品部件在实际应用下满足应用要求。
14.VER:(Verification)验证。验证确保选定的工作产品满足需求规格。
支持管理
15. CM:(Configuration Management)配置管理。建立和维护在项目的整个软件生存周期中软件项目产品的完整性 。
16.PPQA:(Process and Product Quality Assurance)过程和产品质量保证。为项目组和管理层提供项目过程和相关工作产品的客观信息。
17.MA:(Measurement and Analysis)测量与分析。开发和维持度量的能力,以便支持对管理信息的需要。作为改进、了解、控制决策。
18. DAR:(Decision Analysis and Resolution)决策分析与解决。应用正式的评估过程依据指标评估候选方案,在此基础上进行决策。
第4级除第2、3级所涵盖的18个流程领域外,增加
19. OPP :(Organizational Process Performance)组织过程性能。建立与维护组织过程性能的量化标准,以便使用量化方式的管理项目。
20. QPM(Quantitative Project Management) 量化的项目管理,量化管理项目已定义的项目过程,以达成项目既定的质量和过程性能目标。。
第5级包含第2级到第4级的20个流程领域外,增加,
21. OID:(Organizational Innovation and Deployment)组织的创新与推展,选择并推展渐进创新的组织过程和技术改善,改善应是可度量的,所选择及推展的改善需支持基于组织业务目的的质量及过程执行目标。
22. CAR:(Causal Analysis and Resolution)因果分析与解决。识别缺失的原因并进行矫正,进一步的防止未来再次发生。