`

无聊之胡思乱想 —— 关于CMM和CMMI

阅读更多

        春节长假结束之后回到公司,我参加了有关CMMI的training。整个课程总有7个部分,涉及的内容十分广泛:从基于风险的项目管理到软件生命周期,再到项目计划和跟踪等等。而到上个星期为止,课程已经过半,而我对于CMMI有了一点点的认识,也引发了一些思考。
        还是先从认识开始吧。当你第一次看到CMMI这个名词的时候,或许你会不由得想起CMM。是的,CMMI就是CMM Intergration(CMM 集成),而CMM则是Compability Maturity Model的缩写,就是众所周知的软件能力成熟度模型了。要深入了解CMMI,还是得从CMM的历史说起。1991年,卡内基梅隆大学软件工程研究院(CMU-SEI)为了评估软件企业的成熟度创造了CMM,版本为1.0。而在1992年4月,SEI举行了一个CMM的研讨会,在广泛听取了众多软件工程专家的意见之后,又于1993年推出CMM 1.1版,这也是目前世界上比较流行和通用的CMM版本。就在CMM1.1发布到SEI于2003年不再更新CMM和支持CMM这10年间,全球成千上万的软件公司纷纷以CMM马首是瞻,依照CMM制订软件开发流程,并且对CMM认证趋之若骛。那么,为什么CMM会有如此大的魅力呢?我们都知道在一个软件项目中,有三个要素:人、技术和过程。很明显,前两个要素是不稳定的,人自然是首当其冲:对于项目组来说,在一段时间内,人员可能会发生变动。再关注到某一个组员,其工作状态也会出现起伏。技术的不稳定性也是明显的,相同技术的版本变迁,不同技术的推陈出新都突显了这种不稳定性,尤其是在当今技术发展迅速的年代,技术的不稳定性则更为突出了。三个因素当中就剩下了过程,它呈现出来的稳定性使它成为项目管理者的稻草。于是乎,软件领域的目光都集中到了过程,相应的,CMM中所谓的软件能力成熟度实质上就是软件过程的成熟度了。说到这里,您是否跟我一样,心中又多了几个大大的问号呢:过程跟能力真的可以划上等号吗?将软件过程进行了良好的定义是否就意味着拥有了无坚不摧的能力呢?
        在SEI的网站上,我们可以找到两个有关CMM的权威文档,其中之一就是Capability Maturity Model for Software (Version 1.1)。文档对CMM做了全面概括的介绍,自然也包含了我们所熟知的CMM五个等级的相关信息。文档中2.2节Understanding the Maturity Levels是相当有意思的,它讲述了应该如何理解Maturity Level,同时细化到了如何分别理解五个等级的定义。这一节开篇的时候提到了CMM对成熟度不同的过程做了足够抽象的定义,同时并没有限制每个组织应该采取怎样的方式去实现与某个成熟度相对应的过程。既然是如此之抽象的定义,软件公司又根据什么进行自己的过程定义呢?CMM评估组织又根据什么标准对软件公司进行能力评定呢?该文档的第三和第四章给出这两个问题的粗略答案,有兴趣的朋友可以参阅该文档。
        在浏览SEI网站上有关CMM的内容时,随处可见Sunset of the Software CMM的链接。确实如前面提到的一样,CMM在SEI的眼里已经是昨日黄花了,CMMI才是SEI时下主推的标准。确实,CMM的成功经验都来源于上世纪八十年代,而在近二十年间,软件的发展又如此之神速,新标准的提出自然是大势所趋了。从字面上看,CMMI比CMM多了一个I(Integration),这是我们最容易发现的差异所在。而事实上,CMMI标准的提出也是在集成了多个CMM标准的基础上的。对于CMMI的介绍,也就不多说了,有兴趣的朋友,可以参阅What is CMMI一文。
        对于CMM和CMMI这两个Key words的介绍就到这里了,大家是不是觉得很闷了呢? 是的,我写得也快疯掉了,因为我找不到源自思考的文字,数十页的文档包含着数以百计的概念、目标以及标准,即使是所谓的实践性介绍,我都找不到丝毫的感觉。也许是自己的层次没有那么high level吧,看着CMM和CMMI的介绍,我一如两年前那样迷惘。因为从这些长篇累牍的文字中,我找不到自己的角色,也找不到自己的方向,对于它们的理解,我仍然停留在 CMM = 一大堆文档的认知层面上。不过,这样的痛苦历程还是让我了解不少有关软件过程定义的知识。我知道自己从内心排斥这种把人的因素摆在一边的标准,但是我也不禁要给自己的排斥多问几个为什么,同时我也清楚只有充分理解了CMM及CMMI才能够让自己的排斥来得更加理性而有说服力,而不是停留在厌恶繁多的文档的层面上。
        然而,我知道自己的排斥是有充分的理由的。根据CMM和CMMI所涵盖的范围来看,它们关注的仅仅是过程,也就是说人的因素并没有包含其中,这就意味着这两个标准的本意并非是轻视人的因素,只是没有论述而已。事实上,一个良好而规范的过程确实是必须的,一旦工作陷入无序,拥有再厉害的人物,使用再强大的技术,也是无济于事的。但是,对于过程的强调是不是有些过分了呢?而在过程的定义当中,我看到了更多的是performance和commitment,却鲜见individual。我想,一个良好的过程不应该只讨好客户和项目管理者,还要顾及奋战在第一线的开发人员的感受。在过程中增加提高开发人员能力的步骤,让开发人员在项目开发过程中逐渐成长,这不是一个很不错的想法吗?然而,在我上training的过程中,我还是无法发现这个步骤的踪影,这不免让我有些失望。
        在接下来的日子里,公司会依据CMMI的规范采取更多的措施,会把开发过程制定得越来越规范,至于效果,现在还不得而知,唯有拭目以待了。总之,过程的定义与规范是重要的,但是无视个人因素的教条化定义则令人反感。

分享到:
评论

相关推荐

    CMMI简介——关于CMM基本思想

    CMMI简介——关于CMM基本思想 Capability Maturity Model Integration(CMMI)是一种过程改进模型,旨在帮助组织改进软件开发和维护过程。CMMI 模型提供了一套可供公众使用的准则,描述了成功地实施过程改进的组织...

    CMMI和CMM的主要区别

    CMMI 和 CMM 的主要区别 CMMI(Capability Maturity Model Integration,能力成熟度模型集成)和 CMM(Capability Maturity Model,能力成熟度模型)都是软件过程改进的模型,但它们之间存在着一些关键的区别。 1....

    CMM-CMMI认证前的准备工作

    CMM/CMMI,即软件能力成熟度模型集成,是一种评估和改进软件开发组织能力的框架,由美国卡内基梅隆大学软件工程研究所(SEI)开发。它旨在通过系统化的过程管理和改进,帮助组织提升软件质量和开发效率,确保项目...

    软件工程简介及CMM_CMMI模型介绍

    软件工程简介及CMM_CMMI模型介绍,软件工程简介及CMM_CMMI模型介绍,软件工程简介及CMM_CMMI模型介绍

    CMM与CMMI的比较

    CMM和CMMI都是软件工程和系统工程领域的重要工具,它们提供了评估和改进组织过程成熟度的有效框架。虽然CMMI在CMM的基础上进行了扩展和深化,但选择哪种模型应基于组织的具体情况和发展需求。无论是CMM还是CMMI,其...

    CMM/CMMI讲座PPT

    CMM/CMMI讲座PPT,讲述了CMM1到5级的完整内容

    CMM CMMI各级过程域 CMM CMMI各级过程域

    CMM CMMI各级过程域 CMM CMMI各级过程域

    基于CMM和CMMI的配置管理

    主要从CMM和CMMI的要求出发,介绍了标准主要涉及的配置管理内容,并对相应内容进行初步地说明,最后提供了一个配置管理在项目实施的指南和一个在组织中部署配置管理的模型。

    CMM、CMMI资料集合

    CMM(Capability Maturity Model,能力成熟度模型)与CMMI(Capability Maturity Model Integration,能力成熟度模型集成)是软件开发过程管理和改进的重要框架,它们为组织提供了一种评估和提升其软件开发能力的...

    CMMI 概论——CMMI简介全过程

    ### CMMI 概论——CMMI简介全过程 #### CMMI的起源与发展 CMMI(Capability Maturity Model Integration,能力成熟度模型集成)起源于20世纪80年代初美国卡内基梅隆大学软件工程研究所(SEI)。当时,SEI应美国...

    基于CMM-CMMI实施过程及WEB实现

    【CMM-CMMI实施过程】CMM(Capability Maturity Model,能力成熟度模型)和CMMI(Capability Maturity Model Integration,集成能力成熟度模型)是SEI(Software Engineering Institute,软件工程研究所)提出的软件...

    CMM、CMMI标准名词术语

    ### CMM、CMMI标准名词术语解析 #### 1. AT Assessment Team 评审小组 - **定义**:评审小组是一组被指定负责评估组织内软件开发或项目管理过程是否符合既定标准的专业人员。 - **作用**:通过专业的视角审查项目的...

    cmmi与CMM的比较分析

    cmmi与CMM的比较分析

    基于CMM和CMMI的配置管理(一)

    北京 本文主要从CMM和CMMI的要求出发,介绍了标准主要涉及的配置管理内容,并对相应内容进行初步地说明,最后提供了一个配置管理在项目实施的指南和一个在组织中部署配置管理的模型。 1配置管理内容的逻辑关系 在...

    CMMI3.rar_CMM_CMMI3_cmmi

    CMMI,全称为Capability Maturity Model Integration,中文译为能力成熟度模型集成,是国际上评价软件开发和项目管理成熟度的一项重要标准。CMMI3是CMMI的第三个级别,代表“已定义级”,标志着一个组织的软件开发...

    CMM-CMMI最新标准文件V1.2.rar

    CMM(Capability Maturity Model,能力成熟度模型)与CMMI(Capability Maturity Model Integration,能力成熟度模型集成)是软件开发过程管理和改进的重要框架,尤其在IT行业中被广泛应用于提升组织的软件开发效率...

    cmmi-temple1.rar_CMM_cmmi_cmmi-temp_cmmi模板

    CMMI(Capability Maturity Model Integration,能力成熟度模型集成)是一种评估和改进组织在软件开发和服务过程中的能力成熟度的框架。CMMI模型旨在提高软件开发的效率、质量和可维护性,通过一系列的过程改进活动...

    CMM3 过程模板文档全套

    CMMI3级软件过程改进方法与规范 1.1 CMMI简介 4 ...1.6 CMMI和CMM的比较 19 1.6.1 CMMI与CMM的模型比较 19 1.6.2 CMMI 与CMM 过程域比较 19 1.6.3 CMMI 与CMM评估方法比较 21 1.7 CMM/CMMI在中国 21

    CMM-CMMI资料

    经典CMM培训胶片,比较适合初学者来学习的内容

Global site tag (gtag.js) - Google Analytics