UML软件工程组织

Motorola(中国)公司完成 CMM4~5级的案例分析

 

作者:杨一平 来源:现代软件工程

 

Motorola GTSS China COE–摩托罗拉亚太区电信运营方案部应用研发中心(为方便叙述,在本章简称研发中心)是Motorola 在中国的一个分支机构,主要从事通信网络解决方案的软件开发与测试。本章将要介绍的内容就是研发中心实施CMM 进行软件过程改进的相关情况。其中主要介绍了该中心进行软件过程改进的背景、动机、基础,以及CMM4~5 级的实现过程。在本章的写作过程中,得到了研发中心的大力支持,在此一并表示感谢。另外,需要说明的一点是,原材料的内容很多,实施的方案也比较详细。但考虑到企业内部的商业机密问题,经过作者反复考虑,最后,不得不将其中很多重要的内容舍弃。在此敬请读者原谅。

背景

任何进行软件过程改进的组织都必然具有一定的背景,研发中心实施CMM 自然也不例外。对相关背景的了解将有助于对具体实施情况的理解,正是出于这一目的,本节将对研发中心实施CMM 的一些背景资料进行简要的介绍,其中主要包括Motorola 公司及研发中心的主要情况、研发中心实施CMM 的动机和历程以及一些特殊的背景。

Motorola 及研发中心简介

Motorola 公司是全球提供集成通信和嵌入式电子解决方案的领头企业,始建于1928 年。在20 世纪四、五十年代迅速发展;到了六十年代,成为一家跨国公司。Motorola 的业务范围涉及无线通信、半导体、汽车电子、宽带、网络和互联网接入产品等,在移动电话、寻呼机、双向无线电、商用GSM 和CDMA 等技术方面都处于国际领先地位。除了上述的各种业务之外,Motorola 在软件开发方面也是做的比较成功的,它设立了许多专门从事软件开发的分支机构,本章将要介绍的研发中心便是其中的一个。

Motorola 素以对自身产品质量的苛刻要求和对提高客户满意度的不断追求而著称于业界,在软件开发方面也是如此。为了更好的对软件能力进行评估,Motorola 专门开发了自己的评估标准QSR SS10,即软件质量子系统评审。QSR SS10 在SEI CMM 的18 个关键过程域的基础上又增加了摩托罗拉自己定义的两个关键过程域,除了对SEI CMM 所要求的各项内容进行评审之外,还要严格地评估被评审组织的软件开发过程对其产品质量、生产效率、客户满意度、信息安全等方面的影响,是一种既重过程又重结果的评审。评审师们根据被评审组织的过程定义、实践和相应的效果对每个关键过程域目标的满足程度进行评审,评审的结果可以分为不满足、基本满足、满足、出色和世界级等几个级别。其中出色和世界级是非常难以达到的。

Motorola GTSS China COE–摩托罗拉亚太区电信运营方案部应用研发中心创立于1995年10 月,总部位于北京。起初只为中国顾客务,其后业务范围扩展至整个亚太地区;1999年又在成都建立了分部。研发中心的主要业务范围是通信网络解决方案的软件开发与测试。研发中心非常重视软件产品的质量,在开发过程管理方面投入了大量的人力和物力,全中心有20%左右的成员从事全、兼职的软件过程定义和提高方面的工作。研发中心自行开发的大型管理信息系统SEMIS 集成了项目管理、软件评审、错误分类和统计、培训管理、质量保证等多项功能,实现了软件开发过程中各类数据的实时收集、处理和分析,从而为整个组织和各项目组进行基于数据的科学决策和管理提供了强有力的工具。

研发中心继1999 年底通过CMM4 级认证之后,又于2000 年12 月一举通过CMM5 级认证及Motorola 的QSR SS10 的最高级评审,并且在软件配置管理方面达到了“世界级”,在项目计划、项目监控和组织过程定义方面也被评为“出色”。这表明研发中心已经具备了可以开发高质量软件产品的高效运行过程。

为什么要实施CMM 进行软件过程改进

企业的最终目的是把自己的产品或服务提供给客户,让客户满意。只有做到这一点,才能源源不断地创造利润。对此,以下几点应该引起足够的重视:

企业的使命是为客户创造价值,因而只有努力地为客户创造价值,企业才能获得成功。

能为客户带来价值的是企业的各种作业,而作业是由一系列能为客户创造价值的活动组成的,每项活动都由员工完成。

优质的产品和服务、杰出的人才和合适的战略对企业来说必不可少,但并不能保证企业的成功,因为产品、服务、人才和战略只有存在于能为客户带来价值的各种作业之中,才能对企业的成功有所贡献。

