基于CMM实施软件过程改进的成功策略

基于CMM的软件过程改进已经被越来越多中国的软件企业所接受,目前,在中国已经掀起了一个CMM评估的小高潮, 但是,通过评估不是企业的最终目的,对软件企业而言其根本的利益是通过实施软件过程改进,提高企业的管理水平。CMM作为美国军方评价软件过程能力的一个模型,他是在研究了美国的一些较大的管理基础较好的软件企业提出来,针对中国软件企业的实际需要灵活裁剪,而且,在CMM中也没有告诉企业如何按照此标准进行企业的过程改善。笔者从98起开始主持一个企业的软件过程改善项目,在这3年的时间里,积累了大量的经验教训,现概括出6条策略,供正在或准备实施CMM的软件企业参考。

策略一:自低向上,主动改进

在进行软件过程改善的时候,通常有两种做法,我称之为自顶下与自低向上。在自顶向下的做法中,企业成立一个推进小组,一般称为SEPG(软件工程过程组),他们是企业里"开发方法"制定的组织者。SEPG组织一些开发人员成立各种任务小组,由这些任务小组根据进行过程改善参照的标准编写各种各样的企业的标准与规范,经过一系列的评审、培训,然后让开发人员去执行。在执行过程中最常见的阻力是来自于开发人员,他们往往会抱怨制定的企业开发规范不符合企业的实际情况,标准太高,无法达到。 这一种做法,费时费力不讨好,大家的意见都比较大,标准定的比较完美,而且在评审时还要大家表面上都要认可,制定标准的人花费了很大的精力,对标准的评审浪费了大家的很多的时间,执行时还难以贯彻下去。这种方式98年、99年上半年我在企业里采用过,收效甚微。后来我们降低了要求,抛弃了各种标准与规范,采用了一种简单易行的策略,自低向上的办法,即由SEPG找开发人员、项目经理让他们自我发现问题:你有什么缺点?你将如何改进?好,在开发人员、项目管理人员讲自己的改进措施后,让他们确保能做到。在这种办法中,不需要管理人员花费太多的精力进行标准的制定,改进的推动,这些工作都是由开发人员自己去做的,管理人员仅仅是起到了监督的作用,只要开发人员自己说到做到就可以了。再做下一个项目时,管理人员同样会问这2个问题:你有什么缺点?你将如何改进?然后管理人员监督开发人员说到做到。在这个过程中逐步完善形成标准与规范。

在上面的两中方法中,我们可以从几个方面进行比较:

当然采用第2种方法时,你一定要目标明确,你是要改进过程,而不是为了在短时间内通过评估。

策略二:循序渐进,由易到难,由粗到细,由松到严

CMM的一个核心思想是分级改进,在CMM模型中将软件企业的过程能力分成了5级,有很多企业很可能违背了分级改进的思想,搞了一场革命,期望短时间内提高管理水平,那显然是不现实的,我们要需要的是改良而不是革命。分级改进实际上就是要循序渐进,你能一步做到2级吗?不可能的,对于2级的每个KPA,可能你先实现了每个KPA的一部分活动,稳定了,再实施另外一部分活动,如果你现在1级,想一下子将2级的所有的KPA的所有活动都满足是不现实的。在实施CMM的过程中一定要根据企业的实际情况量力而行,千万不要期望值太高,要一步一步来。先定出最基本的改进方案,然后逐步提高,要把握分级改进的思想。

要做到循序渐进,首先要对企业现状有一个明确清醒的认识,在分析现状时,下面的四个问题是必须要解答的:

当前我们存在哪些问题(当然,问题可能很多)?

哪些问题是我们迫切需要解决的?

哪些问题是我们目前能够解决的?

哪些问题是我们当前无法解决,需要打好基础后才可以解决的?

接下来要对照标准,提出解决方案。按照"力所能及,有所提?quot;的原则对问题排出优先级。

以SPP、SPTO这2个KPA来说,你可能可以采取5次循环达到CMM2级的要求:

第一次循环:从无到有,使项目组成员熟悉做计划的过程,熟悉项目计划跟踪的重要性。

第一步:要求每个项目组都要用PROJECT 2000做项目计划,该项目计划要满足一定的条件,如:

任务的颗粒度不能太大;

任务负载要均衡;

任务尽可能并行;

等等。

第二步:对每个项目组,按计划进度进行跟踪,在计划执行过程中及时发现问题,解决问题。

第三步:总结本次循环执行过程中存在的问题,如:

项目计划中任务识别不全;

计划的任务工作量估算不准;

在项目进行过程中,发现问题后采取措施不及时等等。

第二次循环:增加完整的生命周期模型定义

生命周期模型是项目管理的管理的主线,定义一个好的生命周期是推行CMM2级的一个最关键的基础工作。

第一步:要求每个项目组首先要定义出自己的生命周期模型,做出项目计划模版

第二步:要求每个项目组按照项目计划模版进行做项目计划

第三步:进行项目计划跟踪

第三次循环:增加规模、工作量等的度量

第一步:要对项目的规模、工作量进行正式的估计

第二步:按计划摸版做项目计划

第三步:进行项目计划跟踪

第四次循环:增加风险分析

项目的风险管理对于国内的软件公司而言,一般都是一个难点,可能风险很多,风险可以预见,但是没有很好的规避措施。所以建议将风险管理放在较后的循环中来改进。

第五次循环:体系化,制度化

开始时要求不要太严,对文档的要求要粗一些,要把握住实质而不是皮毛。

时间: 2024-10-24 18:20:47

基于CMM实施软件过程改进的成功策略的相关文章

《术以载道——软件过程改进实践指南》—第1章1.3节如何实施CMMI

