什么是CMM

CMM综述
 

CMM(Capability Maturity Model能力成熟度模型)的本质是软件管理工程的一个部分。它是对于软件组织在定义,实现,度量,控制和改善其软件过程的进程中各个发展阶段的描述。他通过5个不断进化的层次来评定软件生产的历史与现状。

CMM的诞生

信息时代,软件质量的重要性越来越为人们所认识。软件是产品、是装备、是工具,其质量使得顾客满意,是产品市场开拓、事业得以发展的关键。而软件工程领域在1992年至1997年取得了前所未有的进展,其成果超过软件工程领域过去15年来的成就总和。

软件管理工程引起广泛注意源于20世纪70年代中期。当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的项目是因为管理不善而引起,而并不是因为技术实力不够,进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。到了20世纪90年代中期,软件管理工程不善的问题仍然存在,大约只有10%的项目能够在预定的费用和进度下交付。软件项目失败的主要原因有:需求定义不明确;缺乏一个好的软件开发过程;没有一个统一领导的产品研发小组;子合同管理不严格;没有经常注意改善软件过程;对软件构架很不重视;软件界面定义不善且缺乏合适的控制;软件升级暴露了硬件的缺点;关心创新而不关心费用和风险;军用标准太少且不够完善等等。在关系到软件项目成功与否的众多因素中,软件度量、工作量估计、项目规划、进展控制、需求变化和风险管理等都是与工程管理直接相关的因素。由此可见,软件管理工程的意义至关重要。

软件管理工程和其它工程管理相比有其特殊性。首先,软件是知识产品,进度和质量都难以度量,生产效率也难以保证。其次,软件系统复杂程度也是超乎想象的。因为软件复杂和难以度量,软件管理工程的发展还很不成熟。

软件管理工程的发展,在经历了从70年代开始以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征的结构化生产时代,到90年代中期,以CMM模型的成熟模型和日益为市场接受为标志,已经进入以过程成熟模型CMM、个体软件过程PSP和群组软件过程TSP为标志的以过程为中心的时代,而软件发展第三个时代,及软件工业化生产时代,从90年代中期软件过程技术的成熟和面向对象技术、构件技术的发展为基础,已经渐露端倪,估计到2005年,可以实现真正的软件工业化生产,这个趋势应该引起软件企业界和有关部门的高度重视,及早采取措施,跟上世界软件发展的脚步。软件生产转向以改善软件过程为中心,是世界各国软件产业或迟或早都要走的道路。

软件过程改善是当前软件管理工程的核心问题。50多年来计算事业的发展使人们认识到要高效率、高质量和低成本地开发软件,必须改善软件生产过程。软件管理工程走过了一条从70年代开始以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试到90年代中期以过程成熟模型CMM、个体软件过程PSP和群组软件过程TSP为标志的以过程为中心向着软件过程技术的成熟和面向对象技术、构件技术的发展为基础的真正软件工业化生产的道路。软件生产转向以改善软件过程为中心,是世界各国软件产业或迟或早都要走的道路。软件工业已经或正在经历着"软件过程的成熟化",并向"软件的工业化"渐进过渡。规范的软件过程是软件工业化的必要条件。

软件过程研究的是如何将人员、技术和工具等组织起来,通过有效的管理手段,提高软件生产的效率,保证软件产品的质量。由此诞生了软件过程的三个流派:CMU-SEICMM/PSP/TSPISO 9000质量标准体系;ISO/IEC 15504SPICE)。

CMM/PSP/TSP即软件能力成熟度模型/ 个体软件过程/群组软件过程,是1987年美国 Carnegie Mellon 大学软件工程研究所(CMU/SEI)W.S.Humphrey为首的研究组发表的研究成果"承制方软件工程能力的评估方法"SO 9000质量标准体系是在70年代由欧洲首先采用的,其后在美国和世界其他地区也迅速地发展起来。目前,欧洲联合会积极促进软件质量的制度化,提出了如下ISO9000软件标准系列:ISO9001ISO9000-3ISO9004-2ISO9004-4ISO9002ISO/IEC 15504SPICE)是1991年国际标准化组织采纳了一项动议,开展调查研究,按照CMU-SEI的基本思路,产生的技术报告ISO/IEC 15504--信息技术软件过程评估

目前,学术界和工业界公认美国 Carnegie Mellon 大学软件工程研究所(CMU/SEI) W.S.Humphrey为首主持研究与开发的软件能力成熟度模型CMM是当前最好的软件过程,已成为业界事实上的软件过程的工业标准。

CMM的发展