优异的作业绩效是通过科学的作业设计、适当的人员配置和良好的工作环境的共同作用实现的。科学的作业设计能够快速应对客户的需求变化;适当的人员组合能获得集体智慧和战斗力;良好的环境则能激发员工的工作热情,促使员工不断超越自我。

在一个软件组织中,所谓的作业可以对应为软件过程,由此可见软件过程的重要性。软件过程改进的目的正是帮助软件企业对软件过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。其所依据的想法是:只要集中精力持续努力去建立有效的软件过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件生产中的困难。

CMM 为软件企业的过程能力提供了一个阶梯式的改进框架。它基于过去所有软件过程改进的成果,吸取了以往软件工程的经验教训,提供了一个基于过程改进的框架。它指明了一个软件组织在软件开发方面需要管理哪些工作、各种工作之间的关系,以及应该以怎样的先后次序一步步地做好这些工作从而使软件组织走向成熟。

正是基于以上考虑,研发中心选择了实施CMM 进行软件过程改进,并取得了令人满意的效果。

研发中心软件过程改进的历程

软件过程改进是一个非常复杂的过程,需要不断的进行提高和完善。研发中心在这方面开展了大量的工作,下面就来看一下其各阶段所从事的主要活动:

1996 年,研发中心开始着手了解和熟悉Motorola 电信运营方案部的软件开发过程定义、基准软件过程和精细过程/质量工程。

1997 年,研发中心成立了专职的过程与品质团队,专门负责协调软件开发过程的定义和监督过程的实施;开始定义研发中心的软件开发过程;开发了培训管理工具。

1998 年,研发中心建立起一套标准软件过程;投资建立起Rational 公司的ClearCase环境;邀请Motorola 资深软件工程专家Dean Fritz 先生来中心实施了CMM 的初步评审;启动软件过程改进活动。

1999 年,研发中心完成SPI 计划;开发了同级复审数据管理、测试管理等工具;集成了Rational 公司的ClearQuest 和ClearCase 环境;到年底,通了SEI CMM4 级认证。

2000 年,研发中心建立起一套完整的软件开发过程定义;开发了项目信息管理和TimeSheet 等管理工具;集成了所有的管理工具,建立了统一的SEMIS(软件工程管理信息系统);一举通过SEI CMM 的5 级认证和Motorola 的QSR SS10 最高级评审。

研发中心实施CMM 的特殊背景

通过以上叙述,相信读者对研发中心实施CMM 的相关背景已经有了一个大致的了解。但细心的读者也许会发现,在介绍研发中心软件过程改进的历程时,只提到了其通过CMM4~5 级认证,而没有2、3 级认证的相关情况。是不是因为在写作过程中篇幅原因而故意略去呢?不是,而是因为研发中心根本没有进行CMM2~3 级的认证。众所周知,CMM 分为五个等级,其中每一个等级都是下一级别的必要基础。所以,跨级实现CMM 往往是不成功的。那么,研发中心为什么可以直接实现CMM4 级呢?这正涉及到研发中心实施CMM 的一个特殊背景。

前文提到,研发中心是Motorola 公司在中国的一个分支机构。而Motorola 公司总部开发了软件过程改进的相关规程,这些规程主要定义了相当于CMM2~3 级的实施标准。研发中心在实施CMM4 级之前,便是从公司总部引入了这些标准,并且依靠这些标准,在项目开发的过程中以及在整个组织级别上,完成相关的活动,实现必要的目标,逐步改进了组织的软件过程能力。其实,在实施CMM4 级之前,虽然研发中心没有经过CMM3 级认证,但实际上已经达到了3 级的水平。有这样的基础,在实施CMM4 级时,才会比较顺利。这也就是为什么研发中心能够跨级实现CMM 的原因所在。

研发中心实施CMM4~5 级的基础环境

软件过程改进是一个逐步完善的过程,软件过程能力的提高更不是一蹴而就的。研发中心的CMM 认证虽然是从4 级开始的,但这并不代表研发中心一开始就直接实施CMM4 级规定的相关工作,而是经过了充分的准备,进行了大量的软件过程改进的工作,为正式实施CMM 打下了良好的基础。本节将对研发中心的这一基础环境进行简要的介绍,并据此提出中国企业可以借鉴的一些经验。

基础环境建立过程简述

