CMMI on line

做中国最专业的CMMI网站!
欢迎光临 CMMI on line 登录 | 注册 | 帮助
in 搜索

软件企业如何实施CMMI

本主题共有 0 篇回复,最新回复发表于 08-26-2008, 15:20,作者 bytewatch
帖子排序: 上一主题 下一主题
  •  08-26-2008, 15:20 8468

    软件企业如何实施CMMI

    前言

        CMMI(软件过程能力成熟模型)的主要思想很清楚,标准的条例也很明确,但如何达到这种标准的可操作性比较差,可参考的、可借鉴的具体实施步骤比较少。
        国内的绝大部分软件企业目前处于CMMI的初级阶段,没有基础和经验。在实施CMMI的过程中,往往感到迷茫,不知从何处下手。本文讨论软件企业实施CMMI或通过CMMI评估所必须经历的步骤,希望能起到一个抛砖引玉的作用,软件企业实际实施CMMI时,可以根据自身的实际情况和具体要求加以应用。


    1、提高思想认识


        近年来,随着国民经济持续增长,作为高新技术的软件产业虽然发展很快,但和国外同行业相比仍存在很大的差距。究其原因,投资环境、人才和技术固然是制约因素,但我们认为,管理和政策显得更为关键。随着电子信息产业的发展,人们已经逐步认识到,软件是促进我国电子信息产业发展的关键技术。而要发展我国的软件产业,在战略上,必须将软件产业作为我国高新技术产业的龙头和国民经济发展的新增长点,在策略上,必须走软件过程管理专业化的道路。


        CMMI在中国的实施,从整体上看处于起步阶段,很多软件公司对ISO9000了解较多,也有很多公司都通过了ISO9000认证。相对而言,了解CMMI的就不多了。具备一定规模的软件企业,对CMMI非常感兴趣并表示了极大的关注,有部分公司也在积极实施CMMI,但正式推行CMMI需要在人力和经费上增加投入,一般的软件中小企业有一定困难。


        根据全球软件销售额数字分析,今后几年软件和信息服务的市场规模将有一个巨大的发展。然而中国这样的一个大国,软件销售额还不到世界市场的2%。我国软件企业除少数在500人以上外,多数是在50人以下的民营、集体和个人的软件公司。以开发技术和规范化程序来衡量,总体上仍是相当落后的,大多数企业仍为手工作坊式制作,产品缺乏市场竞争力。因此,软件过程管理已成为发展我们软件产业的一个关键性问题。我们希望企业通过使用CMMI模型,一个等级一个等级地去提高自己的软件开发及生产能力,提高企业的整体水平。
        实施CMMI对软件企业的发展起着至关重要的作用,CMMI过程本身就是对软件企业发展历程的一个完整而准确的描述,企业通过实施CMMI,可以更好地规范软件生产和管理流程,使企业组织规范化。而且,只有在国际市场取得成功的产品和企业才具有长久的竞争力和生命力,由于CMMI已获得国际企业和用户的广泛认可,因此必须在软件企业实施CMMI。


    2、进行CMMI培训和咨询工作


        任何一个软件企业要想实施一先进的管理措施,首先应该做的就是理论基础的建设,作为一个过程式管理方法的CMMI,同样也不例外。


        根据CMMI模型的要求,一个项目的开发一定要有章可循,而且要做到有章必循,这两点都离不开培训。培训工作需要投入很大的人力、物力和财力,只有企业的管理人员和软件开发人员对CMMI真正了解和认识了,自觉地按CMMI的方法去进行工作,才能真正实施CMMI咨询,而不是一时应付,做表面文章。


        培训的内容需要精心地准备,主要有两个方面,第一,对所有员工包括经理在内的最基本的软件工程和CMMI培训知识;第二,对各个工作组的有关人员提供专业领域知识等方面的培训;此外,在每次开发过程中,还要对普通人员进行软件过程方面的培训。


        培训的方式有很多,第一,向有关专业培训咨询机构进行咨询。这些培训公司为CMMI知识的导入起着主导作用,他们来源于各种背景,有国家有关研究所、相关协会、大学、原ISO9000咨询公司、新创办的CMMI咨询公司、实施过CMMI的企业等,但这些培训咨询公司主要集中在北京、上海,尤其是北京。在此,我们建议其他省市,特别是被批准为"国家软件基地"的城市,应加大力度,竭力扶植有关咨询培训机构。


        第二,利用互联网资源进行咨询和培训。例如,可以利用Internet下载有关学习资料和别人的经验,可以报名参加CMMI网校进行系统的学习。


        第三,聘请有关CMMI专家到企业实地指导CMMI的实施。企业职工可在被指导过程中逐步掌握CMMI的要领和实施过程。值得注意的是,企业可以在最开始阶段聘请一位经验丰富的CMMI专家,但以后一定要培养自己的专家,这样不仅能节约开支,还能使企业自己具有一个对CMMI深刻理解的、有实践经验的专家,为企业今后的继续升级打下一个良好的基础。


    3、确定合理的目标


        CMMI模型划分为5个级别,共计18个关键过程域,52个目标,300多个关键实践。每一个CMMI等级的评估周期(从准备到完成)约需12-30个月。无论一个软件企业的软件过程处于什么样的水平,都可以在CMMI框架的5个级别中找到自己的位置。CMMI框架的不同级别是针对处于不同管理水平的软件企业制定的,一个软件企业实施CMMI,首先必须了解自己的管理现状,对照CMMI的级别,找到自己在CMMI中所处的位置,然后有针对性采取与自己所处级别相适应的措施,使企业迟早纳入CMMI的进化阶段,使软件过程管理早日得到改善,最终达到提高软件质量,获取经济效益的目的。


        因此,要实施CMMI,首先应该对本企业的现状有一个准确的评估。企业目前处于什么水平,企业发展的问题是什么,借助CMMI要达到的目的是什么,目标更是需要量化、可实现,我见过很多企业里的EPG为了避免以后因为不能达成目标而受罚,所以往往很多人的目标都很含糊。然后再结合企业的实际情况选择CMMI的切入点,确定总体目标。这个目标包括在多长时间之内,需要投入多少人力、物力和财力,要达到哪一级。


        由于软件过程的建立和改进是一个渐进的、分轻重缓急的、逐步完善的过程。所以,在总体目标已经确定的前提下,还要制订近期目标和长期目标。


    4、成立工作组


        企业针对CMMI的实施,应成立专门的CMMI实施领导小组或专门的机构。CMMI的实施需要有强有力的组织保证,领导层必须真正学习理解软件过程管理和改进的重要性,亲自领导和参与,要保证过程管理的人员配备,抽调企业中有管理能力、组织能力和软件开发能力的骨干人员,确实把此项工作当做企业生存和发展的大事来抓。


        在CMMI的实施过程中,工作组的成立是CMMI的一个关键步骤。有几个重要的组织是必不可少的,这些组织包括软件工程过程组、软件工程组、系统工程组、系统测试组、需求管理组、软件项目计划组、软件项目跟踪与监督、软件配置管理组、软件质量保证组、培训组。


        软件工程过程组是由专家组成的组,全心全意推进组织所采用的软件过程的定义、维护和改进工作。软件工程过程组统领CMMI实施活动,协调全组织软件过程的开发和改进活动,制定、维护和跟踪与软件过程开发和改进活动有关的计划,定义用于过程的标准和模板,负责对全体人员培训有关软件过程及其相关的活动。


        软件工程组负责一个项目的软件开发和维护活动(即需求分析、设计、编码和测试)的团体。


        系统工程组是负责下列工作的个人(既有经理又有技术人员)的团体;规定系统需求;将系统需求分配给硬件、软件和其他成分;规定硬件、软件和其他成分的界面;以及监控这些成分的设计和开发以保证它们符合其规格说明。


        系统测试组是一些负责笄和完成独立的软件系统测试的团体,测试的目的是为了确定软件产品是否满足对它的要求。


        软件质量保证组是一些计划和实施项目的质量保证活动的团体(既有经理又有技术人员),其工作的目的是保证软件过程的步骤和标准是否得到遵守。根据文档化的规程制订软件项目的SQA计划;参与项目软件开发计划、标准和规程的制订和审查;评审软件工程活动,以检验一致性;定期向软件工作组执行其活动结果;根据文档化的规程对在软件活动和软件工作产品中所找出的偏差建立文档;与客户的软件质量保证人员一起对软件质量保证组组的活动和调查结果进行定期审查。


        软件配置管理组是一些负责策划、协调和实施软件项目的正式配置管理活动的团体(既有经理又有技术人员)。维护配置管理库、控制变更;入库检查,出库登记;编写项目各个阶段的配置管理报告;制定项目阶段配置管理计划;管理项目中确认的要配置项。


        培训组是一些负责协调和安排组织培训活动的团体(既有经理又有技术人员)。通常这个组织负责准备和讲授大多数的培训课程协调其他培训方式的使用。


        在CMMI的实施中组织机构的设置必须完善,但不等于说每一个机构必须是独立的。有些组织很小时,机构可以适当合并,成员可以身兼数职。但对那些关键实践要求独立性时,组织必须十分小心。例如,软件质量保证组的独立性就是必须考虑的,否则在技术上或机构上出现的偏差,会无目的地影响到软件过程、项目质量和风险决策的正确性。


        在这里还要提到一点,那就是物理组和逻辑组。在CMMI中有两种组织,一种叫物理组织,它是客观存在的,例如项目组、技术部等,有众多专职人员;另一种叫逻辑组织,就是说它的人员可以是兼职的,在用不到的时候,成员有自己的工作,而且很多逻辑组只需一两个人就可以了。

     

     

    7、正式评估


        如前所述,CMMI正式评估由CMU/SEI授权的主任评估师领导一个评审小组进行,评估过程包括员工培训(企业的高层领导也要参加)、问卷调查和统计、文档审查、数据分析、与企业的高层领导讨论和撰写评估报告等,评估结束时由主任评估师签字生效。


        目前主要有两种基于CMMI的评估方法,一种是CBA-SCE(CMMI-Based Appraisal for Software Capability Estimation),它是基于CMMI对组织的软件能力进行评估,是由组织外部的评估小组对该组织的软件能力进行的评估。另一种是CBA-IPI(CMMI-Based Appraisal for Internal Process Improvement),它是基于CMMI对内部的过程改进进行的评估,是由组织内部的小组对软件组织本身进行评估以改进质量,结果归组织所有,目的是引导组织不断改进质量。


        这两种评估均由CMU/SEI授权的主任评估师领导,参考CMMI框架来进行,都要审查正在使用和将来使用的文件/文档,并对不同的组织员工进行采访。SEC与IPI两评估结果应该一致,评估结果的所有资料都将呈报CMU/SEI。


        针对企业实施CMMI的需要,这里主要讲述CBA-IPI的评估方式,以便企业为提高软件过程进行内部评审。


        CBA-IPI的评估由几方共同组成:评估小组、公司的管理人员、具体项目的执行人员以及主任评估师。其中评估小组是由经验丰富的软件专业人员组成,还要经过CMMI和CBA评估的培训,使他们了解组织的同时,也懂得如何将CMMI模型及关键实践与组织的要求建立关联。


        CBA评估过程主要分成两个阶段:准备阶段和评估阶段。准备阶段包括小组人员培训、计划以及其它必要的评估准备工作。在评估的最初几天,小组成员的主要任务是采集数据,回答SEI的CMMI提问单,文档审阅以及进行交谈,对整个组织中的应用有一个全面的了解。


        然后进行数据分析。评估员要对记录进行整理,并检验所观察到的一切信息,然后把这些数据与CMMI模型进行比较,最后给出一个评估报告。在每个评估报告中,必须针对CMMI 的每个关键过程域,指出这个软件过程在什么地方已经有效地执行了,什么地方还没有有效地执行。只有所有评估人员一致通过的情况下,这个评估报告才有效。


        在评估报告的基础上,评估小组成员起草一个评估结果。评估和评级的结果应与有关的关键过程域和目标相对应。在评估结果揭晓后,将送交所有有关的人员,然后准备开始评级。


        要特别注意的是,在评估过程中,如果某一过程并不是CMMI的要求,但这一过程与组织的能力成熟度有一定的关系,那么,它也应包含在评估结果中。


    8.根据评估结果改进软件过程


        根据IDEAL模型,成熟度的评估只是软件过程改进中的一个环节,如果这个环节与软件过程改进的其他环节不能很好地结合,那么,CMMI评估对于软件过程改进所应具有的作用就得不到发挥。


        一般来说,应该在评估之后很快地作出软件过程改进的计划,因为这时大家对评估结果和存在的问题仍有一个深刻的认识。计划在软件过程改进中是一个非常必要的阶段,只有有效的计划,才能确保软件过程得到有效的改进。


        CBA评估方法对衡量软件企业的能力成熟度是一个非常有效的手段,评估结果本身就是一个非常坚实的基础,是制定软件过程改进计划的依据。CBA评估客观地指出了企业软件过程存在的问题,帮助企业发现软件过程的不足之处,充分指出了软件过程改进的前景。


    9.根据业务需求来定义流程


            最近在和一个国内知名公司做CMMII L4级研究,这时候我才发现很多咨询公司在做咨询的时候,提交给客户一套模板和文档。但咨询公司在做咨询的时候,为了更好的满足PA的要求,很多情况下都是按照PA来制订相应的流程,但实际在公司业务执行过程中,部分PA显然是不合理的,或者说是不满足公司业务需要的。因此,实施CMMII不能过于死板地按CMMII的PA来制订相应流程,应该结合公司业务需要,制订业务流程。&ldquo模型只是模型,而并非流程&rdquo,我见过一些印度咨询公司的资产库,在他们的资产库里,完全是按照实际研发中的业务来制订流程。实现PA的方式有很多,所以尽量以业务为目标。


    10.过程改进需要系统化地提供解决方案


           可以说&ldquoCMMI只是过程改进的冰山一角&rdquo,大家可能听说过木桶原理,对于研发而言,更是需要系统地提供解决方案,逐步实现改进。如果认为CMMII就是上帝,那就很危险了。我们需要根据自身的情况和业务目标来引入CMMII帮助企业解决问题。所以在制订相应方案的时候,一定要系统地、体系化地考虑流程体系的建设。
            &ldquo除了上帝之外,任何事情都需要用数据来说话&rdquo我相信这句话的意义,实施CMMII也需要量化的现实状况、量化的业务目标。


    结束语


        因为软件过程成熟度的升级本身就是一个过程,而且全面引进应用CMMI所涉及的范围非常广,要求人力、财力与设备资源的投入相当大。所以在实施CMMI时,企业千万不要一开始就把目标定位过高,不必一下子去满足某一能力成熟度等级的所有目标。而要根据企业自身的情况,试行某些关键过程域的一部分关键实践活动,逐步完善软件过程和成熟度的升级。

    软件企业在实施CMMI的过程中,应当处理好CMMI实施和认证的关系。实施是基础,认证是结果。只有认真扎实的实施,才可能有认证的通过。由于我国大部分软件企业距离CMMI的认证有相当大的距离,最好先按照CMMI严格的软件工程方法,致力于改进企业的管理,提高软件开发能力,而先不要搞软件能力评鉴,追求认证、评级等。等到能力成熟后,再进行认证。这样可以避免和杜绝华而不实、弄虚作假的现象。应该把实施CMMI作为提高软件企业管理水平和提高软件质量的突破口,追求真正的软件能力和水平的提高,而不是把单纯的CMMI软件认证作为一个唯一的目标。 文章转自中信保国际集团网站

以 XML 格式显示 RSS 新闻频道
CMMI on line 版权所有 ( 粤IC备07073557号)
Powered by Community Server, by Telligent Systems