技术开发 频道

CMM综述

    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不是为了满足其他公司的要求,而是为了让企业更好地发展,为企业进一步扩大规模打下坚实的基础。如果企业只是为了获得一纸证书而通过CMM,那么就已经本末倒置了,对企业的长久发展反而有害。试想如果企业的态度不够端正,即使通过CMM认证,企业又怎么能够保证它在以后的操作过程当中继续坚持CMM规范呢?CMM只是一个让企业更好发展的规范,不应该成为企业炒作自己的工具,企业需要的是优化自己的管理、提高产品的质量,而非一张CMM证书。

    CMM不是功能较多的,它的成功与否,与一个组织内部有关人员的积极参与和创造性活动是密不可分的,而且CMM并未提供实现有关子过程域所需要的具体知识和技能。在国内要想取得过程改进成功,必须做好以下的几点:软件过程改进必须有高级主管的支持与委托,并积极地管理过程改进的进展;中层管理的积极支持;责任分明,过程改进小组的威望高;基层的支持与参与极端重要;利用定量的可观察数据,尽快使过程改进成果可见,从而激励参与者的兴趣;将实施CMM与实施PSP和TSP有机地结合起来;为企业的商业利益服务,并要求同时相符的企业文化变革。

    应该看到,过程改善工作必然具有一切过程所具有的固有特征,即需要循序渐进,不能一蹴而就需要持续改善,不能停滞不前;需要联系实际,不能照本宣读需要适应变革,不能凝固不变。将CMM/PSP/TSP引人软件企业最有效的途径首先要对单位主管和主要开发人员进行系统的培训。另外一个有效的途径是自顶向下的课程培训,即从高层主管依次普及到下面的工程师。培训包括最基本的软件工程和CMM培训知识;专业领域知识等方面的培训;软件过程方面的培训。不过强调一点,我们必须根据自身的实际制定可行的方案。不深入研究就照搬别的企业的模式是很难起到提高软件产品质量水平的真正目的的。

    CMM模型划分为5个级别,共计18个关键过程域,52个目标,300多个关键实践。每一个CMM等级的评估周期(从准备到完成)约需12-30个月。此期间应抽调企业中有管理能力、组织能力和软件开发能力的骨干人员,成立专门的CMM实施领导小组或专门的机构。同时设立软件工程过程组、软件工程组、系统工程组、系统测试组、需求管理组、软件项目计划组、软件项目跟踪与监督、软件配置管理组、软件质量保证组、培训组。各个小组完成自己的任务同时协调其他小组的工作。然后制定和完善软件过程, 按照CMM规范评估这个过程。CMM正式评估由CMU/SEI授权的主任评估师领导一个评审小组进行,评估过程包括员工培训、问卷调查和统计、文档审查、数据分析、与企业的高层领导讨论和撰写评估报告等,评估结束时由主任评估师签字生效。此后最关键的就是根据评估结果改进软件过程,使CMM评估对于软件过程改进所应具有的作用得到最好的发挥。

    现在国内软件产业的发展可以说已经具有一定规模了,但除了北大方正、东大阿尔派、用友等大企业外,做软件工程项目更多的是一些规模在数十人左右的中小企业, 目前处于CMM的初级阶段,没有基础和经验。也许有人会问,像这样一些人力物力资源匮乏的企业,如何进行软件开发项目的管理呢?我建议这些中小企业可以以CMM为框架,先从PSP做起,然后在些基础上逐渐过渡到TSP,以保证CMM/PSP/TSP确实在企业中生根开花。总之,我们必须从软件过程、过程工程的角度来看待CMM的发展,从经济学的观点来分析这个过程的价值。我相信在实施CMM/PSP/TSP的过程中,只要坚持改善软件工程的管理,并在实践中注意总结适合自身的经验,一定能取得很好的效果。

0
相关文章