的期限范围内,不断生产并交付高质量的产品。
图三 CMM、PSP和TSP框架图
CMM是过程改善的第一步,它提供了评价组织的能力、识别优先改善需求和追踪改善进展的管理方式。企业只有开始CMM改善后,才能接受需要规划的事实,认识到质量的重要性,才能注重对员工经常进行培训,合理分配项目人员,并且建立起有效的项目小组。然而,它实现的成功与否与组织内部有关人员的积极参加和创造性活动密不可分。
PSP能够指导软件工程师如何保证自己的工作质量,估计和规划自身的工作,度量和追踪个人的表现,管理自身的软件过程和产品质量。经过PSP学习和实践的正规训练,软件工程师们能够在他们参与的项目工作之中充分运用PSP,从而有助于CMM目标的实现。
TSP结合了CMM的管理方法和PSP的工程技能,通过告诉软件工程师如何将个体过程结合进小组软件过程,并将后者与 组织进而整个管理系统相联系;通过告诉管理层如何支持和授权项目小组,坚持高质量的工作,并且依据数据进行项 目的管理,向组织展示如何应用CMM的原则和PSP的技能去生产高质量的产品。
总之,单纯实施CMM,永远不能真正做到能力成熟度的升级,只有将实施CMM与实施PSP和TSP有机地结合起来,才能发挥最大的效力。因此,软件过程框架应该是CMM/PSP/TSP的有机集成。
CMM与ISO 9001的比较
前面提到软件过程的三个流派:CMU-SEI的CMM/PSP/TSP;ISO 9000质量标准体系;ISO/IEC 15504(SPICE)。这里主要比较一下CMM和ISO 9000质量标准体系中的9001的异同。
ISO 9000族国际标准是在总结了英国的国家标准基础之上产生的,因此,欧洲通过ISO 9000认证的企业数量最多,约占全世界的一半以上。受此影响,相当多的欧洲软件企业选择了ISO 9001认证。
在基本原理方面,ISO 9001和CMM都十分关注软件产品质量和过程改进。尤其是ISO 9000:2000版标准增加持续改进、质量目标的量化等方面的要求后,在基本思路上和CMM更加接近。它们之间的主要的差别是状态上的差别。ISO 9001侧重于”机构保证在设计、开发、生产、安装及服务过程中与指定的要求一致”。而CMM侧重于”支持一个机构评估及改进他们的系统的工程能力”及”指出机构选择的模型的不足之处”。
CMM和ISO 9001阐述了一个机构应该将他们如何做的观点写下来,然后去做,最后检查他们是否按照他们说的去做了。ISO 9001所关注意的是确保合格的人员所作的过程记录是有效的,并且开发生产出满足质量要求的产品。CMM在能力层次概念之间切开,作一件事情是第1级层次的概念,写下所做的事情是第2级层次的概念,有一定组织水平的写作是第三级层次的概念,等等。SE-CMM同样衡量管理能力,如第四级层次,连续处理问题的能力,第五级层次的概念。
这两个标准都涉及了产品的开发和产品的质量,但CMM在产品的设计和开发的细节作了较多要求,而ISO 9001在产品的开发过程和产品本身的质量细节作了较多要求。CMM 建立了系统工程能力模型第三级模型,而ISO 9001则无此内容。CMM没有对产品存储设备的测试作出要求,而ISO 9001则有此要求。
ISO 9001要求与质量管理体系相关的所有工作人员的经过授权并签字的质量记录(见条款4.1.2.1)。它还要求足够的资源,包括提供必要的员工培训等(见条款4.1.2.2)。第四节要求对机构的每个过程都要有记录。这是SE-CMM第2级的基本要求。从ISO 9001的角度来看SE-CMM,至少SE-CMM的第二级及以上级别才能和ISO 9001相提并论。
由以上可以得出ISO 9001和CMM既有区别又相互联系,两者不可简单的互相替代;取得ISO 9001认证并不意味着完全满足CMM某个等级的要求 ;取得CMM第2级(或第3级)不能笼统的谈可以满足ISO 9001的要求 。
CMM在中国的现状
中国生产力促进协会、北航SEI、中科院研究SEI等科研机构已于近几年在北京、上海、广州和深圳等地先后举办过多次报告会和研讨会,组织过课程学习和应用实验,开展了软件过程方面的研究与开发工作,并发表了多篇的研究成果和学术论文,在软件质量保障平台支撑环境也取得了一定的成果。
近两年来,CMM在我国获得了各界越来越多关注,业界有过多次关于CMM的讨论,2000年6月国务院颁发的《鼓励软件产业和集成电路产业发展的若干政策》对中国软件企业申请CMM认证给予了积极的支持和推动作用,第17条规定”对软件出口型企业CMM认证费用予以适当支持。”2000年中国村电脑节上还有CMM专题论坛,吸引了众多业内人士。鼎新、东大阿尔派、联想、方正、金蝶、用友、浪潮、创智、华为、东大阿尔派等大型集团或企业等都从1997—2000年起批企业都在进行研究、实验或实施预评估。其中鼎新公司从1997年着手进行CMM认证工作。1999年7月通过第三方认证机构的CMM2认证。东大阿尔派公司于2000年10月通过第三方认证机构的CMM2认证。2001年1月,联想软件经过英国路透集团的严格评估,顺利通过CMM2认证。2001年6月26日,沈阳东软软件股份有限公司(原沈阳东大阿尔派软件股份有限公司)正式通过了CMM3级认证,成为中国首家通过CMM3级的软件企业。
总体上讲,国内对软件过程理论的讨论与实践正在展开,目标是使软件的质量管理和控制达到国际先进水平,中国的软件产业获得可持续发展的能力。专家分析,在未来两三年内,国内软件业势必将出现实施CMM的高潮。从这一趋势看,中国的软件企业已经开始走上标准化、规范化、国际化的发展道路,中国软件业已经面临一个整体突破的时代。
但是我们应该看到目前国内对软件管理工程存在的最大问题是认识不足。管理实际上是一把手工程,需要高层管理人员的足够重视。而且软件过程的重大修改也必须由高层管理部门启动,这是软件过程改善能否进行到底的关键。此外,软件过程的改善还有待于全体有关人员的积极参与。
除了要认识到过程改善工作是一把手工程这个关键因素外,还应认识到软件过程成熟度的升级本身就是一个过程,且有一个生命周期。过程改善工作需要循序渐进,不能一蹴而就,需要持续改善,不能停滞不前;需要联系实际,不能照本宣科;需要适应变革,不能凝固不变。一个有效的途径是自顶向下的课程培训,即从高层主管依次普及到下面的工程师。
CMM实施的思考
上面重点介绍了CMM,但是提醒注意的是,并不是实施了CMM,软件项目的质量就能有所保障。CMM是一种资质认证,它可以证明一个软件企业对整个软件开发过程的控制能力。按照CMM的思想进行管理与通过CMM认证并不能划等号。CMM认证并不仅仅是在评估软件企业的生产能力,整个评估过程同时还在帮助企业完善已经按照CMM建立的科学工作流程,发现企业在软件质量、生产进度以及成本控制等方面可能存在的问题,并且及时予以纠正。认证的过程是纠正企业偏差的过程,一定不能把CMM认证当作一种考试、一种文凭,而是要看成一项有利于企业今后发展的投资,借此来改变中国软件业长久以来形成的积弊。
实施CMM对软件企业的发展起着至关重要的作用,CMM过程本身就是对软件企业发展历程的一个完整而准确的描述,企业通过实施CMM,可以更好地规范软件生产和管理流程,使企业组织规范化。企业通过CMM不是为了满