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、总结
企业的管理者一定明白企业的生存取决于你比其它企业给顾客提供更好服务的能力。通过更快地响应顾客的需要,提供更高质量的服务就可以达到生存的目标。一旦你和你的员工进入持续改进循环,你将拥有更好的信息、更新鲜的创意、更好的过程和质量控制,你将达到梦想的“意想不到的高水平的绩效”。
本文参考:http://www.huihoo.com/development/cmm/cmm_thinks.html,稍做修改 好贴!
ding!
好东西!
顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!帮助添加
导论:第一级:初始级
在初始级,企业一般不具备稳定的软件开发与维护的环境。常常在遇到问题的时候,就放弃原定的计划而只专注于编程与测试。
第二级:可重复级
在这一级,建立了管理软件项目的政策以及为贯彻执行这些政策而定的措施。基于过往的项目的经验来计划与管理新的项目。
第三级:定义级
在这一级,有关软件工程与管理工程的一个特定的、面对整个企业的软件开发与维护的过程的文件将被制订出来。同时,这些过程是集成到一个协调的整体。这就称为企业的标准软件过程。
第四级:定量管理级
在这一级,企业对产品与过程建立起定量的质量目标,同时在过程中加入规定得很清楚的连续的度量。作为企业的度量方案, 要对所有项目的重要的过程活动进行生产率和质量的度量。软件 产品因此具有可预期的高质量。
第五级:(不断)优化级
在这个等级,整个企业将会把重点放在对过程进行不断的优化。企业会采取主动去找出过程的弱点与长处,以达到预防缺陷 的目标。同时,分析有关过程的有效性的资料,作出对新技术的 成本与收益的分析,以及提出对过程进行修改的建议。
CMM第一级:初始级
◆ 特征
(1)软件过程的特点是杂乱无章,有时甚至混乱,几乎没有定义过程的规则或步骤。
(2)过分的承诺,常作出良好的承诺:如“按照软件工程方式,有序的工程来工作”;或达到高目标的许诺。但实际上却出现一系列问题。
(3)遇到危机就放弃原计划过程,反复编码和测试。
(4)成功完全依赖个人努力和杰出的专业人才,取决于超常的管理人员和杰出有效的软件开发开发人员。具体的表现和成果都源 于或者说是决定于个人的能力和他们先前的经验、知识以及他们的进取心和积极程度。
(5)能力只是个人的特性,而不是开发组织的特性。依靠着个人的品质或承受着巨大的压力;或找窍门取得成果。但此类人一旦离去,对组织的稳定作用也消失。
(6)软件过程是不可确定的和不可预见的。软件成熟性程度处于第一级软件组织的软件过程在实际的工作过程中被经常的改变(过程是随意的)。这类组织也在开发产品,但其成果是不稳定的,不可预见的,不可重复的。也就是说,软件的计划、预算、功能和产品的质量都是不可确定和不可预见的。
◆ 过程
(1)极少存在或使用稳定的过程
(2)所谓“过程”,往往是“就这么干”而言。
(3)各种条例,规章制度互不协调,甚至互相矛盾。
◆ 人员
(1)依赖个人努力和杰出人物。一旦优秀人物离去,项目就无法继续。
(2)人们的工作方式如同“救火”,就是在开发过程中不断地出现危机,以及不断的“救火”。
◆ 技术
引进新技术是极大风险。
◆ 度量
不收集数据或分析数据。
◆ 改进方向
(1)建立项目管理过程,实施规范化管理,保障项目的承诺。
(2)首要任务是进行需求管理,建立客户与软件项目之间的共同理解,使项目真正反映客户的要求。
(3)建立各种软件项目计划、如软件开发计划、软件质量保证计划、软件配置管理计划、软件测试计划、风险管理计划及过程改进计划。
(4)开展软件质量保证活动(SQA)。
CMM第二级:可重复级
◆ 特征
(1)进行较为现实的承诺,可按以前在同类项目上的成功经验建立的必要过程准则来确保再一次的成功。
(2)主要是逐个项目地建立基本过程管理条例来加强过程能力。
(3)建立了基本的项目管理过程来跟踪成本、进度和功能。
(4)管理工作主要跟踪软件经费支出、进度及功能。识别在承诺方面出现的问题。
(5)采用基线(BASELINE)来标志进展、控制完整性。
(6)定义了软件项目的标准,并相信它,遵循它。
(7)通过子合同建立有效的供求关系。
◆ 过程
(1)软件开发和维护的过程是相对稳定的,但过程建立在项目一级。
(2)有规则的软件过程是在一个有效的工程管理系统的控制之下,先前的成功经验可以被重复。
(3)问题出现时,有能力识别及纠正。承诺是可实现的。
◆ 人员
(1)项目的成功依赖于个人的能力以及管理层的支持。
(2)理解管理的必要性及对管理的承诺。
(3)注意人员的培训问题。
◆ 技术
建立技术支持活动,并有稳定的计划。
◆ 度量
每个项目建立资源计划。主要是关心成本、产品和进度。有相应的管理数据。
◆ 改进方向
(1)不再按项目制定软件过程,而是总结各种项目的成功经验,使之规则化,把具体经验归纳为全组织的标准软件过程。把改进组织的整体软件过程能力的软件过程活动,作为软件开发组织的责任。
(2)确定全组织的标准软件过程,把软件工程及管理活动集成到一个稳固确定的软件过程中。从而可以跨项目改进软件过程效果,也可作为软件过程剪裁的基础。
(3)建立软件工程过程小组(SEPG)长期承担评估与调整软件过程的任务,以适应未来软件项目的要求。
(4)积累数据,建立组织的软件过程库及软件过程相关的文档库。
(5)加强培训。
CMM第三级:确定级
◆ 特征
(1)无论管理方面或工程方面的软件过程都已文件化、标准化,并综合成软件开发组织的标准软件过程。
(2)软件过程标准被应用到所有的工程中,用于编制和维护软件。有的项目也可根据实际情况,对软件开发组织的标准软件过程进行剪裁。
(3)在从事一项工程时,产品的生产过程、花费、计划以及功能都是可以控制的,从而软件质量也可以控制。
(4)软件工程过程组(SEPG)负责软件活动。
(5)在全组织范围内安排培训计划。
◆ 过程
(1)整个组织全面采用综合性的管理及工程过程来管理。软件工程和管理活动是稳定的和可重复的,具有连续性的。
(2)软件过程起了预见及防范问题的作用,能使风险的影响最小化。
◆ 人员
(1)以项目组的方式进行工作。如同综合产品团队。
(2)在整个组织内部的所有人对于所定义的软件过程的活动、任务有深入了解,大大加强了过程能力。
(3)有计划地按人员的角色进行培训。
◆ 技术
在定性基础上建立新的评估技术。
◆ 度量
(1)在全过程中收集使用数据。
(2)在全项目中系统性地共享数据。
◆ 改进方向
(1)开始着手软件过程的定量分析,以达到定量地控制软件项目过程的效果。
(2)通过软件的质量管理达到软件的质量目标。
CMM第四级:管理级
◆ 特征
(1)制定了软件过程和产品质量的详细而具体的度量标准,软件过程和产品质量都可以被理解和控制。
(2)软件组织的能力是可预见的,原因是软件过程是被明确的度量标准所度量和操作。不言而喻,软件产品的质量就可以预见和得以控制。
(3)组织的度量工程保证所有项目对生产率和质量进行度量、并作为重要的软件过程活动。
(4)具有良好定义及一致的度量标准来指导软件过程,并作为评价软件过程及产品的定量基础。
(5)在开发组织内已建立软件过程数据库,保存收集到的数据,可用于各项目的软件过程。
◆ 过程
(1)开始定量地认识软件过程。
(2)软件过程的变化小,一般在可接受的范围内。
(3)可以预见软件过程中和产品质量方面的一些趋势。一旦质量经度量后超出这些标准或是有所违反,可以采用一些方法去改正,以达到良好的目标。
◆ 人员
每个项目中存在强烈的群体工作意识。因为每人都了解个人的作用与组织的关系,因此能够产生这种群体意识。
◆ 技术
不断的在定量基础上评估新技术。
◆ 度量
(1)在全组织内进行数据收集与确定。
(2)度量标准化。
(3)数据用于定量地理解软件过程及稳定软件过程。
◆ 改进方向
(1)缺陷防范,不仅仅在发现了问题时能及时改进,而且应采取特定行动防止将来出现这类缺陷。
(2)主动进行技术变动管理、标识、选择和评价新技术,使有效的新技术能在开发组织中施行。
(3)进行过程变动管理,定义过程改进的目的,经常不断地进行过程改进。
CMM第五级:优化级
◆ 特征
(1)整个组织特别关注软件过程改进的持续性、预见及增强自身,防止缺陷及问题的发生,不断地提高他们的过程处理能力。
(2)加强定量分析,通过来自过程的质量反馈和吸收新观念,新科技,使软件过程能不断地得到改进。
(3)根据软件过程的效果,进行成本/利润分析,从成功的软件过程中吸取经验,加以总结。把最好的创新成绩迅速向全组织转移, 对失败的案例,由软件过程小组进行分析以找出原因。
(4)组织能找出过程的不足并预先改进,把失败的教训告知全体组 织以防止重复以前的错误。
(5)对软件过程的评价和对标准软件过程的改进,都在全组织内推 广。
◆ 过程
(1)不断地系统地改进软件过程。
(2)理解并消除产生问题的公共根源,在任何一个系统中都可找到:由于随机变化造成重复工作、进而导致时间浪费。为了防止浪 费人力可能导致的系统变化。要消除“公共”的无效率根源,防止浪费发生。尽管所有级别都存在这些问题,但这是第五级的焦点。
◆ 人员
(1)整个组织都存在自觉的强烈的团队意识。
(2)每个人都致力过程改进,人们不再以达到里程碑的成就而满足, 而要力求减少错误率。
◆ 技术
基于定量的控制和管理,事先主动考虑新技术、追求新技术。可以实现软件开发中的方法和新技术的革新、以防止出现错误,不断提 高产品的质量和生产率。
◆ 度量
利用数据来评估,选择过程改进。
◆ 改进方向
保持持续不断的软件过程改进。
CMM总结:五层结构图
我们看到,在第五级上,技术和过程的改进像普通商业活动一样有计划、有管理地进行。由于组织不断的致力于改进过程的能力,所以软件开发组织的能力可持续改进。这种改进不仅表现在对存在的软件过程逐步改进,不表现在采用新技术和新方法方面的革新。
画一个图吧:(CMM的五层结构图)
-----------------
/ 优 化 级 /
/ (5) /
-----------------
↑
| 不断改进的过程
|
-----------------
/ 可 管 理 级 /
/ (4) /
-----------------
↑
| 能预见的过程
|
-----------------
/ 确 定 级 /
/ (3) /
-----------------
↑
| 标准一致的过程
|
-----------------
/可 重 复 级 /
/ (2) /
-----------------
↑
| 有纪律的过程
|
-----------------
/初 始 级 /
/ (1) /
----------------- 现在都搞CMMI和IPD了,不太流行CMM了! 好~~~~~~~~~~~~~~~~~~~ 各种认证的基础理念都是相通的,做质量的人不用赶时髦去掌握知识,质量意识是关键! 了解又深了些 谢谢大家!
我们要过cmmi了,刚整理了一点资料(初期)
因为是第一回培训,只有概况 很不错!顶一下
页:
[1]