1.3 如何实施CMMI1.3.1 实施CMMI时必须解决的7个认识问题 在基于CMMI实施软件过程改进时,有些根本的思想认识问题解决不了,往往会导致实施过程改进的周期变长,效果不佳,甚至终止或失败.软件企业的高层领导.企业的过程改进主管.销售人员.项目经理及一般的开发人员都需要对这些问题统一认识,在此基础上才能消除各方面的阻力,把握好过程改进的方向,控制好过程改进的进度.在实施CMMI时必须解决如下几个思想认识问题. (1) CMMI不是万能的,需要技术.人员.过程三个要素一起改善 在软件工程

《术以载道——软件过程改进实践指南》目录—导读

内容提要 术以载道--软件过程改进实践指南 软件过程改进(Software Process Improvement,SPI)是指帮助软件企业建立过程管理.识别改进点.持续优化过程体系.CMMI表示Capabi lity Maturity Mode Integration(能力成热度集成模型),提供了一个指导企业实施过程改进的框架,CMMI是实现过程改进标的一种有效手段和方法. 本书是作者软件工程经验.过程改进经验与CMMI咨询经验的总结,从实践者的角度出发,涉及到了实施CMMI的方方面面,包括C

《术以载道——软件过程改进实践指南》—第1章1.1节对CMMI的基本认识

第1章CMMI实施精要 术以载道--软件过程改进实践指南1.1 对CMMI的基本认识1.1.1 CMMI是什么 CMMI是Capability Maturity Model Integration的缩写,译成中文称为能力成熟度集成模型,或者更通俗地称为集成的能力成熟度模型.CMMI的前身是SW-CMM(SoftWare Capability Maturity Model),SW-CMM是美国国防部委托卡内基梅隆大学软件工程研究所(SEI-CMU)开发的用于评价软件开发组织过程能力的模型.SW-C

基于RUP的软件过程及应用

1 引言 软件过程(Software Process)是人们建立.维护和进化软件产品整个过程中所有技术活动和管理活动的集合 [1].目前,软件过程技术是一个非常活跃的研究领域,吸引了大批来自学术界和工业界的专家和学者.从1984年起每年有软件过程国际研讨会(ISPW),从1991年起开始召开软件过程国际会议(ICSP),每个国家几乎都有自己的软件过程改进网络(SPN).软件过程技术的研究主要有三个方向: (1)软件过程分析和建模.软件过程建模方法是软件过程技术的起点,其中形式化半形式化建模方法有

CMM“六步曲”--CMM实施技术问题分析

对大多数国内软件企业来说,CMM的实施还处于起步阶段,准备实施CMM2级的企业占绝大多数,因此, 分析CMM2级实施过程中的问题,将有助于这些企业尽快找到适合本企业的实施方式. 一些正在实施CMM2级的企业发现有大量的重复性工作要做,原因何在?没有做好需求开发是产生这一 问题的主要原因! 1 需求管理与需求工程 需求开发和需求管理是需求工程的两部分,如果没有做好需求开发,那么从需求管理的角度看就会出 现重复性的工作.导致需求开发欠佳的主要原因有以下几点: ◆ 缺乏良好的需求规格说明编写模板 分析

CMMI 3级软件过程改进综述与 文档模板

原文:http://www.uml.org.cn/bzgf/2004091701.htm 选择自 www.chinaspis.com 电子工业出版社于2002年11月出版的著作<CMMI 3级软件过程改进方法与规范>公布了SPP规范,请下载阅读CMMI 3级精简并行过程综述.     SPP的60余个文档模板如下表所示,请用户下载 SPP-Template.zip  项目管理过程域 文档模板 立项管理 <立项建议书> <立项调查报告书> <立项可行性分析报告>

《术以载道——软件过程改进实践指南》—第1章1.4节CMMI实施的难点与对策

1.4 CMMI实施的难点与对策1.4.1 CMMI 2级的难点 其实这个问题本没有答案,因为不同的企业难点是不同的.对于某些企业来讲,可能没有什么难点.譬如,某企业只想拿到一个评估证书,而不考虑改进效果.我是基于企业里最常见的难点泛泛谈之.尽管CMMI 2级是最基本的等级,如果真想将CMMI 2级做好,其实还是不容易的,通常情况下的难点如下. (1) 做一个切实可行的计划 任务要识别得比较全面,估算的工作量比较合理,人员的安排不能超负荷.不能窝工.进度安排紧凑而不失弹性. (2) 实时掌握项目

基于JDBC的数据库连接池高效管理策略

在基于JDBC的数据库应用开发中,数据库连接的管理是一个难点,因为它是决定该应用性能的一个重要因素.本文在对数据库连接进行透彻分析的基础上,提出并实现了一个高效的连接管理策略,使得开发高性能的数据库应用变得相对容易.特别是,对于连接管理中的两个难点:事务和多线程问题进行了深入的剖析,并给出了一个基于设计模式的解决方案. 介绍 在使用Java语言进行和数据库有关的的应用开发中,一般都使用JDBC来进行和数据库的交互,其中有一个关键的概念就是Connection(连接),它在Java中是一个类,代表

《术以载道——软件过程改进实践指南》—第1章1.2节EPG的工作指南

1.2 EPG的工作指南 EPG是工程过程组(Engineering Process Group)的简写,EPG是企业内的立法机构,负责制定与推广管理规范与过程财富. 1.2.1 EPG成员选择四要素 选择什么样的EPG成员才合适?基于我的所见所闻所思,总结了4个选人的要素. (1)知识 知识是基础的要求,应该具有基本的软件工程知识,而不是白纸一张,这样才能容易沟通,知识可以通过学习来获得,有无知识是相对的:知识可以通过是否学习过哪些课程,接受过哪些培训.读过哪些书籍来衡量. 实践出真知.知识经