1987年美国 Carnegie Mellon 大学软件工程研究所(CMU/SEI)W.S.Humphrey为首的研究组发表了CMM/PSP/TSP 技术,为软件管理工程开辟了一条新的途经。

CMM框架用5个不断进化的层次来评定软件生产的历史与现状:其中初始层是混沌的过程,可重复层是经过训练的软件过程,定义层是标准一致的软件过程,管理层是可预测的软件过程,优化层是能持续改善的软件过程。任何单位所实施的软件过程,都可能在某一方面比较成熟,在另一方面不够成熟,但总体上必然属于这5个层次中的某一个层次。而在某个层次内部,也有成熟程度的区别。在CMM框架的不同层次中,需要解决带有不同层次特征的软件过程问题。因此,一个软件开发单位首先需要了解自己正处于哪一个层次,然后才能够对症下药地针对该层次的特殊要求解决相关问题,这样才能收到事半功倍的软件过程改善效果。任何软件开发单位在致力于软件过程改善时,只能由所处的层次向紧邻的上一层次进化。而且在由某一成熟层次向上一更成熟层次进化时,在原有层次中的那些已经具备的能力还必须得到保持与发扬。

软件产品质量在很大程度上取决于构筑软件时所使用的软件开发和维护过程的质量。软件过程是人员密集和设计密集的作业过程:若缺乏有素训练,就难以建立起支持实现成功是软件过程的基础,改进工作亦将难以取得成效。CMM描述的这个框架正是勾列出从无定规的混沌过程向训练有素的成熟过程演进的途径。

CMM包括两部分"软件能力成熟度模型""能力成熟度模型的关键惯例""软件能力成熟度模型"主要是描述此模型的结构,并且给出该模型的基本构件的定义。"能力成熟度模型的关键惯例"详细描述了每个"关键过程方面"涉及的"关键惯例"。这里"关键过程方面"是指一组相关联的活动;每个软件能力成熟度等级包含若干个对该成熟度等级至关重要的过程方面,它们的实施对达到该成熟度等级的目标起到保证作用。这些过程域就称为该成熟度等级的关键过程域,反之有非关键过程域是指对达到相应软件成熟度等级的目标不起关键作用。归纳为:互相关联的若干软件实践活动和有关基础设施的一个集合。而"关键惯例"是指使关键过程方面得以有效实现和制度化的作用最大的基础设施和活动,对关键过程的实践起关键作用的方针、规程、措施、活动以及相关基础设施的建立。关键实践一般只描述"做什么"而不强制规定"如何做"。各个关键惯例按每个关键过程方面的5"公共特性"(对执行该过程的承诺,执行该过程的能力,该过程中要执行的活动,对该过程执行情况的度量和分析,及证实所执行的活动符合该过程)归类,逐一详细描述。当作到了某个关键过程的的全部关键惯例就认为实现了该关键过程,实现了某成熟度级及其以低级所含的全部关键过程就认为达到到了了该级。图一 CMM关系描述图
  
上面提到了CMM把软件开发组织的能力成熟度分为5个的等级。除了第1级外,其他每一级由几个关键过程方面组成。每一个关键过程方面都由上述5种公共特性予以表征。CMM给每个关键过程了一些具体目标。按每个公共特性归类的关键惯例是按该关键过程的具体目标选择和确定的。如果恰当地处理了某个关键过程涉及的全部关键惯例,这个关键过程的各项目标就达到了,也就表明该关键过程实现了。这种成熟度分级的优点在于,这些级别明确而清楚地反映了过程改进活动的轻重缓急和先后顺序。图二 CMM等级模型图

对于CMM的作用归纳两个主要方面: 科学地评价软件开发单位的软件能力成熟等级; 帮助软件开发单位进行自检,了解自己的强项和弱项,从而不断完善和改进单位的软件开发过程,确保软件质量,提高软件开发能效率。

由于CMM并未提供有关实现CMM关键过程域所需的具体知识和技能,因此,美国 Carnegie Mellon 大学软件工程研究所(CMU/SEI) W.S.Humphrey为首主持研究与开发了个体软件过程PSPPersonal software process)和群组软件过程TSP(Team Software Process),形成CMM/PSP/TSP体系。

PSP 个体软件过程(Personal Software Process)是由美国Carnegie Mellon大学软件工程研究所(CMU/SEI)Watts s. Humphrey领导开发的,于1995年它的推出,在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。PSP是一种可用于控制、管理和改进个人工作方式的自我改善过程,是一个包括软件开发表格、指南和规程的结构化框架。 PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。在软件设计阶段, PSP的着眼点在于软件缺陷的预防,其具体办法是强化设计结束准则,而不是设计方法的选择。PSP保障软件产品质量的一个重要途径是提高设计质量。

