其实一直以来对CMMI,ISO9000的认知仅限于名称,对于其中的细节并不是很明确;但一直以来对ISO9000和CMMI都没有什么特别好的印象,因为就目前中国的软件企业而言这些认证仅仅是噱头而已;为了过ISO9000和CMMI认证,大家日夜加班仅仅是为了补充上认证中所要求的几项文档,而不管这套流程是否适用于本企业.
但是不管如何,在众多云集的中国软件企业和软件外包企业中,要想得到他人的认可,认证是必不可少的敲门砖.
本章就讨论一下CMMI,CMM,ISO9000认证之间的区别和联系.
1.先介绍一下起源和定义
(1)CMM:
CMM是由美国软件工程学会(software engineering institue,简称SEI)制定的一套专门针对软件产品的质量管理和质量保证标准.
CMM全称为(Capability Maturity Model),中文名称为能力成熟度模型.
CMM最早始于1987年,为了满足美国联邦政府评估软件供应商能力的要求,美国卡内基-梅隆大学的软件工程研究学院SEI牵头,发布了一份能力成熟框架(Capability Maturity Framework)以及一个成熟度问卷(Maturity Qestionnaire).四年后(即1991年),SEI将成熟度框架进化为软件能力成熟度模型(Capability Maturity Model For Software,简称SW-CMM,即CMM1.0)
自1991年SW-CMM1.0版本使用两年后,SEI与1993年又推出了CMM1.1版.
近几年来,CMM又推出了2.0版本,同时进入了ISO体系,称为ISO/IEC15504或SPICE.
CMM划分为五级:级别越高表明该企业在提供合格软件产品方面的能力越强.
五级的关键过程域(KPA),共计18个过程域如下:
初级(initial):描述了不成熟,或者说是未定义的过程的组织
可重复级(Repeatable): 需求管理,项目策划,项目监督和控制,供方协定管理,测量和分析,过程和产品质量保证,配置管理
已定义级(defined):需求开发,技术解决,产品集成,验证,确认,组织级过程焦点,组织级过程定义,组织培训,集成项目管理,风险管理以及决策分析和决定.
管理级(managed):定量过程管理,软件质量管理
优化级(optimizing):组织革新和部署,原因分析和决定.
一个组织只要开始从事软件开始,即自动处于第1级,要通过其它等级,就需要达到统一的标准,即上述相对应等级中的各个区域过程.
CMM的评估方法是:CBA-IPI方法(即CMM-Based Assessment for Internal Process Improvement).CBA-IPI方法是一种诊断工具,它借助识别其现行过程的优劣使一个组织能了解其软件开发能力,把这些优缺点与CMM对照起来,安排软件改时计划的优先顺序,并把注意力集中关注到最有利的软件改进上,以及给出其现行过程的成熟度等级和业务目标;此方法是受过培训的专业组对组织的软件过程能力作出评估,该组全体人员作为一个团队一起对评估范围内的CMM关键过程域进行评估和评分.此评估结果是依据所采集的数据作出的,这些数据来自问卷回答\文档审核\陈述以及与中层经理\项目负责人和软件专业人员的深层访谈.
(2)CMMI
自CMM1.0版本后,SEI又开发了其他成熟度模型,包括:软件工程(SW-CMM),系统工程(SE-CMM system engineering CMM),软件采购(SA-CMM,software acquistion CMM),人力资源管理(P-CMM,people CMM)和集成产品开发(IPT-CMM integrated product team CMM)等.虽然各个模型针对的专业领域不同,但是彼此之间有一定的重叠;另外,这些模型在表现形工上又有不统一之处:系统工程模型是连续式的,而其它模型采用了分级式.
为了整合不同模型的最佳实践,建议统一模型,覆盖不同领域,供企业进行整个组织的全面过程改进,并于2001年正式发布了能力成熟度集成模型(CMMI)1.1版本,这次发布标志着CMMI的正式使用.SEI也正式宣布,将不再维护CMM的CBA-IPI评估方法.