昨天和朋友聊CMM,其中发了一些感慨,记录下来。
在JamesBach的“TheImmaturityofCMM”一文中,提到了CMM的种种不足,Weinberg也是对CMM提出质疑的重要一方。
我认为,
所有一切的源泉,都在于把CMM搞成了应试教育。
搞清楚一个问题必须看它的根源。CMM来源于DOD对承包企业的一个资质评价。因为双方要做生意,但互相之间又不了解,我想请人来做这块软件,首先要对这几个候选者能否做好有一个大致的评判,怎么评判呢,以什么标准评判呢?
作为一个研究机构,SEI来给出这个评判标准非常合适。CMM作为一套评判企业软件开发过程能力的问卷,应该是非常成功的,SEI提供的各种成功的CASE数据可以作为证据。因此CMM也获得了空前的成功和流传。
但“CMM只是一套试卷”这个最初的出发点导致了JamesBach一文中提到的CMM的众多不足:
1)hasnoformaltheoreticalbasis
2)hasonlyvagueempiricalsupport
3)reveresprocess,butignorespeople
4)reveresinstitutionalizationofprocessforitsownsake
5)containsverylittleinformationonprocessdynamics
6)encouragesdisplacementofgoalsfromthetruemissionofimprovingprocesstotheartificialmissionofachievingahighermaturitylevel.
请容我一一分析:
1)如果只是一套试卷,想必没有坚实的理论基础是可理解的了;
2)没有人根据一套“五笔输入”的考试试卷来学习五笔字型;
3)4)5)是对试卷内容上的垢病了;
6)典型的应试教育后遗症;
从这个出发点来看,对现在国内很多地方实施CMM效果并不理想,也就不足为怪了。专业一些说,CMM只是一个过程评价模型,而并不是过程实施的指导模型。应该说,SEI已经认识到CMM在可操作性上的不足,Humphery主持开发的团队软件过程TSP(TeamSoftwareProcess)和个人软件过程PSP(PersonalSoftwareProcess)是面向开发小组和开发个人对CMM进行的过程的微观优化,对CMM的实施提供了很好的帮助,但是,TSP和PSP只是对过程进行细化,并没有解决CMM与工程过程相结合的问题。另外,SEI还曾制定了SPF(SoftwareProcessFramework),希望提供一个设计、分析、评审软件过程的指南,以保证过程符合CMM的要求,效果也并不理想。
而国内在实施CMM中发现的问题在于什么呢?就是:CMM是一个考卷,但问题这是一个
开卷的考试,结果想抄近道的人们希望根据这个考卷来作过程改进方面的工作,这是典型的应试教育思想,从而导致出无数的问题……针对这个,我的建议就是,软件企业在建立组织标准过程、改进过程的时候真正以提高组织的开发能力为目的,这个时候最好把CMM抛在一边,或者说“心中有CMM”,但不要老挂在手边,嘴边。在过程建立起来,run起来之后,某个阶段,可以成立组织内部的评价小组等进行CBA-IPI,根据过程的现状来答CMM这个问卷,看看还有哪些地方有遗漏,有不足,需要改进。然后有针对地进行下一步的过程改进工作。
总结我的观点:CMM只是评价过程能力的一套试卷,用它来评价和改进组织的过程能力都很好,但不要试图用它来指导组织的过程建立。一句话,不要搞应试教育。
分享到:
相关推荐
专治各种疑难杂症的lauterbach脚本cmm文件。劳特巴赫T32调试器在PowerPC MCU上电的瞬间直接连接并且暂停e200内核,从内核接管的第一条PC指针开始,一切由你控制! ; ---------------------------------------------...
* P-CMM:People Capability Maturity Model 是人力资源过程改进的模型。 CMM的产生及发展 CMM于1980年代初由卡内基·梅隆大学软件工程研究所开发,旨在帮助软件企业提高其开发能力和项目管理能力。1990年代,CMMI...
《全面解析浙江大学CMM课程:基于CMM的软件过程改进与管理》 CMM,全称为Capability Maturity Model,即能力成熟度模型,是衡量软件开发组织在软件工程过程能力的一种框架,由美国卡内基梅隆大学软件工程研究所...
export_cmm_dataset.sh”) joblib(仅适用于“ reproduce_fig14_functionalmaps.py”) scikits.sparse.cholmod(代码在不使用此库的情况下运行-仅当您想使用更快的cholesky因式分解时才需要) 在Ubuntu上安装 必要...
总之,这个CMM解释器的C语言版集锦是一份宝贵的教育资源,可以帮助学习者从实际操作的角度理解编译器设计的全过程,提升编程技能和软件开发能力。通过深入研究这些源码,你可以逐步揭开编译器神秘的面纱,为自己的...
1. **词法分析(Analyse.java)**:该阶段将CMM源代码分解成一个个称为“标记”的基本单元,如关键字、标识符、数字等。 2. **语法分析(Cmm.java)**:词法分析后的标记被组合成语法结构,形成抽象语法树(AST)。...
《软件工程CMM:概述 软件工程能力成熟度模型(Capability Maturity Model,CMM)是一种评估和改进软件开发组织过程能力的方法。由美国卡内基梅隆大学软件工程研究所(Software Engineering Institute,SEI)在20世纪...
【哈工大CMM课程课件】是哈工大软件学院提供的一套全面介绍能力成熟度模型(Capability Maturity Model,简称CMM)的教育资源,旨在帮助学生和专业人士深入理解和应用这一模型。CMM是一种评估和改进软件开发组织过程...
**CMM(Capability Maturity Model,能力成熟度模型)**是一种评估软件开发组织或项目团队在软件工程过程管理上的成熟度和系统性方法。CMM由美国卡内基梅隆大学软件工程研究所(SEI)开发,最初目的是提高国防系统的...
4. 实施CMM:指导组织如何评估当前状态,制定改进计划,以及如何逐步迈向更高的成熟度级别。 5. 案例研究:可能包含实际组织应用CMM的经验分享,帮助读者理解理论在实践中的应用。 6. 测量与评估:介绍如何建立有效...
主要教材是雷剑文的《CMM:软件过程的管理与改进》。该书详尽地介绍了CMM的概念和实施步骤,是学生深入学习的重要资源。 ### 五、实验项目与内容概述 #### 1. CMM1到CMM2的改进方案 这个实验要求学生设计一个从...
**CMM:软件成熟度模型** CMM,全称为Capability Maturity Model,即软件能力成熟度模型,是由美国卡内基梅隆大学软件工程研究所(SEI)开发的一种用于评估和改进软件开发组织过程能力的方法论。这个模型是IT行业中...
**CMM培训教程PPT** 是一套专门为初学者设计的教育资源,旨在系统地介绍和解析**能力成熟度模型(Capability Maturity Model,简称CMM)**。CMM是一种评估和改进软件开发组织过程能力的方法论,它通过五个成熟度级别...
在IT领域,CMM(Context-Free Grammar Modeling Machine)是一种用于处理和分析上下文无关语言的工具,常用于编译器设计或解析器的构建。它通过解析输入的语法规则来生成相应的语法树,这是一种直观地表示语言结构的...
本实验的实验目的为构建一个CMM语言解释器,该解释器分为三部分:词法分析器,语法分析器,语义分析器,三者为拓扑关系,即后一个部件建立在前一个部件的基础之上。 实验内容主要包括:CMM语言的词法分析,语法分析...
### CMM1.1中文版相关知识点解析 #### 一、CMM1.1概览 **CMM**(Capability Maturity Model),即能力成熟度模型,是由美国卡内基梅隆大学软件工程研究所(SEI)提出的一种用于评估软件开发组织能力成熟度的标准...
CMMI 和 CMM 的主要区别 CMMI(Capability Maturity Model Integration,能力成熟度模型集成)和 CMM(Capability Maturity Model,能力成熟度模型)都是软件过程改进的模型,但它们之间存在着一些关键的区别。 1....
### SSE-CMM浅析 #### 一、系统安全工程—能力成熟度模型(SSE-CMM)简介 系统安全工程—能力成熟度模型(System Security Engineering Capability Maturity Model, SSE-CMM)是一种评估和改进组织内系统安全工程过程...
《软件测试CMM文档》是针对软件开发过程中的测试阶段所建立的一套成熟度模型,旨在提高软件质量、降低风险并提升测试效率。CMM,全称为Capability Maturity Model(能力成熟度模型),是由卡内基梅隆大学软件工程...
CMM是Capability Maturity Model 的首字母缩写,翻译成中文:能力成熟度模型。顾名思义,它是一个“模型”。既然是模型,那一定有对应的实体,CMM对应的实体就是软件组织。软件组织的规模可大可小,可以是一个软件...