PSP能够说明个体软件过程的原则;帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。

TSP 群组软件过程TSP(Team Software Process)指导项目组中的成员如何有效地规划和管理所面临的项目开发任务,并且告诉管理人员如何指导软件开发队伍。始终以最佳状态来完成工作。TSP实施集体管理与自己管理自己相结合的原则,最终目的在于指导开发人员如何在最少的时间内,以预定的费用生产出高质量的软件产品,所采用的方法是对群组开发过程的定义、度量和改进。

TSP致力于开发高质量的产品,建立、管理和授权项目小组,并且指导他们如何在满足计划费用的前提下,在承诺的期限范围内,不断生产并交付高质量的产品。图三 CMMPSPTSP框架图

CMM是过程改善的第一步,它提供了评价组织的能力、识别优先改善需求和追踪改善进展的管理方式。企业只有开始CMM改善后,才能接受需要规划的事实,认识到质量的重要性,才能注重对员工经常进行培训,合理分配项目人员,并且建立起有效的项目小组。然而,它实现的成功与否与组织内部有关人员的积极参加和创造性活动密不可分。

PSP能够指导软件工程师如何保证自己的工作质量,估计和规划自身的工作,度量和追踪个人的表现,管理自身的软件过程和产品质量。经过PSP学习和实践的正规训练,软件工程师们能够在他们参与的项目工作之中充分运用PSP,从而有助于CMM目标的实现。

TSP结合了CMM的管理方法和PSP的工程技能,通过告诉软件工程师如何将个体过程结合进小组软件过程,并将后者与 组织进而整个管理系统相联系;通过告诉管理层如何支持和授权项目小组,坚持高质量的工作,并且依据数据进行项 目的管理,向组织展示如何应用CMM的原则和PSP的技能去生产高质量的产品。

总之,单纯实施CMM,永远不能真正做到能力成熟度的升级,只有将实施CMM与实施PSPTSP有机地结合起来,才能发挥最大的效力。因此,软件过程框架应该是CMM/PSP/TSP的有机集成。

实施CMM的必要性

软件开发的风险之所以大,是由于软件过程能力低,其中最关键的问题在于软件开发组织不能很好地管理其软件过程,从而使一些好的开发方法和技术起不到预期的作用。而且项目的成功也是通过工作组的杰出努力,所以仅仅建立在可得到特定人员上的成功不能为全组织的生产和质量的长期提高打下基础,必须在建立有效的软件如管理工程实践和管理实践的基础设施方面,坚持不懈地努力,才能不断改进,才能持续地成功。

软件质量是一模糊的、捉摸不定的概念。我们常常听说:某某软件好用, 某某软件不好用;某某某软件功能全、结构合理, 某某某软件功能单一、操作困难……这些模模糊糊的语言不能算作是软件质量评价,更不能算作是软件质量科学的定量的评价。软件质量,乃至于任何产品质量,都是一个很复杂的事物性质和行为。产品质量,包括软件质量,是人们实践产物的属性和行为,是可以认识,可以科学地描述的。可以通过一些方法和人类活动,来改进质量。

实施CMM是改进软件质量的有效方法:控制软件生产过程、提高软件生产者组织性和软件生产者个人能力的有效合理的方法软件工程和很多研究领域及实际问题有关,主要相关领域和因素有:需求工程(REREQUIREMENTS ENGINEERING)。理论上,需求工程是应用已被证明的原理、技术和工具,帮助系统分析人员理解问题或描述产品的外在行为。软件复用(SRSOFTWARE REUSE)。定义为利用工程知识或方法,由一已存在的系统,来建造一新系统。这种技术,可改进软件产品质量和生产率。还有软件检查、软件计量、软件可靠性、软件可维修性、软件工具评估和选择等。

CMMISO 9001的比较

前面提到软件过程的三个流派:CMU-SEICMM/PSP/TSPISO 9000质量标准体系;ISO/IEC 15504SPICE)。这里主要比较一下CMMISO 9000质量标准体系中的9001的异同。

ISO 9000族国际标准是在总结了英国的国家标准基础之上产生的,因此,欧洲通过ISO 9000认证的企业数量最多,约占全世界的一半以上。受此影响,相当多的欧洲软件企业选择了ISO 9001认证。

在基本原理方面,ISO 9001CMM都十分关注软件产品质量和过程改进。尤其是ISO 9000:2000版标准增加持续改进、质量目标的量化等方面的要求后,在基本思路上和CMM更加接近。它们之间的主要的差别是状态上的差别。ISO 9001侧重于"机构保证在设计、开发、生产、安装及服务过程中与指定的要求一致"。而CMM侧重于"支持一个机构评估及改进他们的系统的工程能力""指出机构选择的模型的不足之处"

