CMMI组织实施的方法论

CMMI组织实施的方法论

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

  1.提高思想认识

  实施CMMI对软件组织的发展起着至关重要的作用,这种作用并不是取决于CMMI评估的结果。CMMI过程本身就是对软件组织发展历程的一个完整而准确的描述,组织通过实施CMMI,可以更好地规范软件生产和管理流程,使组织的管理更加规范化。而且,只有在国际市场取得成功的产品和组织才具有长久的竞争力和生命力,由于CMMI已获得国际组织和用户的广泛认可,因此很有必要在软件组织中实施CMMI。

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

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

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

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

  培训的方式有很多,可以向有关专业培训咨询机构进行咨询;可以利用互联网资源进行咨询和培训;可以聘请有关CMMI专家到组织实地指导CMMI的实施。

  3.确定合理的目标

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

  因此,要实施CMMI,首先应该对本组织的现状有一个准确的评估。组织目前处于什么水平,组织发展的问题是什么,借助CMMI要达到的目的是什么。然后再结合组织的实际情况选择CMMI的切入点,确定总体目标。这个目标包括在多长时间之内,需要投入多少人力、物力和财力,要达到哪一级。

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

  4.成立工作组

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

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

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

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

  5.制定和完善软件过程

  CMMI模型强调软件过程的改进,如果组织还没有一个文档形式的软件过程,则首要任务是对当前的工作流程进行分析、整理及文档化,从而制定出一个具有本组织风格的软件过程,并用该文档化的过程指导软件项目的开发。

  如果已经具备了软件过程,则要对这个过程做内部评估,对照CMMI的要求,找出问题,然后对这个过程进行补充修改。在具体实施的过程中,可以选择有一定代表性和完善性的项目组或项目进行试点,跟踪、监督改进后的软件过程的实施情况,执行改进活动的状态。

  同时,过程小组的成员还应该维护过程中的数据库,定期统计各个过程中的产品和规模、开发周期、修改次数及评估周期。这些数据库可用来分析项目的效率以及存在的问题,以便今后进一步的改进,同时还可以为项目开发过程提供咨询。

  总结这些项目组或项目以前成功的经验,从中规划出一个具有实际意义的软件过程,按照CMMI规范评估这个过程,找出其中的优缺点。对不满足CMMI要求的地方加以完善,使其成为一个完美的实施CMMI的软件过程方案;然后将这个软件过程应用到当前正在承接的或即将承接的项目上,在实际使用过程中进一步发现其中的不足和错误之处,加以改进,最后将试点的结果推广到整个组织。

  6.内部评审

  CMMI每一级别的评估都由CMU/SEI授权的主任评估师领导一个评审小组进行,相对来说,评审费用比较高。因此,希赛教育专家建议,组织在进行正式评估之前,先进行内部评审或评估。组织自己内部成员,严格、认真地按照CMMI规范评估过程,对自己的软件过程进行评审,找出其中的不足点并进行改进。这样,就能确保正式评估时能一次性通过,节约成本。

  7.正式评估

  CMMI正式评估的过程包括员工培训(组织的高层领导也要参加)、问卷调查和统计、文档审查、数据分析、与组织的高层领导讨论和撰写评估报告等,评估结束时由主任评估师签字生效。

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

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

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

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

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

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