CMM软件过程改进前常见问题解答.doc
《CMM软件过程改进前常见问题解答.doc》由会员分享,可在线阅读,更多相关《CMM软件过程改进前常见问题解答.doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、CMM软件过程改进前常见问题解答入世后,软件企业的国际化进程也随之加快,一些大型软件企业完成CMM认证的同时,也为相当多的中小软件企业带来了希望,但他们在实施CMM的过程中,特别是在向CMM2前进时往往存在很多困惑和疑问。本文特别侧重对处于这一过程的软件企业碰到的各种疑难问题进行答疑解惑。 袁庆平,现担任北京博思美亚科技发展有限公司(Soft Tech北京分公司)CMM高级咨询顾问,曾为北大青鸟天桥股份有限公司、中关村科技软件有限公司、青岛中天科技发展有限公司等多家软件企业提供CMM、项目管理和软件工程相关的培训、咨询服务。曾在北京鼎新信息系统工程公司参与CMM 2级实施工作并担任项目经理。
2、随着国务院第18号文件明确鼓励软件进出口型企业通过国际质量方面的认证,并在省市政府、科委以及软件园发布鼓励政策的大力配合下,越来越多的企业希望改进软件过程来提高企业的竞争力。虽然很多软件企业得到了ISO 9000质量认证,但ISO 9000不是专门为软件企业设计的,因此有些地方不能真正为软件企业解决问题。最近,越来越多的软件企业希望通过实施基于CMM的软件过程改进提高自身竞争力,原因就是CMM是专门为软件企业设计的。 那么什么是CMM呢?CMM是指“软件能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM
3、。CMM的定义是:对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。CMM分成了5个成熟度级别,其中任何软件企业都可以认为是成熟度级别为1级的组织。换句话说,1级的企业在软件过程方面有很多问题。随着成熟度级别的升高,企业的软件过程能力越强。 但是,俗话说:“万事开头难”。对于很多企业的决策层,在启动CMM改进项目以前,特别是向CMM 2级前进的时候,往往会有各种各样的问题和困惑,也会有各式各样的错误理解。比如:在CMM实施
4、前和过程中经常会出现什么问题?这些问题应该怎么面对和解决?在CMM的实施过程中应该有一个什么心态等等。这些问题在下面的文章中您都可以找到答案。我将对一些CMM实施过程中最常见的、决策层最关心的问题给出一些观点、解释和建议,希望能够通过这篇文章使大家对CMM的认识再上一个台阶,对今后想实施CMM的企业有一个初步的指导。 关于实施时间 Q:我们公司已经决定按照CMM 2级的要求实施过程改进,最快需要多久达到2级的水平? A:这个问题就像一个病人充满希望地向医生询问:“你看我的病什么时候能好?”。虽然这是很多准备实施CMM的企业非常关心的一个问题,但是这个问题让任何人都会感到很难回答。这是因为过程改
5、进所需要的时间与很多因素有密切关系,特别表现在以下方面: 企业决定进行软件过程改进的目标和商业需要(如:改善软件开发管理;提高软件产品质量;降低软件开发工作成本;提高企业在业界的知名度和信誉等):不同的目标需要不同的工作方向去实现,改进的难度也不同,必然会影响时间进度。 企业当前的过程情况:一个企业如果在软件开发过程方面已经比较规范,很多过程均已得到了良好的定义,并形成了文档,质量保证体系也很完善,则达到CMM 2级的要求应该容易一些,相对来说改进的时间也能够短一些。 企业实施的范围:一个企业的哪些部门实施基于CMM的过程改进,或者说涉及过程改进的人员有多少,会影响时间进度。可以说,实施的范围
6、越小、涉及的人员越少,实施越简单,时间越短。 企业的文化:对于一个存在多年的企业,变化对它来说可能是非常困难的;一个企业是否愿意主动去接受变化,很大程度上将影响过程改进的难度和进度。通常情况下,一个刚成立不久的公司,实施过程改进的阻力要小得多,这就是“船小好掉头”的道理。 将来要作为试点项目的周期:一般情况下,我们建议一个按照CMM 2级实施过程改进的企业选择35个生命周期比较完整的软件开发或维护类型的项目作为试点项目并参加CMM的评估。这些项目可以并发进行,但通常我们希望能有2个左右的项目能够在评估的时候达到试运行或正式交付的阶段。如果企业选取的项目周期都在一年以上,这也会影响进入评估的时间
7、。 10个月左右的时间比较常见:根据SEI官方发布的统计报告(截止到2002年8月份),从大多数进行评估的组织情况来看,组织从1级向2级改进通常需要23个月左右,我们可以通过下面这个图表来了解各个向高级别演进所需要的时间。大家不要被这个接近两年的时间吓坏了,这样的平均时间主要是因为大多数国外实施CMM的公司规模都比较大,项目周期也相对比较长。国内大多数软件企业的规模都不大,加上咨询公司的帮助,用10个月左右的时间达到CMM 2级要求还是比较常见的。 实施时间上能不能再短一点呢?任何一个够资格的SEI授权主任评估师都遵从一个原则,一个组织中的过程在定义、形成文档并发布之后,需要一个至少六个月的稳
8、定运行期。因此,可以说一个组织在实施按照CMM 2级要求的过程改进时,至少需要8个月左右的时间(2个月过程以及文档化加上6个月的稳定运行期)。除非有专业人员深入了解企业现状,可能会根据实际情况作少量调整。 (待续) 下期预知: 提示软件企业在资源投入方面应做的准备:人员、岗位及设备工具。关于评估范围 Q:我们将来需要什么样的项目参加评估比较合适? A:这必须慎重,否则可能会对评估结果、实施效果及企业获益影响很大。原则上说,CMM 2级评估没有对试点项目做出什么特别的要求。一般只要是生命周期比较完整,项目组成员人数在510人,周期在36个月的项目均可,当然这也不是一定的。 对于很多企业来说,通常
9、会有两类项目,即自主研发的产品类项目和基于客户具体需求的工程类项目。究竟使用哪类项目进行试点,是很多企业决策者争论和考虑的地方。这两类项目在作为试点项目方面各自的优势可见表1: 显然,产品类项目风险比较小,可控度比较高;然而,工程类项目往往是最容易管理混乱的。因此,把工程类项目作为试点项目企业收益会更高。有一家公司就曾经怀着尝试的态度在两个金融领域的工程类项目中进行CMM试点,这两个项目的客户都是银行相关业务科室的人员。令他们非常意外的是,当他们告诉客户正在做CMM改进时,客户显示出了非常浓厚的兴趣。对于参加需求规格说明书评审会这样的CMM建议的活动,他们也积极配合;质量保证方面,客户还专门派
10、了一个人配合。到了项目验收的时候,客户在验收单上签字的工作比他们历次任何一个项目都顺利,因为客户在项目开发的整个过程中很清楚地了解项目的进展和问题,并且对于项目的结果有很强的信心。这家公司的高层经理,也因为客户满意度非常高而认识到了过程改进的好处,并决心加大这方面投入的力度。相反,有些公司为了减少过程改进的实施难度,用产品研发类项目作试点,结果现在大家抱怨因为管理产生的工作量太多了而产生抵触情绪,反而影响了实施效果。 我们一般还建议选择生命周期比较完整的项目作试点,这是因为:在CMM 2级的配置管理KPA中,有些要求是关于测试和产品构建的,如果没有一个试点项目在评估的时候能够进入集成测试或者产
11、品发布这样的产品开发后期阶段,就有可能因为找不到评估证据而被主任评估师要求延期评估。所以,如果一家企业选择了多个项目作为试点的话,可以不必所有的项目都能够非常完整的到达后期阶段,有12个项目即可。 对于试点项目的规模,特别是人数,应注意这样一个问题:如果一个企业希望在整个公司内实施CMM并进行评估的话,那么每个和软件开发、维护相关的部门都应有半数以上的人参与试点项目。对于不打算在整个公司范围实施的企业,大量实际情况表明,510人规模的中小项目在实施效果和难度方面都是值得推荐的。 目前对于大多数国内的软件开发项目来说,还是36个月的最多。为期6个月的项目刚好可以满足6个月的过程稳定期,在这个基础
12、上时间长点、短点问题都不大。至于说项目开发地点是否在公司本地,其实影响不大。而项目经理是否能够认同过程改进的价值,高层经理能否真正保证项目组有足够的资源来实施新的过程,也应是此时考虑的一个重点问题。 Q:既然CMM 2级是项目级别的,我们用一个规模很小的项目去实施过程改进,并参加评估,岂不是很容易? A:选择小规模的项目作为试点在理论上是可以的,因为SEI并没有规定这样做不允许,但我们强烈建议大家不要这样去做。规模小的项目沟通方便、风险小,是否需要按照CMM的要求和建议去管理应该根据具体情况去分析。如果一个1、2个人月工作量的项目要花费大量精力去形成管理文档,会让人觉得是一种罪恶。曾经有一家公
13、司,希望在该公司一个部门实施CMM,但该部门绝大多数项目都是基于一个已经很成熟的核心产品,只需根据客户定制的一部分额外需求进行开发,因此开发工作量很小。而对于该部门来说,在客户现场将老系统切换成为新系统,并保证新系统能够稳定运行倒是非常重要。虽然这方面的工作每次只需要一、二人,二周时间就足够了,而且有关人员因为对这方面业务非常熟悉,项目失败的风险并不大,项目组也不会留下什么文档,但他们希望能够通过过程改进加强这类项目的管理,减少人员流动为该部门带来的损失。但是,这个公司定义出来的过程文档主要是用于开发类型的项目,而他们又没有足够的数据对过程进行分析和裁剪,结果造成几乎管理工作量比工程活动工作量
14、还要多,项目组有关人员均对这套过程表示了怀疑,并开始对过程改进活动产生抵触情绪。 关于试点项目的数量,一般来说1个是不够的。有的主任评估师认为CMM 2级的特点是repeatable,即可重复的,就需要一套成文的过程应该在至少2个项目中使用。如果一个项目规模很大(100人以上),周期很长(2年以上),通常被拆分成若干个子项目进行开发,并且能够充分的体现实施CMM的有关证据,那么可以允许仅有1个项目参加评估。如果是一般规模或规模较小的项目,一定是不允许的。 规模小、数量少确实可减少实施难度,但企业如为了真正实现商业目标,通过改进获益,他们是不会这样做的。 Q:我们可不可以只在公司下面的某一个部门
15、实施CMM,以便减少实施的难度?A:可以,因为CMM中“组织”一词,它既可以代表一家完整的公司,也可以代表一个或多个部门。因此,即使在评估CMM 5级的时候,也可以只对某一个部门进行。CMM 2级是面向项目级别的,实施的时候这方面灵活性更大。不过主任评估师向SEI提交评估结果时会明确写明评估是在企业的什么范围内进行的(多少部门纳入评估范围,参与的软件开发人员和管理人员的数量等)。现在很多企业宣传时,有意无意掩盖了这一点,只是泛泛说:XX公司已经达到了CMM 2级的要求,久而久之造成了很多错误的认识。不过,如果企业希望通过过程改进真正获益的话,最好还是能够在整个企业中所有与软件活动有关的部门实施
16、。 虽然2级是面向项目级别的,但我们非常欢迎和支持在整个公司的范围内实施CMM 2级。这样,公司积累大量不同项目的宝贵经验,有利于向3级迈进。 我个人认为,如果一家公司希望能够成为CMM 3级的公司的话,如果在2级的阶段投入比较多,实施的效果比较好,那么3级的实施难度会下降很多;反之,3级的实施难度会增加;因此可以说,一个公司在从1级到3级这个过程中所投入的资源总数基本上是一个固定值。既然如此,为什么不早一点把工作做到实处,早一点获得成效呢? 关于评估方法 Q:CMM的评估方法是怎样的? A:基于CMM的正式评估有一个专用的名称:CBA IPI(CMM Based Appraisal for
17、Internal Process Improvement - 用于内部过程改进的基于CMM的评估)。如果用一句话来介绍这种评估活动的话,可以这样说:它是通过抽取一个组织中的采样数据和信息,通过文档审阅、同组织中各个不同角色的人员以访谈、讨论的形式获取数据和信息,对这些收集到的信息进行整合、分析、确认,形成最终的结果。正式评估之前的一段时间,通常还会组织预评估(Pre-assessment),绝大多数SEI授权的主任评估师都会采用迷你评估(Mini-assessment)的方式。 下面详细一点地介绍这套评估方法。评估过程中的活动可以分成2大类:前现场活动(Pre-On-Site Activiti
18、es)和现场活动(On-Site Activities)。 评估小组:每次评估的时候都需要有一个评估小组,人数大约是48人。其中组长由SEI授权的主任评估师担任。对于级别高(如4级或5级)的评估,往往需要2个主任评估师。其他的人员多数来自被评估的公司内部,这主要是希望评估结果能够更容易被公司大多数人接受。至于说这些人是否能够在评估中保持客观性是至关重要的,这个方面可以由主任评估师来保证。另外,评估小组成员的知识技能背景会对评估结果产生显著的影响,因此要求评估小组成员熟悉CMM。 前现场活动:前现场活动实际上也是在现场完成的,只不过更多的是在正式评估开始前要完成的工作,一般是在预评估最后的时候完
19、成,主要包括识别评估范围、制定评估计划、填写成熟度问卷等。其中识别评估范围非常重要,这项工作主要分为2个方面:一是在公司的什么范围进行这次评估,是整个公司还是其中某些部门?二是这次评估评的是CMM几级?要知道,如果是2级的,那么对于3级和更高级别的KPA根本不予考虑。不存在这种可能:我们先在整个公司范围进行评估,如果发现某些部门做得不好,就从评估范围中剔除,退一步可以评几个部门的。在正式评估的时候,评估范围是不允许调整的。成熟度问卷是SEI提供的标准问卷,但它并不被看成是一个重要的工作,因为该问卷基本上就是把模型中的要求用陈述句换成了一般疑问句,几乎所有答卷人都能够判断出来填“是”会比其他的选
20、项要好,于是这份问卷更多地变成了一种形式。唯一被认为有价值的东西是问卷中每个问题后面可能填写的补充或注释。 现场活动:现场活动遵循SEI要求的标准流程执行,如图2所示: 其中,重点是访谈和评级过程。访谈是整个评估工作中非常重要的一个数据来源。参与访谈的人员一般分为3种类型:项目经理、中(高)层经理以及功能区域代表。中(高)层经理直接听取项目经理汇报项目情况,他们可以在项目组出现无法解决的问题时负责协调和处理。功能区域代表是具体的实践人员的代表,包括系统分析设计人员、编码人员、测试人员、配置管理员以及质量保证人员等。对于项目经理,需要进行单独的访谈,会根据评估要考察KPA一一提出问题,每个人平均
21、约有12个小时的时间。中(高)层经理和功能区域代表分成组来参加访谈,回答相应的问题。评估小组的成员在访谈过程中会做笔记,参加访谈的人员基本上就是根据自己亲身经历如实介绍情况即可,因此回答是没有标准答案的。不过很多参加访谈的人员会感到非常紧张,特别是单独接受提问的项目经理们,曾经有的项目经理正在回答一个问题的时候,说着说着突然停下来问:“你刚才问的问题是什么来着?”其实大可不必,因为评估小组会严守保密性的原则,在评估工作结束后还会销毁所有的纪录。每天访谈工作结束之后,评估小组整理和分析,和CMM的每条关键实践分别对应,写出结论(这样的结论性语句称为“观察项”)。在所有的评估活动中,大家最关心的恐
22、怕就是评估的结果是如何确定的了。其实有了评估时前面数天的成果,最终的结论是很容易做出的。评估小组根据作出的一条条观察项,逐条检查用词是否合理恰当,是否得到了多个数据来源的反复确证,是否有不同观察项之间存在矛盾的情况。如果这些观察项都得到了检查并被确认无误,评估小组会对找到的不足之处(发现的弱点)进行分析,看是否对KPA下面的目标实现有显著的影响。评级的思路可以参见图3: 在CMM中,每个KPA下面都有若干个目标,并有数条关键实践与目标对应。如果一个目标对应的关键实践没有明显的弱点阻碍该目标的实现,则认为该目标得到了满足。如果一个关键过程区域下面的所有目标都满足了,则该KPA也就是满足的。当某个
23、成熟度级别之下所有的KPA都是满足的,则被评估的公司成熟度级别就是此级别。这句话必须要正确的理解:一方面,如果一家公司希望成为CMM 3级的组织,则必须在评估中把2级和3级包含的所有关键过程区域都做到满足才能实现这一目标。另外,即便某家公司已经在正式评估中达到了2级的要求,一段时间后该公司希望进行3级的评估,2级的内容同样要在评估中检查。另一方面,举个极端的例子来说,如果一家公司做3级的评估,评估结果是3级的所有KPA均得到了满足,但2级中如果有不满足的KPA,则该公司的成熟度级别为1级。虽然这情况几乎不可能出现,因为如果该公司2级有做得不好的KPA,3级的KPA几乎不可能全都做得很好。图4是
24、比较常见的一种情况,因为2级中有没有做好的KPA,虽然是做3级的评估,但结果是1级: 预评估与正式评估的区别:参照上期图2,预评估(即迷你评估)主要的区别在从第六步之后的内容简化成了一步:预评估结果展示。预评估通常作4天左右,检查的样本数据会比正式评估时少一些。还有一点非常重要的区别是:预评估时不评级,结果中不会提及当前组织的CMM成熟度级别的情况,但对于所有KPA下的目标,都会给出一个1-10分之间的分数。不同的分值代表的意思是: 1-3分:不满足 4-6分:部分满足 7分:基本满足,但有少许不足 8分:满足 9分:非常出色 10分:世界级的实践,非常完美 如果所有被评的KPA的目标都是7分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CMM 软件 过程 改进 常见问题 解答
限制150内