CMMISO 9001阐述了一个机构应该将他们如何做的观点写下来,然后去做,最后检查他们是否按照他们说的去做了。ISO 9001所关注意的是确保合格的人员所作的过程记录是有效的,并且开发生产出满足质量要求的产品。CMM在能力层次概念之间切开,作一件事情是第1级层次的概念,写下所做的事情是第2级层次的概念,有一定组织水平的写作是第三级层次的概念,等等。SE-CMM同样衡量管理能力,如第四级层次,连续处理问题的能力,第五级层次的概念。

这两个标准都涉及了产品的开发和产品的质量,但CMM在产品的设计和开发的细节作了较多要求,而ISO 9001在产品的开发过程和产品本身的质量细节作了较多要求。CMM 建立了系统工程能力模型第三级模型,而ISO 9001则无此内容。CMM没有对产品存储设备的测试作出要求,而ISO 9001则有此要求。

ISO 9001要求与质量管理体系相关的所有工作人员的经过授权并签字的质量记录(见条款4.1.2.1)。它还要求足够的资源,包括提供必要的员工培训等(见条款4.1.2.2)。第四节要求对机构的每个过程都要有记录。这是SE-CMM2级的基本要求。从ISO 9001的角度来看SE-CMM,至少SE-CMM的第二级及以上级别才能和ISO 9001相提并论。

由以上可以得出ISO 9001CMM既有区别又相互联系,两者不可简单的互相替代;取得ISO 9001认证并不意味着完全满足CMM某个等级的要求 ;取得CMM2(或第3)不能笼统的谈可以满足ISO 9001的要求 。  

CMM在中国的现状

中国生产力促进协会、北航SEI、中科院研究SEI等科研机构已于近几年在北京、上海、广州和深圳等地先后举办过多次报告会和研讨会,组织过课程学习和应用实验,开展了软件过程方面的研究与开发工作,并发表了多篇的研究成果和学术论文,在软件质量保障平台支撑环境也取得了一定的成果。

近两年来,CMM在我国获得了各界越来越多关注,业界有过多次关于CMM的讨论,20006月国务院颁发的《鼓励软件产业和集成电路产业发展的若干政策》对中国软件企业申请CMM认证给予了积极的支持和推动作用,17条规定"对软件出口型企业CMM认证费用予以适当支持。"2000年中国村电脑节上还有CMM专题论坛,吸引了众多业内人士。鼎新、东大阿尔派、联想、方正、金蝶、用友、浪潮、创智、华为、东大阿尔派等大型集团或企业等都从1997---2000年起批企业都在进行研究、实验或实施预评估。其中鼎新公司从1997年着手进行CMM认证工作。19997月通过第三方认证机构的CMM2认证。东大阿尔派公司于200010月通过第三方认证机构的CMM2认证。20011月,联想软件经过英国路透集团的严格评估,顺利通过CMM2认证。2001626日,沈阳东软软件股份有限公司(原沈阳东大阿尔派软件股份有限公司)正式通过了CMM3级认证,成为中国首家通过CMM3级的软件企业。

总体上讲,国内对软件过程理论的讨论与实践正在展开,目标是使软件的质量管理和控制达到国际先进水平,中国的软件产业获得可持续发展的能力。专家分析,在未来两三年内,国内软件业势必将出现实施CMM的高潮。从这一趋势看,中国的软件企业已经开始走上标准化、规范化、国际化的发展道路,中国软件业已经面临一个整体突破的时代。

但是我们应该看到目前国内对软件管理工程存在的最大问题是认识不足。管理实际上是一把手工程,需要高层管理人员的足够重视。而且软件过程的重大修改也必须由高层管理部门启动,这是软件过程改善能否进行到底的关键。此外,软件过程的改善还有待于全体有关人员的积极参与。

除了要认识到过程改善工作是一把手工程这个关键因素外,还应认识到软件过程成熟度的升级本身就是一个过程,且有一个生命周期。过程改善工作需要循序渐进,不能一蹴而就,需要持续改善,不能停滞不前;需要联系实际,不能照本宣科;需要适应变革,不能凝固不变。一个有效的途径是自顶向下的课程培训,即从高层主管依次普及到下面的工程师。

CMM实施的思考

