CMMI 能力成熟度模型集成
简介
-
CMMI是一种流程改进方法,为组织提供了有效流程的基本要素。它可用于指导项目、部门或整个组织的流程改进。CMMI还为评估当前流程提供了一个参考点 。CMMI及其前一版本 CMM 适用于软件开发、解决了软件开发项目中的一个关键问题,即通常缺乏完善的管理框架来处理软件项目
-
软件过程改进(SPI)的 CMMI模型是过去不断努力开发和实施的软件开发过程策略的重要组成部分,这些策略有可能降低软件开发失败的风险并提高所开发软件产品的质量。在这一方向上迈出的第一步是软件 CMMI 方法论的开发,该方法论为软件组织提供了如何控制其软件开发和维护过程的指导[4]。CMMI 方法论基于与软件开发相关的四个知识体系:
-
- 系统工程 (SE)
-
- 软件工程(SW)
-
- 集成产品与流程开发 (IPPD)
-
- 供应商采购(SS)
-
CMMI方法包括一个可生成多个集成模型的框架、培训课程、一种内部评估和外部评价方法。
-
20世纪90 年代初,最初的CMM 开发所遵循的方法是持续的流程改进应基于小步演进,而不是引入革命性的创新。作为流程评估和改进的事实标准,CMMI 被用来识别有效流程的关键要素,并对软件流程的成熟度进行评估。因此,CMMI 规定了流程改进的渐进过程,并将这一广泛的活动组织成一个循序渐进的过程,分为五个成熟度等级:初始、已管理、已定义、已量化管理和持续优化。这些成熟度等级代表了一个顺序标尺,它定义了一个组织的软件开发过程的成熟度。
-
在成熟度的初始阶段,软件流程的特点是临时流程,可能比较混乱。在这一阶段,几乎没有对过程进行定义,成功与否主要取决于个人努力。软件开发过程没有系统化的管理,从一个项目到另一个项目的经验传承也是杂乱无章的。在已管理级别,有一些基本的项目管理流程。由于这些方法要求采用系统的方法来管理软件开发,因此组织能够在类似的应用中重复以前的成功。在这个层次上,知识和经验是可以传递的,因此组织可以在以往项目经验的基础上,使下一个软件开发项目更加成功。在达到已定义级别的组织中,软件流程是标准化和文档化的,此外,所有项目都使用经批准的定制版流程。这种更加严格的方法论应用使知识更加针对特定的开发方法,从而在软件开发项目之间进一步传递知识和经验。已量化管理级别除了包括已定义的步骤外,还包括收集软件过程和产品质量的详细衡量标准,并对其进行定量分析。在成熟度的最高级别,持续优化级继续通过量化反馈来改进流程。
基本思想
-
开发和应用CMMl的主要原因有三点:一是软件项目的复杂性的快速增长使过程改进的难度增大,二是软件工程的并行与多学科组合,三是实现过程改进的最佳效益。
-
(1)解决软件项目的过程改进难度增大问题。CMM成功实施以后,极大地提高了软件企业的开发效率和软件产品的质量,从而也提高了软件产品的可靠性和软件产业的信誉,这样人们就对软件寄予了更大的希望。人们希望软件能够完成更多、更大、更复杂的任务。
-
(2)实现软件工程的并行与多学科组合。CMM模型的成功实践,促进了工程和产品开发的组织发生了巨大的变革,变革的目标主要是为了消除与分段开发有关的低效。在分段开发过程中,中间产品传给下一阶段的工作人员时,有可能要进行大量的返工,以纠正原先的理解错误。并行工程、交叉学科群组、交叉功能群组、集成化产品群组以及集成化产品和过程开发等,都代表了在产品或服务的整个生命周期的合适时间内处理这类问题的不同方法。这种倾向意味着设计人员和客户要与制造人员、测试人员和用户共同工作,以支持开发需求的制造组织。这种工作方式蕴涵着所有关键的相关人员要支持产品或服务开发的所有阶段。
-
(3)实现过程改进的最佳效益。尽管过程改进存在复杂化的因素,但软件管理专家们相信,其中的许多障碍可以通过一个集成过程改进的公共模型来克服。这种信念反映了在集成方面所进行的工作和CMMl项目的作者和评审人员的经验。人们相信,正如通过CMM的过程改进能够产生显著的效益一样,集成过程改进也能产生更大的效益。
-
从根本上来说,过程改进集成主要影响四个领域:成本、侧重点、过程集成和灵活性。其中某些变化可能比另一些变化容易量化,但所有这些都体现了过程改进集成的真正优势。
作用
-
在美国,很多企业通过CMMI评估一方面为了满足承包国防工程或一些大企业的工程的要求,另一方面也是为了提高企业自身的管理能力。美国政府的工程项目,绝大多数都要求承包商具有一定的CMMI级别作为参加投标的资格。越来越多的大型企业业开始要求其工程承包商具有一定的CMMl级别。级别高的企业在赢得项目的竞标中具有一定的优势。因此,如果没有CMMI的等级评估,企业就会失去很多商机。
-
CMMI通过提供一套全面的框架和实践,帮助组织提高软件质量和项目管理效率,具体作用如下:
-
(1)过程改进和质量控制:CMMI模型强调软件过程的持续改进,通过定义和实施一系列成熟度等级,帮助组织识别和改进其软件开发过程中的弱点。这包括需求管理、软件设计、代码开发、测试和维护等各个阶段的质量管理方法 [8]。通过这种方式,CMMI模型使软件质量具有可控性和可测性,从而促进高质量软件的开发。
-
(2)项目管理效率提升:CMMI模型通过建立适合企业业务模式的软件生命周期模型和管理机制,支持复杂多变的软件设计和研发过程。这包括采用灵活的应用WBS(工作分解结构)和分类管理软件开发的原则,以快速响应市场和内部管理需求。此外,CMMI模型还促进了企业管理能力的提升,激活了企业高效运转的动力。
-
(3)融合现代开发方法:CMMI模型与DevOps等现代开发方法的融合,进一步提高了产品交付质量和用户体验。这种融合适应了当前市场需求的快速更新,使得单一的管理体系能够适用于所有项目实施。
-
(4)提高敏捷性和纪律性:通过将Scrum方法论与CMMI成熟度模型结合,CMMI模型不仅提高了软件开发的敏捷性,还增强了纪律性。这种方法通过将Scrum实践映射到CMMI的成熟度等级上,同时为Scrum未充分覆盖的实践添加新的实践,以改善实际的软件开发过程。
-
(5)提高客户满意度:通过应用CMMI的最佳实践来改进管理过程,如需求、验证和确认,组织能够提高其过程的质量,从而减少缺陷并提高客户满意度。
应用
-
(1)认证
-
CMMI是一个庞大的过程元模型,自发布以来在世界软件界产生了巨大的影响。CMMI等级评估已经成为业界公认的标准,CMMI的证书成了一个企业或组织能力和形象的标志,没有这个证书不仅难以获得国外项目,甚至也难以在国内一些项目的竞标中获胜。CMMI适合企业操作,避免了某些管理体系只重理论而忽视实践的缺陷。在我国,随着媒体的宣传和政府的支持,许多企业引入了CMMI咨询和认证,对于整个软件行业的管理提升及研发效率提高起到了很大的帮助作用。但也有一些企业引入CMMI体系后,只留下一些形式上的开发流程和文档模板,在管理上并无实质性改进。对于CMMI,业界一直存在着两种 声音,有人认为CMMI执行过度,得不偿失;也有人说它过于通用,实用价值不大;但多数人还是认同它,并根据需要加以应用。
-
(2)优势
-
在当今的高科技商业环境中,几乎所有企业都在制造日益复杂的产品和服务。因此,产品开发生命周期变得更加难以管理和控制--企业经常会遇到成本超支、影响质量和客户期望的缺陷以及因返工而错过最后期限等问题。
-
CMMI开发是一套集成的最佳实践,可提高企业开发优质产品和服务的能力,满足客户和最终用户的需求。
-
主要优点:
-
缩短产品上市时间--确保快速高效地交付产品和服务,几乎没有返工。
-
提高质量 - 提高产品开发质量和一致性,减少缺陷。
-
降低成本--通过改进计划、调度和预算流程来降低成本。
-
改进产品生命周期管理--满足客户对从交付到维护和运营的整个产品生命周期的期望。
-
获得组织灵活性 - 利用增加收入和削减成本的机会,快速、有效、持续地交付产品和服务。
-
(3)难题
-
CMMI在小型软件企业中存在实施难题,面临的主要挑战包括资源有限、人员能力不足、项目周期短和成本控制等问题。以下是几个具体的解决方案:
-
(1)采用敏捷开发方法与CMMI结合:敏捷开发方法如Scrum可以有效解决CMMI在小型软件企业中实施时遇到的问题,同时满足特殊需求。通过结合Scrum和CMMI,可以构建新的项目管理框架,这有助于小型和中型组织在遵循CMMI标准的同时获得新的能力价值。
-
(2)裁剪和重定位CMMI关键实践:针对小型软件企业的特点,对CMMI的关键实践进行裁剪和重定位,使其更加适合小型企业的实际情况。这种方法已经在实践中证明了其可行性和经济性能。
-
(3)实施基于CMMI的风险管理:在CMMI的第一级就包括风险管理活动,特别是对于小型软件企业来说,这是非常重要的。风险管理可以帮助识别和评估可能影响软件开发进度和成功部署的风险。
-
(4)采用定制的Web-based工具:使用定制的Web-based工具,如Keymind Measurement ReportingTool,可以帮助小型组织更有效地实现和维护CMMI成熟度等级。
-
(5)快速有效的CMMI实施方案:针对小型软件企业的特点,提出一套快速有效的CMMI实施方案,以期降低成本、提升管理水平。
-
(6)结合其他过程标准:通过融合CMMI与其他过程标准(如PMBP、LESAT、ISO 9001等),可以使CMMI更加完善,更好地满足小型软件企业的特定需求。
-
(7)提供实施建议和过程改进框架:针对小型软件企业应用CMMI时面临的困难,提出实施建议和过程改进框架,以帮助这些企业更好地理解和应用CMMI。
资深咨询经理24H值班电话
15201173892