入世后,软件企业的国际化进程也随之加快,一些大型软件企业完成CMM认证的同时,也为相当多的中小软件企业带来了希望,但他们在实施CMM的过程中,特别是在向CMM2前进时往往存在很多困惑和疑问。本文特别侧重对处于这一过程的软件企业碰到的各种疑难问题进行答疑解惑。
有关CMM与CMMI的比较
Q:听说SEI最新推出的CMMI是什么?我们是应该选择CMMI还是CMM?
A:CMMI的全称为:Capability Maturity Model Integration,即能力成熟度模型集成。自从1994年SEI正式发布软件CMM以来,相继又开发出了系统工程、软件采购、人力资源管理以及集成产品和过程开发方面的多个能力成熟度模型。虽然这些模型在许多组织都得到了良好的应用,但对于一些大型软件企业来说,可能会出现需要同时采用多种模型来改进自己多方面过程能力的情况。这时他们就会发现存在一些问题,其中主要问题体现在:
■ 不能集中其不同过程改进的能力以取得更大成绩;
■ 要进行一些重复的培训、评估和改进活动,因而增加了许多成本;
■ 不同模型对相同事物说法不一致,或活动不协调,甚至相抵触。
于是,希望整合不同CMM模型的需求产生了。1997年,美国联邦航空管理局(FAA)开发了FAA-iCMMSM(联邦航空管理局的集成CMM),该模型集成了适用于系统工程的SE-CMM、软件获取的SA-CMM和软件的SW-CMM三个模型中的所有原则、概念和实践。该模型被认为是第一个集成化的模型。
CMMI与CMM最大的不同点在于:
■ CMMISM-SE/SW/IPPD/SS 1.1版本有四个集成成分,即:系统工程(SE)和软件工程(SW)是基本的科目,对于有些组织还可以应用集成产品和过程开发方面(IPPD)的内容,如果涉及到供应商外包管理可以相应地应用SS(Supplier Sourcing)部分。
■ CMMI有两种表示方法,一种是大家很熟悉的,和软件CMM一样的阶段式表现方法,另一种是连续式的表现方法。这两种表现方法的区别是:阶段式表现方法仍然把CMMI中的若干个过程区域分成了5个成熟度级别,帮助实施CMMI的组织建议一条比较容易实现的过程改进发展道路。而连续式表现方法则通过将CMMI中过程区域分为四大类:过程管理、项目管理、工程以及支持。对于每个大类中的过程区域,又进一步分为基本的和高级的。这样,在按照连续式表示方法实施CMMI的时候,一个组织可以把项目管理或者其他某类的实践一直做到最好,而其他方面的过程区域可以完全不必考虑。
■ 软件CMM 2级共有6个关键过程区域,在CMMI增加了1个:度量和分析。原来的6个关键过程区域的名称和内容在CMMI中作了部分改进,但是主体内容没有大幅调整。软件CMM 4级共有2个关键过程区域,在CMMI中仍是2个,只是名称和内容有所改进。软件CMM 5级共有3个KPA,在CMMI中进行了合并,改为2个,但主要内容未变。变化最显著的在CMMI 3级上,原有的7个KPA变成了14个,其中原来对工程活动进行要求的KPA-软件产品工程进行了详细的拆分,并结合常见的软件生命周期模型进行了映射。CMMI中新增的过程区域中还涉及到过去未曾提到的内容,比如决策分析和解决方案、集成团队等。
到底是选择CMM还是CMMI主要基于以下几个方面进行考虑:
■ 实施企业的业务特点:如果企业的规模不是很大,业务又集中在软件开发为主,那么还是软件CMM比较适用。如果企业的规模比较大(开发人员100人以上),并且业务不仅仅集中在软件开发,还包括硬件开发哪怕是硬件代理(采购)都可以考虑实施CMMI。
■ 实施企业对过程改进的熟悉程度:如果企业已经实施过ISO 9000,并且取得了较好的效果,那么可以考虑实施CMMI。如果企业虽然没有实施过CMM,但是对于过程改进一直比较关注,接受过不少相关培训,甚至能够自发的进行一些过程改进,那么也可以考虑实施CMMI。如果过去没有接触过类似的工作,那么最好先从软件CMM 2级开始,首先建立持续过程改进的思路。另外,软件CMM的要求也比CMMI要稍低一些。可以适当降低实施的难度。
■ 实施企业对过程改进项目的预算:不论怎样,几乎可以肯定地说,实施CMMI的费用肯定要比实施CMM高出一些。而就模型本身来看,CMMI的2级7个过程区域在内容上并不比软件CMM的2级6个关键过程区域多多少。这样的话,我们完全可以“少花钱、多办事”,也就是说可以采用CMM的实施和评估方法,但可以在过程改进的时候参考CMMI的要求,这样就经济很多。
文章来源于领测软件测试网 https://www.ltesting.net/