上面重点介绍了CMM,但是提醒注意的是,并不是实施了CMM,软件项目的质量就能有所保障。CMM是一种资质认证,它可以证明一个软件企业对整个软件开发过程的控制能力。按照CMM的思想进行管理与通过CMM认证并不能划等号。CMM认证并不仅仅是在评估软件企业的生产能力,整个评估过程同时还在帮助企业完善已经按照CMM建立的科学工作流程,发现企业在软件质量、生产进度以及成本控制等方面可能存在的问题,并且及时予以纠正。认证的过程是纠正企业偏差的过程,一定不能把CMM认证当作一种考试、一种文凭,而是要看成一项有利于企业今后发展的投资,借此来改变中国软件业长久以来形成的积弊。

实施CMM对软件企业的发展起着至关重要的作用,CMM过程本身就是对软件企业发展历程的一个完整而准确的描述,企业通过实施CMM,可以更好地规范软件生产和管理流程,使企业组织规范化。企业通过CMM不是为了满足其他公司的要求,而是为了让企业更好地发展,为企业进一步扩大规模打下坚实的基础。如果企业只是为了获得一纸证书而通过CMM,那么就已经本末倒置了,对企业的长久发展反而有害。试想如果企业的态度不够端正,即使通过CMM认证,企业又怎么能够保证它在以后的操作过程当中继续坚持CMM规范呢?CMM只是一个让企业更好发展的规范,不应该成为企业炒作自己的工具,企业需要的是优化自己的管理、提高产品的质量,而非一张CMM证书。

CMM不是万能的,它的成功与否,与一个组织内部有关人员的积极参与和创造性活动是密不可分的,而且CMM并未提供实现有关子过程域所需要的具体知识和技能。在国内要想取得过程改进成功,必须做好以下的几点:软件过程改进必须有高级主管的支持与委托,并积极地管理过程改进的进展;中层管理的积极支持;责任分明,过程改进小组的威望高;基层的支持与参与极端重要;利用定量的可观察数据,尽快使过程改进成果可见,从而激励参与者的兴趣;将实施CMM与实施PSPTSP有机地结合起来;为企业的商业利益服务,并要求同时相符的企业文化变革。

应该看到,过程改善工作必然具有一切过程所具有的固有特征,即需要循序渐进,不能一蹴而就需要持续改善,不能停滞不前;需要联系实际,不能照本宣读需要适应变革,不能凝固不变。将CMMPSPTSP引人软件企业最有效的途径首先要对单位主管和主要开发人员进行系统的培训。另外一个有效的途径是自顶向下的课程培训,即从高层主管依次普及到下面的工程师。培训包括最基本的软件工程和CMM培训知识;专业领域知识等方面的培训;软件过程方面的培训。不过强调一点,我们必须根据自身的实际制定可行的方案。不深入研究就照搬别的企业的模式是很难起到提高软件产品质量水平的真正目的的。

CMM模型划分为5个级别,共计18个关键过程域,52个目标,300多个关键实践。每一个CMM等级的评估周期(从准备到完成)约需12-30个月。此期间应抽调企业中有管理能力、组织能力和软件开发能力的骨干人员,成立专门的CMM实施领导小组或专门的机构。同时设立软件工程过程组、软件工程组、系统工程组、系统测试组、需求管理组、软件项目计划组、软件项目跟踪与监督、软件配置管理组、软件质量保证组、培训组。各个小组完成自己的任务同时协调其他小组的工作。然后制定和完善软件过程, 按照CMM规范评估这个过程。CMM正式评估由CMU/SEI授权的主任评估师领导一个评审小组进行,评估过程包括员工培训、问卷调查和统计、文档审查、数据分析、与企业的高层领导讨论和撰写评估报告等,评估结束时由主任评估师签字生效。此后最关键的就是根据评估结果改进软件过程,使CMM评估对于软件过程改进所应具有的作用得到最好的发挥。

现在国内软件产业的发展可以说已经具有一定规模了,但除了北大方正、东大阿尔派、用友等大企业外,做软件工程项目更多的是一些规模在数十人左右的中小企业, 目前处于CMM的初级阶段,没有基础和经验。也许有人会问,像这样一些人力物力资源匮乏的企业,如何进行软件开发项目的管理呢?我建议这些中小企业可以以CMM为框架,先从PSP做起,然后在些基础上逐渐过渡到TSP,以保证CMM/PSP/TSP确实在企业中生根开花。总之,我们必须从软件过程、过程工程的角度来看待CMM的发展,从经济学的观点来分析这个过程的价值。我相信在实施CMM/PSP/TSP的过程中,只要坚持改善软件工程的管理,并在实践中注意总结适合自身的经验,一定能取得很好的效果。
 
===================================================================================
CMM与质量管理

一、CMM的产生

