版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
能力成熟度模型(CMM)
软件过程改进指南
WattsS.Humphrey
TheCapabilityMaturityModelGuidelinesforImprovingtheSoftwareProcess第2章软件过程成熟度框架2.0概述2.1成熟度级别的行为特征2.2成熟度级别的跳跃2.3软件过程的可视性2.4效能预测2.0概述持续过程改进是基于许多小的、演化的步骤,而不是革命性的革新。CMM提出的框架中,将这些步骤分为5个成熟度级别,为持续过程改进提供了成功的基础。这5个成熟度级别为度量一个组织的软件过程成熟度以及评价其软件过程能力定义了有序级别,同时也帮助一个组织在安排其改进工作时分清轻重缓急。
一个成熟度级别是一个严格定义的、在向成熟软件组织前进途中的一种平稳状态。每个成熟度级别由一组过程目标组成,一旦满足了这些目标,就能稳定软件过程的一个重要组成部分。在达到了每个成熟度级别的同时,就建立起软件过程的不同组成部分,结果是提高了组织的过程成熟度。
如图2.1所示,将CMM组织成5个级别,对提高软件过程成熟度的改进措施按优先次序进行了排序。带标示的箭头指明由处在成熟度框架各层次的组织制度化了的过程成熟度的类型。
图2.1CMM的五级成熟度
1初始级2可重复级
4已管理级
3已定义级5优化级
成熟度持续改进过程可预测的过程标准一致过程有纪律的过程无序混乱过程5个级别简单描述如下:1.初始级软件过程的特点是无秩序的,甚至是混乱的。几乎没有什么过程是经过定义的,成功往往依赖于个人或小组的努力。2.可重复级已建立基本的项目管理过程去跟踪项目的成本、进度和功能。有了必要的过程纪律,使得能重复在早先类似应用项目的成功。
3.已定义级已将管理活动和工程活动两方面的软件过程文档化和标准化,并已集成为该组织的标准软件过程。所有项目均采用该组织的标准软件过程的一个经剪裁和批准的版本,来开发和维护软件。
4.定量管理级软件过程和产品质量的详细度量数据被收集。软件过程和产品得到定量地理解和控制。5.优化级能利用来自过程和来自新思想、新技术先导性试点的定量反馈信息,持续不断地改进组织的标准软件过程。
这5个级别反映了这样一个事实:CMM是改进软件组织能力的模型。CMM中级别所表达的排列次序,并不指向单个项目。一个遇到麻烦的项目对其问题排序时很可能不同于CMM的分类法,它的解决办法对组织其它项目的参考价值不大,因为其它项目可能有其它问题,或者因为缺少这种解决问题的必要基础而不能从它的解决办法中得益。CMM关注的是对整个组织有价值的过程。
2.1成熟度级别的行为特征
成熟度2至5级的特征可通过组织建立和改进软件过程所执行的活动、每个项目所执行的活动和对项目最终的表现出来的过程能力来刻画。
2.1.1第1级初始级
在初始级上,软件开发组织一般不能为软件的开发和维护提供一个稳定环境。处于级别1的组织的特征是不能兑现约定。这样的组织一般很难保证员工能够获得有序的工程过程,从而导致一系列的危机。在遇到危机时,项目一般是抛弃所计划的规程,回复到编码和测试的老一套。软件项目的成功完全依赖于一个杰出的管理者或一个熟练和有效的软件开发队伍。偶尔,有能力的、强有力的软件管理人员能够顶住压力在软件过程中取得捷径。但是,当他们离开该项目后,他们的这种能使过程稳定的影响力也就随之消失。一个很好的软件工程过程并不能克服由于缺乏健全的管理实践所造成的不稳定性。
尽管过程无序甚至混乱,处于级别1的组织也常常开发出能工作的产品,虽然他们可能超出预算和进度计划。处于级别1的组织的成功依赖于组织中个人能力和精神[1],是不能重复的,除非派有同样能力的人去开发下一个工程项目。在级别1的软件组织中,能力是个人特征而非组织特征。
[1]在成熟度的各个等级上,挑选、雇佣、培养和保留有能力的人员对一个组织来说是非常重要的问题,但是,这些问题大大超出了CMM的范围。
2.1.2级别2可重复级
在可重复级上,建立了管理软件项目的策略和实施这些策略的规程。计划和管理新项目是基于类似项目的经验。以项目为基础,针对项目建立基本的过程管理纪律,使过程能力获得提高。项目执行有效的过程,它是有定义的、文档化的、实施过的、人员经培训的、可测量的、强制的和可改进的。
处于2级组织中的项目引入了基本的软件管理控制。对实际项目已有约定,其根据是对以前项目观察的结果和当前项目的需求。项目的软件负责人跟踪软件成本、进度和功能,能识别出不能满足约定的问题。对软件需求和为满足需求而开发的工作产品建立了基线,并且其完整性受到控制。项目的软件标准已定义,并且组织确保能忠实地履行。如果有分承包方的话,建立起一种有效的客户-供应商关系。
处于级别2的组织中的项目,其过程可以不相同。对于达到2级的组织的要求,是有组织级的策略去指导项目建立适当的管理过程。
处于级别2的软件开发组织的过程能力,可概括为有纪律的,因为软件项目的计划和跟踪是稳定的,并能重复以前的成功。项目的过程处于一个项目管理系统的有效控制之下,遵循的是基于以前项目的效能所制定的实际计划。
2.1.3级别3已定义级
在已定义级上,一个开发和维护软件的标准过程(或过程组)已文档化,并在全组织范围内使用,这个在CMM中称为组织的标准软件过程,它包括软件工程过程和软件管理过程两方面,而且集成为一个有机的整体。级别3上所建立的标准软件过程(必要时,可以改变)被用来帮助软件管理人员和技术人员更有效地工作。
该组织在将它的软件过程标准化的同时开发有效的软件工程实践。在该组织内指派一个小组负责软件过程活动(例如,软件工程过程组或SEPG[Fowler90])。实施全组织范围内的培训程序(大纲),以保证全体职工和管理人员都具有履行其职责所必需的知识和技能。
软件项目通过剪裁组织的标准软件过程来建立自身定义的软件过程,这考虑到项目的独有的特征。这种剪裁后的过程,在CMM中称为“项目定义的软件过程”。这是在执行该项目的活动中使用的过程。一个定义的软件过程包含一组严格定义的、协调一致的、被集成的软件工程过程和管理过程。一个严格定义的过程可以表征为包含执行该工作的就绪准则、输入、标准和规程,以及验证机制(例如同行评审)、输出和完成准则等。因为软件过程被严格定义,管理部门可以很好地洞察到软件项目的技术进展。
处于3级的组织的软件过程能力,可概括为标准化和一致性,因为软件工程活动和管理活动都是稳定的和可重复的。在所建立的产品基线内,成本、进度和功能均已受控制,软件质量被跟踪。这种过程能力是建立在全组织范围内对所定义的软件过程中的活动、角色和职责的共同理解之上。
2.1.4级别4已管理级
在已管理级上,软件开发组织对软件产品和过程都设置了定量的质量目标。作为组织的测量大纲的一部分,对于所有项目重要的软件过程活动的生产率和质量都进行测量。用一个组织级的软件过程数据库,来收集和分析从项目定义的软件过程获得的数据。软件过程具有严格定义的、一致的测量方法和手段。这些测量,为定量地评价项目的软件过程和产品建立了基础。
通过把过程效能的变化限制在可接受的定量范围之内,达到项目对其产品和过程进行控制。可以在过程效能方面,将有意义的变化与一些随机性变化(噪声)区别开来,特别是在建立的产品基线内。进入新应用领域所包含的风险是知道的,并小心地控制它们。
处于4级的组织的软件过程能力,可概括为可量化的和可预测的。因为,过程被测量,并在定量的范围内运行。这一级的过程能力使得组织能在定量限制的范围内预测过程和产品质量的趋势。因为过程是稳定的和可度量的,一旦出现某种例外情况,变化的“具体原因”是可以识别和定位的。当发现超过预先设定的限制范围,能采取措施予以解释和纠正,因此,预先知道软件产品将是高质量的。
2.1.5级别5优化级
在优化级上,整个软件开发组织集中精力进行不断的过程改进。组织具有识别软件过程的弱点和强项的手段,以便达到预防缺陷出现的目的。采用新技术和建议对组织的软件过程的更改时,使用软件过程的有效性数据进行费效分析。能识别开发最好的软件工程实践的革新方法,并在整个组织内推广。
处于5级的软件小组(teams)分析缺陷以便确定它们的原因;对软件过程进行评价以便防止已知类型的缺陷再次出现,并在全组织内宣传教育。任何系统中,可以发现由于随机变动而导致的以返工形式表现的经常性消耗。有组织地消除这种消耗的工作是更改系统,也就是说,通过改变导致无效的“公共原因”,以防止这种消耗出现。尽管对所有成熟度级别来说都是如此,但是,它是级别5组织的焦点。处于级别5的软件开发组织的过程能力可概括为过程不断改进。该级组织为提高其软件过程能力进行着不懈的努力,从而不断改善组织内项目的过程效能。既可通过在现有过程的基础上增量式改进的办法,也可通过采用新技术、新方法的革新办法,使软件过程持续不断地得到改进。像通常业务活动一样,去规划和管理技术及过程改进。
2.2成熟度级别的跳越
1.CMM标识出成熟度级别,一个组织应当借此逐渐去建立一种软件工程优秀文化。因为每个级别是建立下一个级别的必要的基础,因此试图跳过级别几乎总是事与愿违。
2.组织可以在他们选择的任何时候着手特定的过程改进,甚至在他们准备前进到被推荐的特定实践所在的级别之前。但是,组织应该认识到,这些改进的稳定性有较大风险,因为还未为他们的成功制度化建立基础。没有真正基础的过程恰恰在他们需要的地方可能会失败。
例如,如果第2级的管理实践有缺陷,一个第3级组织特征所具有的、严格定义的软件过程,就可能有较大的风险。举例来说,管理部门可能制定出一个拙劣的计划进度约定,或者不能控制需求基线的变更。类似地,许多组织虽然收集了4级特征需要的详细数据,但是发现不能解释这些数据,因为软件开发过程和度量定义有不一致性。
3.与此同时应该认识到:过程改进工作应当集中关注组织在其业务环境前后关系中的需要,较高级别的实践可以涉及组织或项目的当前需要。例如,试图从第1级提升到第2级的组织,常常被告知要建立一软件工程过程组(SEPG),而SEPG是第3级组织的属性。尽管SEPG不是第2级组织的必要特征,但是,它可能在为到达第2级的处方中是有用的一部分。
这种情况,有时被说明为在第1级组织建立一个SEPG来自主引导第1级组织上升到第2级。在支持更有纪律的、更大范围改进的基础设施到位之前,第1级的软件过程改进活动可能主要依赖于SEPG人员的洞察力和能力。另外一个例子是构建软件的过程。我们当然希望处于第1级的组织执行需求分析、设计、编码和测试等工作。但是CMM在3级之前不描述这些活动,到了第3级它们才被描述为一致的、集成的工程过程。
从第1级升到第2级时的过程变更也是类似的情况,当一个组织成熟度级别跃升时过程改进也出现。但是,精通管理持续过程变更是第5级组织的特征。4.在执行软件过程改进中的这些偏差是定义关键过程域的方式导致的。一个关键过程域说明一个完全实现的和制度化的过程——它已经由组织所掌握。CMM描述的几乎所有过程都可由第1级组织实现,但是可能处于不完全或无秩序状态。
处于级别1的组织以一个无序的方式执行一过程,所以无损于它所执行的事实。这个过程的可靠性和一致性可以并且也应该在后来的工作中加以改善。一个组织的能力可以从一个无序过程的种子萌芽成长起来。
2.3软件过程的可视性
随着CMM级别的提高,软件过程的可视性对管理人员和工程人员都提高了。软件工程人员对项目的状况有详细的了解是因为他们掌握项目状况和执行的第一手资料。但是对于大的项目,他们了解的范围仅仅局限于他们所负责的领域内他们个人所经手的一部分。
项目以外没有涉及第一手资料的人员,如高级管理员,对项目的过程缺少可视性,所以只能依靠定期地评审来掌握他们所需信息以监控整个项目进展。由JeffPerdue创建的图2.2,表示了在各个过程成熟度级别上提供给管理人员的有关项目状况和执行的可视性级别。每个后继的成熟度级别逐渐提供更好的软件过程可视性。
图2-2处于每个成熟度级别的软件过程可视性
处在第1级的软件过程是一个不定形的实体(一个黑盒),项目过程的可视性是受限制的。由于活动的分级几乎没有定义,管理人员就要花宝贵的时间去确定项目进展和活动的状况[2]。需求以失控方式进入软件过程,然后就是结果产品。软件的开发常常被视为是黑色魔术,尤其对不熟悉软件的管理人员来说更是如此。客户只有在软件发布之后才能评估该产品是否满足需求。
[2]这一点可以用近乎幽默的90-90法则来概括:在90%的时间里完成了项目的90%。处在第2级,客户需求和工作产品受到控制,基本的项目管理实践已建立起来。这些管理控制使得项目能在指定点可视。构建软件的过程可以看作是一系列黑盒的连接,当活动在黑盒之间流动时,使得管理人员在转接节点(项目里程碑)可视。尽管管理人员不了解盒子内部发生的细节,但是过程产品和用于确认过程正在工作的检查点是明确的和已知的。当问题出现时管理人员会作出反应。客户在软件过程中在定义的检查点可以评审产品。
处于第3级,盒子内部的结构即项目定义的软件过程内的任务是可见的。内部结构代表组织的标准软件过程应用于特定项目的细节。管理人员和工程人员都了解自己在过程中的作用和职责,以及他们的活动如何在适当的层面中相互配合。管理人员对可能发生的风险提前做了准备。客户可得到准确、快速的状态更新情况,因为所定义的过程对项目活动提供了较大的可视性。
处于第4级,所定义的软件过程被定量地说明和控制。管理人员可以测量进度和问题。他们在做决策时有客观的、定量的根据。他们预测结果的能力稳步增长,随着过程可变性因素的减少,预测准确性越来越高。在项目开始之前客户就能对过程能力和风险有一个定量的认识。
处于第5级,以受控的方式不断尝试新的和改进的软件开发方法,以便提高软件的生产率和质量。有纪律的变更方式已经形成,低效率或容易产生缺陷的活动也已被识别、替换或修订。对过程的了解从现存过程扩展到了过程可能的变更会产生什么效果。管理人员能够估计和定量跟踪变更的效果和影响。客户和软件组织持续努力,建立一种强有力的客户-供应商关系。
纵观这5个级别,作为一个成熟的组织,影响过程成熟度的因素有人、技术和度量。参见表2.1。
级别1级别2级别3级别4级别5过几乎没有稳定过程存在或被使用文档化的和稳定的估计、计划和约定过程是处于项目级别在组织内使用集成式的管理和工程过程过程被定量地理解,并保持稳定持续地、系统地改进过程程“仅仅执行过程”当问题出现时,被识别和修改问题被预测和预防,或将它们的影响降到最低了解单个问题产生的根源并被排除了解问题的公共源头并将其排除人成功取决于个人的杰出表现成功取决于个人素质;管理系统支持项目组一起工作,也许是一体化产品小组每个项目都有着强烈的团队精神整个机构中有着强烈的团队精神员工作方式是“救火”约定被理解和管理根据不同的任务计划和提供培训过程改进涉及每个人各纪律之间的关系不协调甚至可能是对立的人员得到培训表2.1提高CMM级别的含义级别1级别2级别3级别4级别5技术引入新技术有风险已建立技术支持,稳定的活动定量评价新技术定量评价新技术新技术被预先跟踪,并推广应用测数据收集与分析是混乱的计划和管理数据由单个项目使用在所有定义的过程中收集和使用数据整个组织中数据的定义和收集被标准化整个机构中有着强烈的团队精神量跨项目系统地共享数据数据被用来定量地理解和稳定过程2.4效能预测
一个组织的软件过程成熟度有助于预测一个项目满足其预定目标的能力。处于级别1组织中的项目在达到成本﹑进度﹑功能﹑质量等目标方面会有很大的偏差。图2.3说明在可预测性、控制和效率方面所期望的改进种类,它以概率密度的形式给出了一个特定项目相对目标的可能性能。这里的目标可能是进度、成本、质量等等。
图2-3改进控制、可预测性和效率
作为一个成熟的组织,首先期待的改进是可预测性。当成熟度增加时,项目的目标结果与实际结果之间的差异减少。例如,级别1的组织经常在原定的发布日期时仍有很多工作未完成,但较高成熟度级别的组织能更准确地如期完成项目。
第二个改进是可控制性。当成熟度增加时,实际的结果和目标结果之间的偏差减小了。例如,对相同规模的项目,1级组织的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小动物流行病知识竞赛考试题库300题(含答案)
- 2025年新型电力系统(配电自动化)职业技能竞赛参考试题库(含答案)
- 2025年安徽省职教高考《语文》核心考点必刷必练试题库(含答案)
- 2025年桂林山水职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年昆明幼儿师范高等专科学校高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年新疆建设职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 《公司内部电子商务》教学课件
- 2025年浙教版选修历史上册月考试卷
- 2025年粤教沪科版必修2生物上册月考试卷含答案
- 2025年上外版高三历史下册月考试卷
- 苏教版四年级数学下册第三单元第二课时《常见的数量关系》课件
- 浙江省台州市2021-2022学年高一上学期期末质量评估政治试题 含解析
- 中国高血压防治指南(2024年修订版)解读课件
- 2024年浙江省中考科学试卷
- 初三科目综合模拟卷
- 2024年全国高考新课标卷物理真题(含答案)
- 足疗店营销策划方案
- XX站SCADA系统升级改造施工方案(模板)
- 偶函数讲课课件
- 中医治疗“湿疹”医案72例
- 交通工程公司乳化沥青储油罐拆除工程安全协议书
评论
0/150
提交评论