本人经历过CMM2、CMM3、CMMI4和5,随着对CMM的理解的深入,越发产生了深层次的思考。CMM对我个人影响也很大,的确有很多好的实践和理念供我们学习和借鉴。本文不是全面否定CMM,而是从批判的角度审视我们对CMM的认识。大家可以共同探讨。
中国人实际是一个很特殊的人群,中国人的思维方式、价值观和处世方式与西方国家的区别很大,这与中国历史几千年漫长的中国文化和集权管理有直接的关系。
西方历史的发展是以科技为主线的,因此在西方的管理学中明显体现的是科学学科的态度和方法。在西方的管理学中分权和量化是两个重要的特点,而在中国的管理学中,为人处世却是主体,西方管理以事为主体,中国的管理以人为主体。
国内现在通过了CMM/CMMI从二级到五级那么多的企业,有多少企业生存的比以前好?又有多少家企业从此就消失在这个行业中了?
纵观国内软件行业的大局,究其原因有如下:
1. 引入了模型却引入不了文化:
任何一项管理制度和管理的方法模型都有其生长的根源和文化背景。比如独裁的管理、民主的管理等等。CMM起源于西方的软件行业,很多考虑问题的思路是有其背景的。比如分权治之的思想、量化管理的思想等。
管理不仅仅是科学,尽管我个人认为过程管理更多是一门科学。但是管理离不开对人的管理,只要涉及到人在中国就不是一件单纯的事情了。
另外国内的软件企业很少有成熟的企业文化的,这也是不论是CMM还是ISO9K都面临失败的原因之一。实施CMM更是一种文化的塑造和改革,是全体意识的提高和变革。自己本身都没有成熟的企业价值观和文化观,怎么可能让CMM在企业生根?不能在企业每个人的头脑中生根的CMM又怎么能发芽、开花、结果呢?国内企业通过CMM基本上都只是一个研发部或者产品部通过的。
2. 软件,人的因素更重要:
从软件技术开始,其质量和产出就是人的创造性和智力的结晶。尽管很多人鼓吹“软件蓝领”、“软件工厂”的概念,但是至少在二十年内,还看不到曙光。凡是可以用蓝领进行工厂化实现的技术具有如下的特点:
■ 机械性,可明确切割动作(如泰勒实验中描述的);
■ 可替代性,入门容易,任何一个人的工作是可替代的,或者替代的成本是比较低的;
■ 成本主要是材料,而不是人工;
■ 标准化,生成工艺和成品是可以标准化的。
从上面可以看到,软件行业明显与此是不同的。软件从最开始的Coding、Debug阶段都引入工程的概念在生产效率上提高了很多。但是目前不论是组件开发和面向对象还是代码生成都没有显著改变软件开发的质量和效率。我不否认软件工程或者传统行业的很多实践是可以引入到软件行业中的,但是我反对把软件生产当作传统行业生产的。至少在目前是做不到的,也许到了未来的人比现在聪明数倍、软件的标准和工具发展到想现在的扳手和车床一样。这似乎是个奢望。
大家知道,同一个学校出来的学软件的学生,其生产效率和开发质量相差几倍甚至十倍是非常正常的事情,即便是同一个人,在受到公司重视,心情好的时候比他即将离职,对公司不抱有希望的时候的生产效率差几倍也是再正常不过的事情了。
软件行业的人比其他行业的材料、工具和技术工人更复杂,其工作的动机更复杂、其社会和心理需求层次更高、人的个性差异性比较大。因此对于软件企业的人力资源的管理就更富有挑战性和以人为本。而CMM是过程模型,因此除了培训过程几乎是不关心人的。
3. CMM更适合大型项目
这是不争的事实,因为当初CMM的起源就是美国国防部为了有效控制和管理其项目而委托SEI的研究成果。国防部的项目100人月的项目就算是小项目,大部分都是几百人月甚至上千人月的项目。这种情况下没有规范的过程是不可行的事情。回头看看中国国内的情况,100人月的项目绝对算是大项目了,超过500万合同额的软件项目很少,有些甲方为了将项目分给更多的关系企业,往往人为地分成不同的项目来分包给不同的开发商。这些小项目往往是3-6个月的工期,交付的压力很大,客户的不成熟又往往看眼前的进度,而不是日后的质量。这就导致了国内很多项目是摇摇晃晃上线,提心吊胆维护,最好软件改的差不多稳定了,钱也花的差不多了。看起来是花很少的钱开发完成了,但是花更多的钱来修补。其实如果前期就能够按部就班,按照客观规律来做事,Total Cost就会减少很多。
4. 分权与量化的尴尬
在中国的历史中,最高管理者往往利用制衡的手段来统治和管理国家的。但是大家注意的是制衡,而不是分权。5000年的历史形成的文化和价值取向,分权是不现实的。从台湾的民主分权政治中我们也会发现缘由,中国人的民主分权意味着低效和成为独裁的幌子。再看软件企业,实施CMM的单位大部分都是在部门级或者技术范围内,很难看到分权和监督的作用。
关于量化也是一样,我相信大多数中国人不是太相信数字的。因为中国人的头脑中都有自己的标准,而很少有人优先想到别人或者另外的标准。台湾曾仕强老师讲过一个例子,就是一家德国的机床厂家发现卖到中国的机床很容易坏,经常更换配件,对质量一贯比较严谨的德国人派人到中国考察原因。原来是说明书中说在机床底座固定螺丝在安装的时候必须要做到拧四圈后要放半圈。自以为聪明的中国人便按照自己的标准计算,拧四圈放半圈,那不就是拧三圈半吗?这样的量化出问题就不奇怪了。
还有就是国家权威部门的统计数字往往是相互矛盾,口径不一,让劳动人民看得一头雾水。
在中国要让数字说话,就很容易滋生造数字,大到国家政府统计部门,小到企业财务,再小就到每个人年龄、财产填报。只要是对自己有利,而别人又不容易发现,那就可以造假,因为造假成本低,打假成本高。
再有就是哪个老板相信别人的数字?
5. 是什么推动了CMM在中国的风行?
CMM其实在欧洲和美国知名度并不高,很多大的软件企业甚至都不知道这是个什么东西,但是在中国,随着各地政府的优惠,加上不成熟的客户的跟风。大部分的企业看中的是一纸证书和政府的买单。很多国内知名的软件企业拿到证书后就解散了CMM的SEPG小组。而且国内的通过率历来是100%的事情,大家相信这其中没有猫腻?不在少数的通过CMM3级甚至5级的软件企业,这一两年过去后反而关门了。因此说如果没有一个正确的态度和企图来过CMM,那么再好的模型可能也起不到它的效果。
http://blog.csdn.net/li_hualing/
分享到:
相关推荐
由美国卡内基梅隆大学的软件工程研究所(SEI)创立的CMM(Capability Maturity Model 软件能力成熟度模型)认证评估,在过去的十几年中,对全球的软件产业产生了非常深远的影响。CMM共有五个等级,分别标志着软件企业...
近年来,随着中国加入WTO,经济的飞速发展,我国的软件产业有了长足的发展。软件技术已成为信息产业的核心,并直接影响着国民经济的各个领域。在未来两三年内,国内软件业势必将出现实施CMM的高潮。从这一趋势看,...
随着电子信息技术的快速发展,软件产业在全球经济中扮演着越来越重要的角色。在美国,软件产业已成为仅次于汽车和电子工业的第三大支柱产业。印度在1998至1999年度的软件销售额已达40亿美元;在中国,1999年的软件...
随着软件产业的发展,软件开发已由最初的“程序设计阶段”经历了“软件系统阶段”进而演变为后来的“软件工程阶段”,软件的复杂性日益增大。此时,如果仍然把软件看成一个单一的个体,就无法解决所面临的问题,于是...
在软件业中实质上就是指Software Capability Maturity Model(SW-CMM),即软件能力成熟度模型,通常简化描述成CMM。所以,CMM就是指软件能力成熟度模型,它是美国国防部对软件承包商软件能力评估的一种模型,也是...
随着信息技术的快速发展,软件产业在全球范围内占据了重要的地位,尤其是在中国,中小型软件企业如雨后春笋般涌现,为国家经济和社会发展做出了巨大贡献。然而,这些企业在追求技术创新和市场竞争优势的过程中,面临...
鉴于国内外软件产业的发展现状及趋势,构建一个符合中国国情的软件质量保证模型至关重要。该模型应考虑以下几个方面: 1. **融合国际标准**:结合ISO9000和CMM/CMMI等国际标准的优点,确保软件开发过程的质量控制...
**CMM(Capability Maturity Model,能力成熟度模型)**是一种评估软件开发组织或项目团队在软件工程过程管理上的成熟度和系统性方法。CMM由美国卡内基梅隆大学软件工程研究所(SEI)开发,最初目的是提高国防系统的...
CMM-manager
由美国卡内基梅隆大学的软件工程研究所(SEI)创立的CMM(Capability Maturity Model 软件能力成熟度模型)认证评估,在过去的十几年中,对全球的软件产业产生了非常深远的影响。CMM共有五个等级,分别标志着软件企业...
- **对软件产业的影响**:随着软件在各行各业中的应用越来越广泛,提高软件开发单位的过程能力成为了确保软件质量和可靠性的关键。CMM提供了一种科学有效的评估和改进方法。 - **未来发展趋势**:CMM本身也在不断...
在IT领域,CMM(Context-Free Grammar Modeling Machine)是一种用于处理和分析上下文无关语言的工具,常用于编译器设计或解析器的构建。它通过解析输入的语法规则来生成相应的语法树,这是一种直观地表示语言结构的...
《全面解析浙江大学CMM课程:基于CMM的软件过程改进与管理》 CMM,全称为Capability Maturity Model,即能力成熟度模型,是衡量软件开发组织在软件工程过程能力的一种框架,由美国卡内基梅隆大学软件工程研究所...
CMM解释器是用于执行CMM源代码的软件。它不进行编译步骤,而是直接解析源代码并逐行执行。这个过程包括以下几个关键组件: 1. **词法分析(Analyse.java)**:该阶段将CMM源代码分解成一个个称为“标记”的基本单元...
CMMI(Capability Maturity Model Integration,能力成熟度模型集成)和 CMM(Capability Maturity Model,能力成熟度模型)都是软件过程改进的模型,但它们之间存在着一些关键的区别。 1. 需求管理(RM) CMMI 中...
随着软件产业在全球范围内的快速发展,软件产品的质量和可靠性成为了企业和组织关注的核心问题之一。为了提升软件开发效率并确保软件质量,CMM 1.1 版应运而生。 #### 二、CMM 的发展历程与意义 ##### 2.1 发展...
本实验的实验目的为构建一个CMM语言解释器,该解释器分为三部分:词法分析器,语法分析器,语义分析器,三者为拓扑关系,即后一个部件建立在前一个部件的基础之上。 实验内容主要包括:CMM语言的词法分析,语法分析...
- **参与者**:参与者包括但不限于自建、外包与托管型呼叫中心、专业呼叫中心承载园区、高校与学术研究机构、全球范围内的呼叫中心协会及产业专家。 **1.2 模型构成** - **CC-CMM-OC**: 呼叫中心运营机构能力成熟度...
很多时候,人们提到CMM,其实指的是SW-CMM,即软件CMM。除了SW-CMM以外,还有P-CMM,SE-CMM,SA-CMM和CMMI等,这些CMM都是美国Carnegie Mellon大学软件工程研究所(SEI)的产品。每个CMM都是独立的产品,有各自不同...