软件能力成熟度(the Capability Maturity Model for Software, 简称CMM)是美国软件工程研究所(Software Engineering Institute, 缩写为SEI)首先提出的。SEI是美国国防部设立,SEI的任务是提供一系列技术管理方法来提高软件工程水平,保证美国防部能够通过成本、进度和质量的预估和改进获得并且支持其精准的软件系统。

任务包含四个目标:

1、 通过对实践和技术(或为未充分应用的技术和实践)的定义、评估和成熟预测,以加快导入和推广高成效的软件工程的实践和技术。

2、 在软件工程和技术转型方面维护一个长期有效的资格认证工作

3、 使工业和政府组织通过自己的直接努力实现软件工程的有规划的改进

4、 促进软件工程持续不断的应用所采纳的优秀标准

二、CMM的管理思想基础

CMM的基本思想是基于已有60多年历史的产品质量原理。休哈特(Walter Shewart)在30年代发表了统计质量控制原理,戴明(W.Edwards)和朱兰(Joseph Juran)的关于质量的著作又进一步发展和论证了该原理。实际上,将质量原理变为成熟度框架的思想是克劳斯比(Philip Crosby),他在著作《质量免费》(Quality is Free)中首先提出,他的质量管理成熟度网络描绘了采用质量实践时的5个进化阶段,而该框架后来又由IBM的拉迪斯(Rom Radice)和他的同事们在汉弗莱(Watts Humphrey)指导下进一步改进以适应软件过程的需要。1986年,汉弗莱将此成熟框架带到了SEI并增加了成熟度等级的概念,将这些原理应用于软件开发,发展成为软件过程成熟度框架,形成了当前软件产业界正在使用的框架。

汉弗莱的成熟度框架早期版本发表在1987年的SEI技术报告。该报告中还发表了初步的成熟度提问单,这个提问单作为工具给软件组织提供了软件过程评估的一种方法。1987年又进一步研制了软件过程评估和软件能力评价两种方法,以便估计软件过程成熟度。自1990年以来,SEI基于几年来将框架运用到软件过程改进方面的经验,进一步扩展和精炼了该模型,目前,软件能力成熟度模型2.0版已经修订问世。

然而企业最终目的是把自己的产品或服务提供给顾客,让顾客满意,尽力使这个过程不断反复、且能够不断壮大,才能源源不断创造利润。所以,我们应该明白:

第一、企业的使命是为顾客创造价值,努力地为顾客创造价值就是企业的成功之路。

第二、能为顾客带来价值的是企业的各种作业。而一个作业是由一系列能为顾客创造价值的活动组成的,构成一个作业的各种活动是由员工完成的,但是各种活动本身对顾客来说毫无意义,顾客关心的是这些活动的结果。也就是说,只有各种活动组合在一起构成一个完整的作业才能创造价值,顾客并不关心怎样组合这些活动。因此,出于对顾客利益的考虑,作业的构造要努力做到“复杂其中,简便其表”。

第三、企业事业的成功来自优异的作业绩效。尽管优质的产品或服务、杰出的人才和优秀的战略对企业来说必不可少,但并不能保证企业的成功。因为,产品或服务、人才和战略只有存在于能为顾客带来价值的各种作业之中,才能对企业事业的成功有所贡献。也就是说,只有通过作业把这些高质量的要素结合在一起,它们才具有实质性的意义。这种高绩效的作业,则是企业优势的集中体现。

第四,优异的作业绩效是通过科学的作业设计、适当的人员配置和良好的工作环境的共同作用达到的。因为,科学的作业设计能够灵敏地对顾客的需求变化做出反应,它是作业本身有效性的根本保证;适当的人员组合能获得集体智慧和战斗力;良好的环境则能激发员工的工作热情,促使员工它们不断超越自己。对于软件企业来说,它的成功来自优异的软件开发过程,要想取得优异的软件开发过程,就得按照以上四点要求进行管理和改进软件企业过程。所以,可以认为CMM模型其实质就是一种新兴的管理思想和方法,它蕴涵的是当今欧美乃至日本日趋盛行的“Continuos Improvement”管理哲学,现已渗透到各行各业的具体管理中去,是现代企业管理发展方向之一。

连续改进(Continuos Improvement)的含义是:以超前的视野预见过程执行实施中可能的引起要素(包括特定的设计、作业方式及其与之相联系的成本要素),籍先期规范制约的各种手段作出最大可能效果创出(最优成本/效益比)的预期调整,并以相应的效果计量和评估方法相配合,以确保实际过程以预期的低成本运作的先导式控制。我个人认为,着眼于软件过程的CMM是连续改进的表现,而着重于软件过程评估和软件能力评价与改进相呼应,CMM模型中蕴涵的思想就是防止项目失败的思想,也就是我们所说的连续改进的思想所在。

