| 软件组织有关CMM的常见问题与回答
(1)CMM的起源
为了保证软件产品的质量,80年代中期,美国联邦政府提出对软件承包商的软件开发能力进行评估的要求。为了满足这个要求,美国卡内基-梅隆大学软件工程研究所
(CMU/SEI) 于1987年研究发布了软件过程成熟度框架,并提供了软件过程评估和软件能力评价两种评估方法和软件成熟度提问单。1991年,SEI将软件过程成熟度框架进化为软件能力成熟度模型(Capability
Maturity Model For Software,简称SW-CMM),并发布了最早的SW-CMM 1.0版。
CMM公布之后,在美国、印度等地得到了广泛的应用,由于CMM评估对软件过程改进有明显的促进作用,这使SEI看到了CMM评估的巨大商业前景,因此从1990年以后,SEI把基于CMM的评估作为商业行为推向市场。这些年来,接受CMM评估的软件组织和企业已从美国国防项目承包领域扩散到普通经济领域和其他国家与地区。
现在,CMM已成为国际上最流行、最实用的软件生产过程标准和软件企业成熟度等级认证标准。它被喻为打入国际市场的"通行证",特别是美国政府项目或大型项目,客户肯定要考察承包商的CMM等级水平。通过CMM认证的软件开发机构,在软件产业界将拥有较高的知名度和信誉保障,在国际市场的竞争中也将拥有较大的优势。
CMM不仅帮助软件企业提高质量、降低成本、减少风险,更是一个国家软件工业走向成熟的重要标志。
(2)CMM简要发展史
1984年,美国联邦政府资助建立卡耐基梅隆大学软件工程研究所(CMU/SEI),为政府提供软件工程实践的描述,以改进基于软件的系统的质量。
1987年9月软件工程研究所(SEI)出版了一本简要介绍CMM框架结构程序的书以及部分提问单,这些提问单一方面用于评估软件供应商的能力,另一方面用于改善软件开发的质量。这就是最早用于探索软件过程成熟度的工具。
1987-1991年软件工程研究所组织了一系列公开的调查,在咨询了百家软件公司300位代表后,于1991年推出了CMM1.0版。这也是目前世界上比较流行和通用的CMM版本。
CMM1.0版合用两年之后,1992年4月,SEI举行了CMM一个的研讨会,参加研讨会的有大约200名富有经验的软件专家。SEI在广泛听取他们的意见之后,又于1993年推出
CMM1.1版。
随着人们对CMM研究的不断深入,其他学科也结合本系统的特点,陆续推出了自己的CMM模型。例如,人力资源能力成熟度模型、系统工程能力成熟度模型等等:
(1) SW-CMM (Software CMM): 软件CMM
(2) SE-CMM (System Engineering CMM): 系统工程CMM
(3) SA-CMM (Software Acquisition CMM): 软件获取CMM
(4) IPT-CMM (Integrated Product Team CMM): 集成产品群组CMM
(5) P-CMM (People CMM): 人力资源能力成熟度模型
为了以示区别,国内外很多资料把CMM叫做SW-CMM。按照SEI原来的计划,CMM的改进版本2.0应该在1997年11月完成,然后在取得版本2.0得实践反馈意见之后,在1999年完成准CMM2.0版本。但是,美国国防部办公室要求SEI推迟发布CMM2.0版本,而要先完成一个更为紧迫的项目CMMI。
CMMI(Capability Maturity Model Integration)即能力成熟度模型集成,这也是美国国防部的一个设想,他们想把现在所有的以及将被发展出来的各种能力成熟度模型,集成到一个框架中去。这个框架有两个功能,第一,软件获取方法的改革;第二,建立一种从集成产品与过程发展的角度出发、包含健全的系统开发原则的过程改进。就软件而言,CMMI是SW-CMM的修订本。它兼收了SW-CMM
2.0版C稿草案和SPA中更合理、更科学和更周密的优点。SEI在发表CMMI-SE/SW 1.0版时,宣布大约用两年的时间完成从CMM到CMMI的过渡。
CMMI项目更为工业界和政府部门提供了一个集成的产品集,其主要目的是消除不同模型之间的不一致和重复,降低基于模型改善的成本。CMMI将以更加系统和一致的框架来指导组织改善软件过程,提高产品和服务的开发、获取和维护能力。
(3)SW-CMM模型介绍
SW-CMM分为五个等级,十八个关键过程区域。
1.初始级 软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
2.可重复级 建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功。
- 需求管理
- 软件项目策划
- 软件项目跟踪与监控
- 软件子合同管理
- 软件质量保证
- 软件配置管理
3.已定义级 已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件。
- 组织过程定义
- 组织过程焦点
- 培训大纲
- 集成软件管理
- 软件产品工程
- 组间协调
- 同行评审
4.定量管理级 收集对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。
- 定量过程管理
- 软件质量管理
5.优化级 过程的量化反馈和先进的新思想、新技术促使过程不断改进。
- 缺陷预防
- 技术变更管理
- 过程变更管理
每个等级都被分解为三个层次加以定义,这三个层次是关键过程区域、共同特征和关键实践。每个等级都有几个关键过程区域组成,这几个关键过程域共同形成一种软件过程能力。每个关键过程域,都有一些特定的目标,通过相应的关键实践来实现这些目标。每个关键过程域按五个共同特征加以组织。当一个关键过程域的所有关键实践都按要求得到实施,就能实现该关键过程域的目标。
(4)CMM的作用
SW-CMM的主要用途有三个方面:
1) 软件过程评估
借助SW-CMM分析软件组织当前软件过程的状态,找出其强处和弱点,这点无论软件采购单位,还是软件产品开发单位都可使用。
2) 软件过程改进
根据评估结果,确定当前软件过程的弱点,按照SW-CMM能力等级的顺序,原则上从低级(2级)逐级向更高级(3、4、5级)发展,制定软件过程改进的策略。这一点已成为当前CMM的最主要用途,任何软件开发单位都可使用。需要特别注意的是CMM的每一个等级都是其更高等级的基础,基础条件不具备,就不可能达到更高等级。
3) 软件能力评价
根据评估结果,确定能力级别。只有当被评估的单位其被评估的所有项目均已实现某能力等级及其以下各等级所有关键过程区域时,才能认为该开发单位已经达到了该能力等级。
在通常的商业行为中,软件采购单位为了减少软件采购的风险(包括资金、周期、特别是产品质量方面的风险),需要在招标时对投标者的软件过程能力进行评价。
目前,在国内的软件合同的竞标过程中,投标企业是否具备CMM等级和等级水平已经成为重要的参考资质。
(5)CMM给企业带来的好处
简而言之,CMM可以:
1) 作为一个参照模型与公司现有的模型比较,了解两者的差距;
2) 规范软件开发过程及其管理;
3) 帮助企业进行内部的过程改进,这是CMM最有特色的地方。软件过程的改进和软件过程能力的提高可以提高产品质量、控制成本、提高劳动生产率;
4) 增加企业的国际竞争力
5) 可以降低软件开发风险。
据说美国军方在采购软件时,其合同金额与软件企业自身成熟度等级有着密切相关,即CMM等级越高,获得合同的金额越大。目前,国内的一些企业受到美国企业的询单时也通常会被问及企业的成熟度状况如何。这表明CMM已经成为企业管理水平和产品质量的象征。因此,CMM有助于企业建立自身和品牌的良好形象,在企业营销上也具有良好的商业价值。
(6)国外CMM的认证情况及鼓励政策
到目前为止,全球已有近万家软件开发机构通过CMM评估,其中绝大多数还处在二级;达到三级的只占17%,包括美国大多数著名软件开发公司,达到四级或五级的大约七八十家。
美国作为CMM的发源地,很早就开始了对软件项目的研究。由于CMM起源于美国国防部,所以在美国最早通过CMM的都是著名的军工企业如洛克希德马丁公司、波音公司航天飞机部门等。从1991年CMM1.1发布后,美国软件产业广泛采用CMM评估改进软件企业的软件过程和软件能力。现在,CMM在北美早已成为软件行业过程改进和能力评价的通用标准。
在整个欧洲,CMM的领先机构为英国路透集团,它拥有14名主任评估师(全世界仅有300多名), 是世界上主任评估师最多的企业。它甚至现在就已经有了4名CMM-I主任评估师。
路透在全球拥有近4000人的软件研发队伍,在各地的大多数软件中心都通过了CMM三级, 其中在泰国的研发中心将于明年上半年通过CMM五级。
目前,欧洲的主要软件公司都在关注和正在实施CMM,尤其是在以出口软件为主导的国家如爱尔兰。
印度软件产值保持每年平均50%的增长速度,其中很大部分是由软件产品出口实现的。 印度取得了这样好的成绩,关键在于许多软件公司长期以来坚持对软件过程进行改进和对生产过程的质量控制。在遵循ISO9001标准的同时,印度的软件企业是最多、最早进行CMM评估实践的。
最新的调查表明,全球70多家CMM四-五级公司中,印度占了大部分。通过CMM评估,不仅大幅度提高了印度软件企业的软件开发能力,而且提高了软件产品的质量,保证了对美国和欧洲的软件出口。
(7)国内CMM的认证情况及鼓励政策
目前国内实施CMM的企业主要集中在北京和广东(深圳、珠海、广州三地)。其他软件产业较发达的各个省会城市的主要软件公司都在实施或考虑实施CMM。
目前,国内通过CMM 的企业目前已近二十家。
国内的相关鼓励政策如下:
国务院18号文件(国发[2000]18号)中相关政策条款
第五章 出口政策
第十七条 鼓励软件出口型企业通过GB/T19000-ISO9000系列质量保证体系认证和CMM(能力成熟度模型)认证。其认证费用通过中央外贸发展基金适当予以支持。
(8)CMM的投入分析
(a)资金投入
软件组织在实施CMM中的资金投入(即合同报价)包括以下费用:
- 主任评估师劳务费;
- 主任评估师国际差旅、食宿费用;
- 国内专家咨询费用;
- 向SEI购买评估包的费用;
- 工作成本(外联、印刷、交通等)
- 认证机构目标利润
- 合同金额的国内应纳税金等
(b)人力投入
同样,软件组织在实施CMM的人力投入同样取决于上述多种因素
(9)CMM产出分析
根据CMU/SEI的统计, 软件组织在引用实施CMM的投入产出比为1:4-1: 8.8 平均为1:5。仅从这一点上看,
CMM本身就是一种高费效比的投资。
美国宇航局的一份资料表明,随着某机构软件过程的改进,软件开发周期缩短38%;典型任务成本从490人/月降为210人/月,即降低55%;产品可靠性明显提高,平均每千行代码所含差错数从4.5个降为1个。
国外著名企业如路透集团在调查其实施CMM的软件组织后认为: 组织的失误率大幅降低,且管理费用就下降了20%。路透集团全球范围内总共有三千多个软件开发人员,在过去的四年当中花了三亿个人时用于软件过程改进,总体说来总共节约了百分之十左右的成本。摩托罗拉总裁在总结自身企业实施CMM的受益时说:“对CMM每一个美金的投入都获得了十倍的回报。”
|