研发中心实施CMM 的基础工作主要是由软件工程过程组进行的。在初始阶段,小组从公司总部引进相关的规程、技术等文档和资料,并根据研发中心实际情况,对这些文档和技术资料进行审核。其中合适的部分直接应用于研发中心实际的软件改过程进活动中;对有些不适合研发中心实际情况的地方,软件工程过程组先进行修改,然后再加以应用。对引进的过程改进方法的实际应用是一个渐进的、持续的过程。首先要对员工进行相关知识的培训,使其了解过程改进和CMM 的主要思想以及应该如何实施。其次,是为过程改进活动建立执行机构,并确定相关人员的职责。然后,便可以将经过审核的各种规程、技术等应用于具体的软件项目。并且,在此过程中不断检验实施的效果,总结经验,吸取教训,最终形成组织级的过程改进规范。

因为研发中心从Motorola 总部引进的是CMM3 级水平的过程改进方法,所以,在根据这些方法完成了对组织的软件过程改造之后,研发中心已经实施了CMM3 级要求的相关工作,其软件过程能力也达到了CMM3 级所规定的水平。虽然研发中心没有进行CMM3 级的相关认证,但可以说,研发中心实施CMM4 级以及后来的5 级,是从3 级起步的。

项目管理中各项活动的实施

研发中心根据由Motorola 总部引入的实施CMM 的一系列规程、方法进行过程改进,形成了自己进一步实施CMM 的基础环境。具体的活动有以下的一些方面。

(1)针对CMM 的4~5 级的标准开展培训工作(培训的具体步骤略)。

(2)项目管理中各项活动实施的安排(略)。

其中主要内容有:定义了自己的标准软件过程,称为软件生产过程(Software ProductionProcess,SPP),用来指导研发中心的日常软件开发活动。在项目开发的过程中,重视项目的跟踪,它可以使管理人员及时掌握项目开发的实际情况。如果项目的执行与项目计划出现偏差,便可以采取相应措施进行协调,以保证项目开发活动的顺利进行。软件开发过程中,研发中心对软件质量保证活动给予了高度的重视,并建立了项目级评审制度。在项目中还实施了检查工作。

研发中心在实施CMM4~5 级的过程中,针对公司的情况做了大量的工作。但由于在具体项目中软件过程的实施涉及到公司的商业机密,所以在这里只能对项目管理中的思路进行简单介绍。

国内软件组织可以借鉴的经验

研发中心建立起相关基础环境之后,直接实施CMM4 级的实例引发我们这样一个思考:我国的软件组织是否可以不经过低级别的CMM 认证而直接进行较高等级的认证?由研发中心的成功经验,我们认为这是可行的。

CMM 作为一种软件过程改进的模型,其目的是提高一个组织的软件过程能力。而进行认证是对组织软件过程能力的一种评价,它使得软件组织更加清楚的认识到自己取得的成绩和存在的不足,以便扬长补短,对软件过程进行改进。可以说,CMM 认证只是一种手段,通现代软件工程技术与CMM 的融合过认证可以使得软件组织对自己的过程能力有更清楚的认识,同时可以得到业界的认可;但不进行认证并不代表组织的过程能力不高。只要完成了CMM 各级别规定的活动,达到了相应的目标,直接通过较高等级的认证是完全有可能的。

另外,我们还注意到,研发中心的基础环境是由Motorola 总部引进相关规程、方法等加以改造而建立起来的。这就给我们这样一个启示:国内的软件组织也可以借鉴其他组织实施CMM 的已有成果,快速的提高自己的软件过程能力。软件过程改进活动有其内在的规律,就一些普遍适用的内容来说,从外部直接引入自然要比自己从头摸索效率更高。即使是那些不能直接使用的部分,对其进行修改、调整,也是相对容易的。但是,应该注意到,Motorola是一家经过长期发展的跨国公司,其内部有着非常成熟的信息传递机制。所以,研发中心从总部引入各种成果时,比较简单,结果也非常成功。而对于企业间的成果引用来说,由于种种原因,可能会遇到许多困难。

对于以上两种设想,下面几点应该引起足够的重视:

一定要循序渐进,逐步完成软件过程的改进工作。虽然我们认为,认证工作可以从较高级别开始,但并不等于低级别的活动不重要。恰恰相反,如果低级别的工作没有做好,进行高级别的各项活动就会非常困难,甚至无法完成,提高软件过程能力也就成为一句空话。

对于引进其他组织已有成果进行软件过程改进的组织来说,切忌生搬硬套。每个组织都有自己特殊的背景,所以对引入的各项内容一定要进行细致地改造,使其适合组织的具体情况。

重视内部评估。通过内部评估,软件组织可以发现自己的不足并改进,向着CMM所要求的目标靠近。这一点对于越级认证的组织来说尤其重要。

 


版权所有:UML软件工程组织