返回首页

中心简介

CMM咨询评估 资质认证 软件评测 硬件评测 工程监理

双软认定

培训服务

 

公告栏

著作权登记  


联想软件:脚踏实地是关键

    与其他行业相比,保证产品的质量对软件企业来说更为艰难,这是因为软件开发过程的透明度很差,难于测量和控制,因此软件企业的管理很大程度上是对软件过程的管理。在实施CMM之前,联想软件事业部作为联想电脑公司的一个重要支持部门,也像国内其他软件企业一样,面临着开发流程不够规范、不能按国际标准运作等问题。如何解决这些问题,是联想电脑公司软件…… 

    抉择:ISO 9001还是CMM

    美国软件工程研究所(SEI)开发的软件过程能力成熟度模型和国际标准化组织开发的ISO 9000标准系列都着眼于质量和过程管理,二者都为了解决同样的问题,但它们的基础并不相同:ISO 9001(ISO 9000系列标准中关于软件开发和维护的部分)确定一个质量体系的最少需求,而CMM模型强调持续的过程改进。

    简单地说,ISO 9001在软件开发中的应用主要体现在以下方面: 

    ● ISO 9001是软件设计、开发、生产、安装和维护时的质量保证参考文件,该标准应用于所有软件产品和满足各种技术需求的软件维护活动,是评价软件质量的首要标准。 
    ● ISO 9000-3是对ISO 9001进行改造后应用到软件开发、供应和维护活动中的指导性文件。 
    ● ISO 9004-2是指导软件维护和服务的质量系统标准。 
    ● ISO 9004-4是近年公布的附加标准,是用来改善软件质量的质量管理系统文件。
 
    ISO 9001与CMM之间的最大不同体现在两个方面:其一,CMM模型明确强调持续的过程改进,而ISO 9001是一套相对“静态的”标准;其二,CMM模型只关注软件,而ISO 9001的适应范围更广,包括硬件、软件和服务。 

    由此我们得出结论:严格遵循ISO 9001的机构并不满足CMM2级的所有关键过程区域,但它满足CMM2级的大部分目标和CMM3级的许多目标。对于软件过程改进应该基于CMM模型还是ISO 9001?简单的回答是一个机构应该同时考虑两者,虽然两者有很大程度的重叠。一方面,市场运作需要获得ISO 9001认证,而解决CMM模型所关注的问题将有助于企业为通过ISO 9001审核做准备;另一方面,处于CMM1级的机构如果解决了ISO 9001所关注的问题,也可能获得ISO 9001认证。 

    2000年9月,在联想软件的半年总结会上,明确提出目标:实施CMM模型,改进软件过程,争取在2001年3月前通过CMM2级认证。目标既定,联想软件的相关部门立刻开始按照CMM模型建立相关的组织机构,包括SEPG(软件过程改进)小组、SQA(质量管理)小组、SCM(软件配置管理)小组和SCCB(软件配置管理委员会),并采用CBA-IPI(CMMsw-Based Appraisal for Internal Process Improvement)方法开始实施CMM。 

    体会:CMM要因人而异 

    实施CMM的最大障碍是什么?我们认为是观念的转变!CMM是一种先进、科学的管理思想,不像解决技术难题,可以找几个技术高手攻关;也不仅仅是管理层的事情,它需要企业或项目组全体人员对此有充分的认识。但是,人都是有惰性的,改变习惯不是一两天能实现的,因此培训成为实施CMM的第一步。 

    1. 高层管理人员 

    为了帮助大家更好地理解CMM,联想软件总经理韩振江亲自出马,寻找各种培训资源。与ISO 9001不同的是,国内并没有CMM评估师,相关的咨询公司也很少,大部分资源都需要从国外找。在公司总裁室的帮助下,我们在2000年10月请来了国外的培训讲师。之所以没有一开始就请评估师培训,总经理室也是费了一番思索:CMM强调人的主动性,它告诉您改进的结果、所依据的原则,但并不告诉您具体怎么做,没有现成的规范文档和细致的流程规范可以照搬。实施CMM,必须根据自己的理解和实际情况,制定规范流程,改进过程。所以,如果没有学习模型、没有实践、没有自己的理解,即使是请到全世界最好的评估师也得不到任何实际的效果,因为评估师不会也不可能帮助软件企业设计建立完全科学的软件过程。 

    2. 软件开发人员 

    开始实施CMM时,开发人员感觉到的工作压力比以往任何时候都大。由于工作流程的改变,导致在一段时间内效率降低。严格实施CMM之后,很大一部分时间要用来写文档,它是研发人员劳动成果的最好记录。规范的文档可以保证开发小组对项目进度的控制,减少了对某个人的依赖,使软件研发过程的上下环节紧密衔接。经过培训的程序员对写文档有一段非常精彩的论述:“我们要填写工作量周报、填写总体设计说明书、还要写详细设计说明书等,这些工作不但锻炼了我们的文笔,而且提高了我们敲汉字的速度,虽然写文档占用了一些编程和研究新技术的时间,但文档写完后,感觉现在要做的工作比以前清晰多了。 CMM让我们由只会写程序的代码工人,上升为除了会写代码还会写文档的真正程序员。” 

    3. 项目经理 

    对项目经理来说,实施CMM无疑是一次提高的机会。软件事业部商用方案部的张磊对此很有感触:“以前我们脑海中或多或少地存在一些不切实际的想法,比如,每次出现工作进度落后于计划的问题时,总是简单地以为好解决,只要增加人员就行了,其实不然,还需要进行周密的计划和分析。再比如,我们常常认为只要有更全面的测试,就能保证软件的质量,这实际上是一个误区,有些软件缺陷仅靠测试是检查不出来的,还需要用过程质量来保证产品质量。通过CMM学习,使我破除了以前许多对软件开发的错误认识,知道了必须按规范去做并不断实践和改进,才能按质、按量、按时地完成项目,同时还学会了如何更科学地安排项目组成员的工作。” 

    成果:科学管理 

    实施CMM后,我们能看到的直接效益有很多:产品质量得到了提高、产品预算得到控制、项目可控性增加、风险降低等。具体来说,最有意义的改进是立项管理和质量控制处与测试室的分离。 

    1. 立项管理 

    联想软件原来的立项工作都是由研发部门完成,而研发部门着重考虑的是技术可行性,对市场、风险、用户需求等因素关注较少。经过学习讨论,大家决定立项由经营支持处牵头来做。首先汇总创意,筛选出有价值的创意,然后交给市场部、研发部进行市场和技术调研;市场部负责市场需求、客户需求、风险、投入产出分析;研发部负责技术调研,确定产品的理念、功能、性能、软硬件平台、特色功能、技术可行性、项目的时间进度及项目角色安排、资源需求分析等。分头调研结束后,由创意者汇总调查情况写出立项申请报告,牵头召开立项评审会,请总经理室成员、相关人员以及联想软件之外的其他相关业务单位参加,评审小组成员数目控制在7~8人。评审过程类似答辩,由创意者主讲半小时,接下来全体与会人员质疑,评审小组讨论并做出最后决定。 

    2. 质量控制与产品测试相对独立 

    过去,联想软件的测试部门与质量控制部门是合在一起的,这种方式严格说来是不规范的。测试属于开发过程的一个环节,而质量控制是工程管理的环节。学习CMM模型之后,我们弄清楚自己原来处于混沌之中,硬把两个不同的工作过程捏在一起,误以为测试是质量控制的关键点,而实际上软件质量来自和体现在整个过程的行为之中。基于这种认识,我们把测试与质量控制处正式分开,但接着又犯了一个错误,把质量控制处划归研发部。事后通过实践,发现这样做限制了质量控制人员的空间,使他们不能很好地完成职责,甚至会造成质量控制人员与研发人员的情绪对立。2000年5月,总经理室作出决定:质量控制处直属于经营管理部,改变其原先与项目组平行的设置,使其能在更高的层次上控制软件质量。 

    谈到实施CMM前后的不同,程序员的话是“要写很多很多的文档”;项目经理感觉“对项目的控制增强了”;而管理人员感到的是“风险降低了”;用户得到的是“质量有保障了。” 

    实施CMM模型并通过CMM2级评估决不是联想软件的最终目的。按老韩的话说是“上了贼船”。 通过评估的确值得庆贺,表明我们的软件工程水平已达到可重复水平,并且某些方面已达到CMM3级水平。但是,通过评估的有效期是18个月,如果接下来不申请更高级别的评估就没有多大意义,所以我们还要持续不断地改进过程,继续准备通过更高级别的评估,最终目的是改进我们的软件过程,为客户提供高质量的软件产品。 

返回

 

建议使用IE4.0及以上版本浏览器(分辨率:800*600)进行浏览
辽宁省信息安全与软件测评认证中心版权所有  ©2001—2004

辽ICP备05009151号  

  与我联系