三、连续改进(Continuos Improvement

虽然软件工程师和管理人员通常详尽地知道他们的问题所在,但是哪些改进是当前最重要的问题,他们可能彼此有不同的意见。而且缺乏一个组织的改进策略,管理人员和专业人员之间在首先采取什么改进措施上很难达成一致意见。经过深入的调查和研究,终于认识到软件过程的改进不可能一朝一夕就能成功,需要持续不断的进行软件过程改进,软件过程改进是在一系列微小、不断发展的,而不是革命性的创新步骤中实现的。这正是连续改进思想的体现。

当同类事物之间存在着微少差异时就会产生变异性。当一个过程或系统的资源存在着变异性时,相应的系统输出也会有变异性。例如,当原材料或所制造的部件质量有偏差时,最终产品的质量也会发生变化。正所谓“进废品,出废品”。所以,研究连续改进,就需要关注系统所使用资源的变异性及所采用生产过程的变异性。任何系统都会表现出变异性。一定程度的变异是自然的,这种变异并不一定意味着系统不稳定或质量低劣或成本偏高,但是太多的或反常的变异则表明系统不稳定——其输出的质量是不一致或不可预知的。这对于任何一个公司都是一种危险的情况,因为不稳定的质量将会影响顾客的满意度。要保持客户的满意,必须改进产品质量、降低产品的成本、增强产品的营销水平。要改进产品质量、降低产品的成本、增强产品的营销水平,必须减少系统的变异。研究连续改进过程就是明确系统中的变异在哪里发生,为什么发生。一旦了解到引起变异的原因,就可以寻找一些方法去减少这种变异,以稳定企业运行过程,使企业得到改进。

1、连续改进循环

如果只解决一个小问题,只稍微改变一下具体过程,而后就置之不理直到问题出现,这是远远不够的。正如“连续改进”这一名称所暗示的:必须不断进行。连续改进意味着时常对系统进行分析,一丝不苟地收集数据并加以研究,一丝不苟地测试偏差,每位公司员工都把连续改进作为其工作的一部分看待。持续改进应该视为一个循环。参与持续改进的各团队需要长期连续地在这个循环中活动。也就是说,当一个问题看来已经解决之时,而员工的参与并没有终结,仍然有另一个改进要实施,有另一个系统要分析,或有另一个创意要专题研究。

2、强化过程改进

面临的下一步是使实施的变革成为系统的一个标准部分。团队应该着手出一份简单的报告,说明测试过程中的新规则以及所做改进对系统的影响。报告要列出变革后的优点,包括新系统实施和维护的计划,以确定新系统达到新的绩效水平。如果团队的建议被管理者接受并付诸实施,以后,团队需要按照计划监视系统。你将能指出存在的问题,发现在什么地方工作人员又回到了旧的工作方式。这一步的目标是使新过程变成标准的操作规则。切记,在实施变革过程中,认真地培训和支持是必要的。

3、继续连续改进循环

当你确信新的过程得到强化并成为工作过程的一个自然组成部分时,就要准备开始下一个持续改进循环。你将要从分析系统开始,因为上一循环的变革可能已经改变。

4、总结

企业的管理者一定明白企业的生存取决于你比其它企业给顾客提供更好服务的能力。通过更快地响应顾客的需要,提供更高质量的服务就可以达到生存的目标。一旦你和你的员工进入持续改进循环,你将拥有更好的信息、更新鲜的创意、更好的过程和质量控制,你将达到梦想的“意想不到的高水平的绩效”。
 
============================================================================
CMM简介二

 

CMM是指“能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。

       CMM是是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。

CMM是由美国卡内基梅隆大学软件工程研究所1987年研制成功的,是目前国际上最流行最实用的软件生产过程标准和软件企业成熟度等级认证标准。目前,我国已有软件企业通过了CMM标准认证

      SW-CMM(Capability Maturity Model For Software 软件生产能力成熟度模型,以下简称"CMM"),87年由美国卡内基梅隆大学软件工程研究所(CMU SEI)研究出的一种一种用于评价软件承包商能力并帮助改善软件质量的方法,其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。

       其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件生产中的困难。CMM它是目前国际上最流行、最实用的一种软件生产过程标准,已经得到了众多国家以及国际软件产业界的认可,成为当今企业从事规模软件生产不可缺少的一项内容。

CMM目前通用流行的版本是11Versi

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个是软件开发的cmm标准,这个标准有助于软件开发和实施的标准化。 /1规程/01组织方针.doc /1规程/02CMM角色定义对照表.doc /1规程/03组织标准软件过程的管理规程1.0.0.doc /1规程/04软件过程数据和文档库管理过程1.0.0.doc /1规程/05软件生命周期模型1.0.0.doc /1规程/06组织标准软件过程1.0.0.doc /1规程/07裁剪指南1.0.0.doc /1规程/08需求管理过程1.0.1.doc /1规程/09项目计划和跟踪过程1.0.2.doc /1规程/10风险管理规程1.0.1.doc /1规程/11软件测试规程1.0.0.doc /1规程/12软件质量保证过程1.0.1.doc /1规程/13软件质量管理规程1.0.0.doc /1规程/14配置管理过程1.0.2.doc /1规程/15度量与分析规程1.0.1.doc /1规程/16项目评审规程1.0.2.doc /1规程/17培训大纲1.0.0.doc /1规程/18软件子合同管理1.0.0.doc /1规程/19文档和编程规范2.0.0.doc /2表格模板/1开发过程/01立项通知书.xls /2表格模板/1开发过程/02需求表.xls /2表格模板/1开发过程/03需求跟踪矩阵表.xls /2表格模板/1开发过程/04项目责任矩阵表.doc /2表格模板/1开发过程/05测试表格.xls /2表格模板/1开发过程/06变更控制表.doc /2表格模板/1开发过程/07工作情况汇报表.xls /2表格模板/1开发过程/08项目状态报告.xls /2表格模板/1开发过程/09度量汇总表.xls /2表格模板/1开发过程/10紧急放行申请表.xls /2表格模板/1开发过程/11项目停止申请表.xls /2表格模板/1开发过程/12项目验收考核表.xls /2表格模板/1开发过程/13开发项目组成员考核表.doc /2表格模板/1开发过程/14项目年终考核汇总表.xls /2表格模板/1开发过程/15改进反馈表.doc /2表格模板/2评审/01评审通知和确认单.xls /2表格模板/2评审/02预审问题清单.xls /2表格模板/2评审/03项目评审表.xls /2表格模板/2评审/04项目评审问题追踪表.xls /2表格模板/3SQA/01SQA&SCM;每周汇报表.xls /2表格模板/3SQA/02过程检查表.doc /2表格模板/3SQA/03软件过程审计报告.xls /2表格模板/3SQA/04QA检查汇总及记分表.xls /2表格模板/4SCM/01配置管理计划表.doc /2表格模板/4SCM/02配置相关表格.xls /2表格模板/4SCM/03产品发布申请表.doc /2表格模板/4SCM/04新功能特点表.doc /2表格模板/4SCM/05产品发布通知单.doc /2表格模板/4SCM/06软件过程数据和文档库内容清单.xls /2表格模板/4SCM/07软件过程数据和文档库取用清单.xls /2表格模板/5子合同/01子承包商评估表.xls /2表格模板/5子合同/02子承包商完成项目评价表.xls /2表格模板/6培训/01内部培训申请表.doc /2表格模板/6培训/02培训需求调查表.doc /2表格模板/6培训/03培训计划表.xls /2表格模板/6培训/04培训准备清单.doc /2表格模板/6培训/05培训签到表.doc /2表格模板/6培训/06培训考核记录表.doc /2表格模板/6培训/07现场培训评价反馈表.doc /2表格模板/6培训/08培训效果反馈表.doc /2表格模板/6培训/09培训改进报告.doc /2表格模板/6培训/10培训状态报告.xls /2表格模板/6培训/11培训度量.xls /2表格模板/6培训/12培训过程审计报告.xls /2表格模板/6培训/13免修履历表.xls /2表格模板/6培训/14外培审批表.doc /2表格模板/6培训/15外部培训反馈表.doc /3文档模板/01可行性分析报告.doc /3文档模板/02项目需求调研.doc /3文档模板/03立项报告.doc /3文档模板/04项目开发计划书.doc /3文档模板/05软件质量保证计划.doc /3文档模板/06配置管理计划.doc /3文档模板/07风险管理计划.doc /3文档模板/08测试计划.doc /3文档模板/09测试用例.xls /3文档模板/10需求规格说明书.doc /3文档模板/11概要设计说明书.doc /3文档模板/12数据库结构设计.doc /3文档模板/13详细设计说明书.doc /3文档模板/14测试分析报告.doc /3文档模板/15安装手册.doc /3文档模板/16用户操作手册.doc /3文档模板/17程序维护手册.doc /3文档模板/18阶段进度报告.doc /3文档模板/19项目开发总结报告.doc /3文档模板/20子合同管理计划书.doc /封面和前言2.0.0.doc /版本控制表_规范.xls /软件CMM规范文档修改说明.doc

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值