软件过程能力评估模型知识和软件能力成熟度模型知识 _过程改进基本原理(4).ppt
第一讲,过程改进基本原理,1,过程是什么?你如何定义过程?,2,过程的定义,过程(Process):指一系列活动、任务、和它们之间的关系,它们共同把一组输入转换成所需要的输出。ISO/IEC 12207;GB/T 8566,输出,输入,3,每个人都体会到主动积极的优质劳动力的重要性,但是.,质量的杠杆作用,人员,过程,技术,过程是产品成本、进度和质量的主要决定因素,如果不理解过程,或者过程不是在“最佳实践”下运行,即使我们的精英也无法使工作达到最佳的状态,4,过程的地位,决定软件产品成本、进度和质量的主要因素,技术,人员,过程,质量三角架,5,问题:软件企业存在哪些过程?,需求管理项目计划配置管理质量保证等等,6,几个重要概念,过程能力反映单个过程的特征过程能力成熟度反映一组过程的特征,7,过程能力,过程能力通过遵循某个过程,有能力预见未来所得到的结果范围。,控制上限,控制下限,过程能力,8,过程能力与过程性能,过程能力通过遵循某个过程,有能力预见未来所得到的结果范围。过程性能特定项目遵循某过程所得到的实际结果的度量。,控制上限,控制下限,过程性能,过程能力,9,过程能力轮廓,可以用二维平面中的一系列点来表示过程能力轮廓。过程维(做“什么”)能力维(做得“有多好”),(做得多好)能力,过程(做什么),10,过程维,过程维(即X轴)上的值描述执行什么过程(在过程方面中描述的)。,能力,过程,过程域1,过程域n,过程域3,过程域2,11,能力维,能力维(即Y轴)上的值描述某个过程执行得有多好(能力等级)。,能力,过程,过程域1,过程域n,过程域3,过程域2,未得到执行的过程,执行得很好而且在不断改进的过程,12,过程能力的标记,能力维(即Y轴)上的值描述某个过程执行得有多好(能力等级)。,能力,过程,过程域n,等级1,等级2,等级4,等级3,等级5,这里表示在此过程方面中,此点具有比下面点较高的能力等级,13,过程能力轮廓示例,能力维(即Y轴)上的值描述某个过程执行得有多好(能力等级)。,能力,过程,过程域1,过程域4,过程域3,过程域2,等级1,等级2,等级4,等级3,等级5,14,软件过程的可视性,每个成熟度等级的软件过程的可视性,15,成熟度等级所指示的过程能力,目标,目标,目标,目标,目标,概率,时间/费用/不良质量,等级5:组织中性能持续不断改进,等级4:基于对过程和产品的定量了解,对组织中性能改进,等级3:因为有妥善定义的过程,性能有改进,等级2:计划由于基于过去的性能而比较现实可行,等级1:一般达不到进程和成本目标,16,问题:什么是成熟度?,已定义的记入文档的经过培训的经过实践的已支持的已维护的,已控制的已验证的已确认的已测量的能改进的,17,过程集合反映成熟度,不同能力的过程集合反映不同的软件工程能力成熟度,过程集合,过程集合,过程集合,成熟程度,18,约定衡量尺度,根据软件工程实践,经过协商拟订一根衡量软件工程能力成熟度的“标杆”评估模型,评估模型基本框架,过程集合,19,通过改进过程提升成熟度,随着相应的一组过程的能力的提高,企业的综合软件工程能力成熟度等级也相应提升,20,过程改进的基础,进行过程改进是为了有助于业务,不是为改进而改进;统计质量控制学家、美国人W.Edwards.Deming有一句名言:“In God we trust,all other bring data.”对于不同的组织,改进的手段不同;改进是一项战略性、持久性的工作。,21,软件过程改进的回报,软件过程改进投资回报率在5:1到8:1之间;改善工作状况;提升员工士气;减少返工;缩短项目拖延时间;改善沟通状况;降低风险;提高顾客满意度。本标准是指导改进的有利工具,22,过程改进方法,过程改进应有助于业务而不是为了自身的原因,一个有效的改变程序需要对当前状态的理解If you dont know where you are,a map wont help.-Watts.Humphrey,“我们信任上帝,所有的东西都可以用数据表示。”-W.Edwards Deming,23,过程改进的主要环节,开始确定目前的状态确定想达到什么状态拟订计划执行计划总结经验教训,开始新一轮的改进 PDCA循环,24,如何找到过程改进的路?,找到适合你的路不是容易的事如果急于求成则会轻易迷失方向,25,基本出发点,过程改进应有助于业务而不是为了自身的原因改进意味着不同组织的不同目标:什么是组织的商业目标?如何度量进展?改进是长期的、战略性的努力工作:根据基本出发点,预期什么效果呢?度量的效果如何?,26,基于CMMI过程改进系统的方法,27,过程改进方法的IDEAL模型,初始化(Initiating)诊断(Diagnosing)建立(Establishing)行动(Acting)推进(Leveraging),修 改 组 织 的 方 法,记 录 和 分 析 教 训,定 义 过 程 和 度 量,计 划 及 执 行 试 行 方 案,计 划,执 行 和 跟 踪 改 进 方 案,建 立 过 程 行 动 组做 行 动 计 划,设 定 战 略 和 优 先 级,提 出 建 议 并 记 录 阶 段 成 果,评 估 当 前 实 践 情 况,改 进 动 机,确 定 改 进 范 围 以 及 获 取 支 持,建 立 改 进 机 制,诊 断,建 立,行 动,推 进,初 始 化,28,软件过程管理,过程改进,过程实施,过程开发,过程测量,过程控制,29,软件工程要点,B,A,D,C,有效的软件过程,高素质的人,适用工具,30,组织准备过程改进的基础设施,31,启动时的组织准备-CMMI职能组,高层经理CMMI项目主管软件工程过程组(SEPG)软件质量保证组(SQAG)软件配置管理组(SCMG),32,高层经理,出资支持用CMMI改善软件过程组织应委托一个具有高层/中层管理职责的人员负责CMMI实施工作。,33,CMMI项目主管,为实施CMMI配备必要的资源,应投入总开发资源的5%-10%到CMM项目。制定CMMI实施计划检查CMMI实施情况支持实施CMMI的一切活动,及时解决过程中的问题。,34,SEPG,挑选一个有丰富软件工程经验的人员担任SEPG 组长。他/她应该是全职的。根据情况,挑选几个全职/兼职的人员作为组员(最好有项目管理经验及过程改进经验)。SEPG组员要经过软件工程知识的培训。,35,SEPG 的组织角色,执行领导委员会,管理委员会,软件工程过程组,过程行动组,过程行动组,过程行动组,过程行动组,负责达到CMM等级,定义过程,推广,36,SQAG,挑选一个有丰富软件质量保证经验的人员担任SQA 组长。他/她应该是全职的。根据情况,挑选几个全职/半时的人员作为组员(最好有项目管理经验及过程改进经验)。SQA组员要经过定SQA的专门培训。,37,SCMG,挑选一个有丰富软件配制管理经验的人员担任SCM 组长。他/她应该是全职的。在每个项目组挑选几个全职/半时的人员作为组员(最好有项目管理经验及软件工程经验)。SCM组员要经过配置管理专业培训。,38,实施过程中的知识和技能培养,营造软件工程管理的文化氛围,培养专业化的队伍应普遍开展CMM及软件工程基础的培训,及高级培训SEPG:过程专家各行动组(职能组):领域专家明确角色职责,使每个岗位的人员都具备过程改进的意识,并掌握所必需的过程改进知识和技能重视对软件工程的研究,包括方法、工具和过程需求开发、设计、测试、评审等集成环境,测试工具缺陷追踪和管理,39,行动计划过程,建立过程行动小组,开发初始行动计划,计划 评估 定义 试点 实现,描述当前过程,以最佳实践为基准,定义要改进过程,定义过程测量,计划试点项目,执行和评估试点项目,根据需要校订材料,计划实施,开发项目级指南,在项目中实施,40,定义过程过程构架图示例,41,过程文档,过程描述数据库 过程规格说明书 生命周期模型过程资产库 模板,检查单 规程,方法 文档范例 裁减指南 标准过程性能数据库(组织范围)项目管理数据库(具体项目)每一个库有自己的结构来适应组织的需要,过程描述,过程资产,项目历史数据库,项目管理数据库,组织级的,项目级的/组织级的,项目级的,42,过程定义及文档,组织级过程、标准、裁减规程、模板、检查单、指南项目级文档评审计划、SQA计划、SCM计划、培训计划、质量计划等实施文档过程实施证据具体项目的计划每日工作日志、周报、状态报告(月或里程碑)评审和审计报告:SQA、SCM、高层经理问题记录、解决措施及追踪解决情况估计和实际测量的数据,43,过程表示,成熟的过程要形成文件。过程文件编写成什么样子?取决于过程文件的读者。两种比较普遍的过程表示形式:正规的过程表示形式;面向使用者的过程表示形式。,44,过程标记方法,过程的标记方法应能反映出 1、执行什么活动 2、谁来做 3、为什么由他们来做 4、何时做 5、他们如何做 6、必须输入什么 7、应该产生什么输出 8、如何度量活动的性能 等等.,45,一些常用的过程标记方法,数据流图流程图决策树或决策表核查表叙述,46,标记方法示例,显示活动顺序的流程图作为结构化叙述的活动细节补充,47,活动细节,该活动的目的是什么?。谁参与该活动?执行活动所需的输入是什么?由该活动生成的工作产品是什么?如何知道何时开始该活动?如何知道何时完成了该活动?为完成该活动要做什么?为完成该活动要执行的子活动有那些?如何确定或度量该活动的性能?在该活动之前和之后要执行什么活动?,活动1,活动2,活动3,48,使用测量方法测量软件过程,“一个精确的测量胜过1000专家意见”Grace Murray Hopper,49,测量模型与测量过程,使用标准的测量模型来定义软件测量过程目标问题测量(GQM)实现:目标驱动度量实用软件测量框架:Practical Software Measurement SEI框架:CMM/CMMIIEEE标准:IEEEE 15939(Software Measurement Process)统计过程控制(Statistical Process Control,SPC),50,指示器给出的问题域,每个指示器回答一个特殊的问题或疑问,51,企业有效实施CMM的过程,一个有效的企业过程改进及评估的过程启动时的组织准备-CMM职能组实施过程中的知识和技能培养过程定义及文档选择实施范围制度化地实践已定义的过程能力具备(制度化程度)常见的CMM实施中的问题及风险,52,企业过程改进及评估的过程,CMM项目启动,诊断制订过程改进计划1,执行初步小型评估,CMM培训过程改进方案,里程碑 1,第一阶段,文档化定义的过程/评阅,试验新过程,里程碑 2,第二阶段,执行正式评估,制订过程 改进计划3,里程碑3,第三阶段,53,确定软件生命周期以及各过程阶段的入口和出口准则,54,选择实施范围,适当的选择实施范围,不易过小。先试点,再推广选择评估项目。一般选择58个项目参加评估,这些项目应具有代表性(不同类型,处于不同开发阶段,不同项目部门)。,55,制度化地实践已定义的过程,实施:全体参评人员的责任。学习规范了解各项规程明确分工,熟知工作流程及责任高质量完成每个角色的任务。收集项目数据:全体参评人员的责任。遵循组织规程严格填写必要的数据养成统计过程数据的习惯。,56,能力具备(制度化程度),大多数项目已经建立了有效的软件项目管理文档化且遵循软件项目管理过程在建立管理过程中,使用组织的方针来指导项目大多数项目可重复以前成功的项目开发经验、过程,57,企业管理者的策略,当前的策略生存.应急管理交付产品保持业务中期的策略竞争性有赢利持久竞争获得业务长远的策略发展扩展业务改进开发周期、成本和质量为未来发展,58,过程改进的借口,当你处于危机时,你没有时间去改进当你没有危机时,你不需要去改进,59,软件过程改进的基本原则,主要的软件过程的改进必须从高层启动全体人员参与有效的变化需要当前过程的目标和知识改进需要持久地投资、回报和鼓励改进是一个持续的过程改进必须进行测量,而且要定期地加强改进的焦点放在修复过程,不放在对人的抱怨不自在感的程度不足够高,事情将不会有变化。,60,评价现存过程使用CMMI作为路线图把改进与经营目标联系起来变更管理发挥领导作用,过程改进关键策略,61,关键策略1:评价现存过程,不成熟,成熟,理解组织的能力 确认过程改进的关键区域 确定持续改进的基础 为启动过程持续改进提供方便,62,关键策略2:用CMMI作路线图,持续优化级,定量管理级,已定义级,受管理级,初始级,63,1、怎样完成过程*描述如何实施过程的特定实践即制度化2、如何确保过程长时间得到使用和改进*建立方针*提供培训和资源*度量*验证两个方面都重要,成熟过程的两个方面,64,关键策略3:把改进与商业目标联系起来,关键成功因素是那些少数的关键区域,在这些区域的所有事项必须正确运行以便经营正常。也是那些少数的关键活动区域,在这些区域内的活动应得到管理者的持续和仔细的关注。,找出商业目标,为实现商业目标关键成功因素是什么?,65,关键策略4:变更管理,现存过程,转换,预期的过程,66,承诺变更,承诺水平,接触,意识加强,理解,承诺,采纳,先行试验,制度化,时间,67,克服变更的阻力,就变更的目的进行沟通,告诉大家正是存在问题才是变更的理由。描述变更后的良好状况 建立转换的计划 让人参与过程变更,人们是因有损失而有阻力而不愿变更,68,过程实施的两种策略,终点,起点,终点,起点,突变式,渐进式,69,过程改进的“J-曲线”,性能水平,现状,预期的状况,实际的路线,理想上路径,开始时可能还不知当初的,70,管理者必须做什么?*传达过程改进的需求*设立清楚的期限*组织证实自己的承诺*确保过程改进支持经营目标和战略*监视过程*参与并了解过程改进,关键策略5:发挥领导作用,71,过程的改进特征,了解过程的内在变化原因,适时地修改组织的定量过程改进目标,达到过程性能的持续改进。建立了关于产品质量、服务质量以及过程性能的定量目标,运用统计技术和其他定量技术对各个过程实施控制,做到统计意义上的了解和管理。项目通过剪裁组织的标准过程集合和组织过程财富得到项目的执行过程,并且具有与该过程相适应的运行环境。软件组织已经确保有关的过程在项目一级得到策划、形成文件、得以执行、受到监控并能实现过程目标。软件组织已经营造出稳定的、受控的开发环境。过程是专门化和无序的,不具备稳定的开发环境,项目的成功与否取决于个人的能力,项目经常超过预算和拖延进度。,ML5持续优化级,ML4已管理级,ML3已定义级,ML2可重复级,ML1初始级,72,过程能力、成熟度是累进的,高层能力、成熟度等级是建立在较低的能力、成熟度等级上的,不能跨越次高能力、成熟度等级而达到更高能力、成熟度等级;换言之,能力、成熟度等级之间不能有空隙。,73,练习1 过程定义,按照所给材料做练习,74,