CMMI(Capability Maturity Model Integration,简称CMMI)是专门针对软件行业的一个过程改进方法和规范,是衡量软件外包质量的重要标准之一,有如进入国际软件外包市场的通行证。
在中国大力推行软件外包的今天,CMMI认证在中国发展得如何?软件企业在申请通过CMMI认证的过程中存在着哪些问题?
不能单纯为过级而过级
主持人:现在某些软件企业过级带着应试教育的影子,只是单纯地为了过级而过级,过了之后,反而会有下滑的现象。这种现象会导致很多问题。请谈谈造成这种现象的原因以及产生的弊端。
宋万辉:我认为,这种现象并不是企业单方面造成的。现在很多项目招标都会有这样或那样的级别要求,这些要求本来是为了保障项目能够高质量地完成,但事实上当你出示了级别证书之后,没有人会检查你的水平是否真的达到了级别要求。企业都是要赚钱的,如果只把级别证书做为一个标志性的证据,那么企业肯定会想方设法花很少的钱,在较短的时间内得到证书。这对于项目本身来说,是非常不利的。
主持人:解总,您作为评估方,怎么保证被评估企业最终通过CMMI认证,又怎么保证级别的权威性和有效性呢?
解明明:针对服务对象,我们首先要问清楚,你们到底要的是什么?有的企业很明确地说,就是为了过级。我认为这无可厚非,但我们也非常明确地讲,这些企业不是我们服务的对象。
主持人:你们遇到这种情况会拒绝吗?
解明明:首先,我们会建议服务对象通过咨询和学习,了解CMMI真正意义,从而改变态度,真正来做。如果他们同意这个意见,接受了我们的建议,还是可以合作的。如果他们不采纳,我们将选择退出,这是我们的原则。其实,我们碰到的95%以上的客户都是真正要过程改进,要提高自身的开发能力、管理能力的,只有少数客户是为了过级而过级。
再有,实事求是地讲,在过去一些年中,单纯为了过级而过级的现象对于中国软件企业,特别是外包企业来说,已经带来了很坏的负面影响。尤其是目前美国加强了对这方面的质量控制和审计,特别是对过了4、5级的企业都会抽样审计。一个企业踏踏实实过了2级,人家相信你,如果一个企业过了5级,但是一审计,你3级都达不到,认为你造假,那么项目肯定不会包给你。
主持人:这种现象对于评估企业来说,是不是也有很不好的影响?
解明明:是这样的。我们公司有非常严格的原则,任何企业的管理者和领导人都不能对主任评估师施加压力,迫使他们让没有达到标准的企业强行过级,能不能过由主任评估师自己决定。我们的主任评估师都是非常有职业操守的人,勉强通过会影响他们个人的信誉和公司信誉。
主持人:解总,了解到您们是SEI (Software Engineering Institute,软件工程研究院)的合作伙伴,怎么成为合作伙伴的呢?怎么才能具有这种认证的资质?
解明明:SEI对合作伙伴有三个基本要求,一是要有评估及咨询服务的经验和案例,二是要有足够经验的主任评估师和咨询专家,三是在他检查和审计过程当中,没有发现作弊或者放水的情况。SEI合作伙伴要负责监督和管理公司下属的主任评估师。
CMMI整固公司系统
主持人:CMMI资质认证对软件企业的好处和实际意义,具体体现在哪些方面?
宋万辉:这其实是一个很大的问题,我认为应该放在整个企业经营的范围、经营的角度及企业生命周期中来考虑这个问题。作为软件企业,我们要生产产品和加工服务,因此后台要有强大的、质量稳定的生产系统做支撑,从这个角度来看,CMMI对我们的意义非常大。
说得具体一些,因为每个企业要完成自己的使命,需要稳定的系统,包括很多的程序,是脱离人治的系统,CMMI的最大意义就在于可以帮助企业整固这套系统。如果这套系统原来就是零,CMMI不会把从来没有的系统从零搭建成5级,这不现实,没有一个企业是这样的。
如果单纯为了一个项目或工程,把CMMI拿过来,大家背下来,把级过了,其实没有什么意义,系统根本没有留下来。如果这个企业是做外包的,人一下子走掉了一半,它的系统仍然运转得很好,产品质量很稳定,成本控制得也不错,各方面的指标都很好,那说明CMMI帮他整固了系统。
主持人:对企业来说,有这么一套系统,是不是就不用过于担心人员流动的问题了?
宋万辉:担心流动只是一个体现,对每个企业来说,重要的是一个系统,这套系统包括很多层面,如财务、沟通、市场渠道、现金管理、法律层面,并由很多子系统组成。任何企业想在市场中生存,这个系统必须高效,如果不高效,它的垄断或它的资源一旦耗尽,一定会垮掉。
咨询和推广过程最关键
主持人:现在国内做CMMI认证培训咨询的公司有多少家?斯福泰克有什么样的特点和与众不同的地方?
解明明:国内做CMMI认证培训咨询的公司至少有几十家,规模和历史都不太一样。有一定规模的大约在10家左右。斯福泰克是较早提供咨询服务的公司。我们当时回中国推行CMMI,主要是为了赶超印度外包,把中国外包产业带动起来。
我们提出一个概念,尽可能培养国内专家,既懂CMMI、又懂开发的人,作为辅助企业做过程改进的顾问。我们最早培养的这批人,有咨询师的特色,中国软件产业的发展和这些咨询专家的努力是分不开的。
主持人:如果这样的话,你们与被评估公司双方的合作关系不仅仅局限于评估和认证,也会对他们进行培训和咨询。你们其实是把国外的系统推介到中国来,可能中国人一开始还不太明白这套系统是怎么运作的,需要一边学习,一边评估。
解明明:对,关于你说的有一些体会,请宋总讲讲。
宋万辉:我们跟斯福泰克正式合作之前做过一些调查,市场上有很多认证,虽然都很好,但我们不想做。因为我们找不到一个真正帮我们的体系,能用这套体系,通过给你提供专业的咨询服务以及培训,让你的系统更加稳固。
后来经过考察,斯福泰克的想法和我们非常一致,就开展合作了。咨询师跟企业频繁交流,他们更了解企业,了解企业目前现状,了解企业需要什么,哪些方面是强项,哪些方面是弱项,所以给企业的建议相当具体,并且帮助企业改进。
主持人:请解总具体介绍一下咨询、评估的流程,有哪些关键要素?
解明明:目前CMMI大概有以下几个步骤:第一个步骤,对企业进行现状调查分析,提出企业目前的弱项,整个过程当中存在哪些需要改进的地方;第二步,由SEI授权的咨询师对企业进行培训;第三步,由咨询师协助企业建立企业自己的EPG(组织过程改进)组,建立起自己的整个规范和流程,这个过程我们称之为咨询和项目推广过程,它是非常重要的,将成为成功的关键。
这部分完了以后可以做预评估,也就是模拟评估,像正式考试之前的模拟考试,预评估完了以后,找出弱项再进行一段时间的改进。最后就是正式评估。大概要经过四到五个阶段。
主持人:一个3级认证拿下来平均需要多长时间?
解明明:现在做3级评估基本上需要一年到一年半的时间。比如宋总所在的北控软件有限公司现在已经做了18个月,马上要做预评估了,属于做得比较踏实稳健的,大概18~20个月可以过3级。
宋万辉:刚才解总侧面提到了关键因素,从企业来看,我认为关键因素有三点:第一,要求企业做这个工作的人知道往何处去。第二,要诚实。我们有什么问题,别人批评我们,要如实表述。第三,要勇敢。可能会发现很多问题,要勇于面对现实。这三点做到了,改进的机会就很大。
主持人:过程改进操作方法和有效技术手段缺乏的问题是否已得到解决?
解明明:过程改进操作方法和有效技术手段,是两个概念。过程改进首先是思想观念上的一个认识,在做的过程当中,需要有效的介入手段,比如用到一些工具。但我们认为没有任何工具是适合所有企业的。厂商提供的工具是否适合于企业,由企业的类型、规模、人员素质以及工作内容所决定,还有企业所能承受的费用也起到一定的作用。确实没有办法说哪个公司的工具可以包打天下。现在只能部分解决,没有一个全面的解决方法。
宋万辉:我比较同意解总的说法,这也是斯福泰克比较可贵的地方。第一阶段既然传播价值观念和最佳实践,平常用什么就用什么好了,因为这是价值观念的改造和系统方面的改造。第二阶段才进入高速提效阶段,当你的系统稳固以后,你发现在某些方面投入更有价值,这时候Soft Tech会给你一些更专业的建议,如果一开始向你推销很多工具,可能很多工具用不上,是浪费的。
CMMI与生存压力不矛盾
主持人:过程改进是个过程,保持这种改进更是一个过程,认证以后还要继续保持这个状态,保持系统的有效性。面对市场压力,应该如何让改进持续下去?
宋万辉:针对这个问题,不能单纯论过程,因为过程是系统的一部分。好多企业这样认为,当你面对市场压力的时候,才会在生存和改进之间作出选择,我认为这是不对的。如果按照这个逻辑,可能企业不用面对市场压力就已经死掉了。因为每个企业都面临竞争,竞争是有压力的。如果因为有压力,才选择要么自我改进,要么逐利,我想这个企业应该不是解总的客户。
解明明:如果当企业的生存压力与过程改进有冲突时,我认为生存压力要放在第一位,任何时候生存压力都是要放在第一位的。但是有一条,如果什么档案都没有留下来,什么东西都放弃的话,你后期的服务也可能拖垮你的公司,因为你什么都没有。甚至走几个人都会拖垮你的公司,怎么办?所以要分析清楚哪些东西是主要的,分清主次。
更主要的一点,我们应该尽可能早地健全我们的管理体制,无论在任何时候,都能保持企业最基本的管理规范。或者通过前期做很多工作,积累下来很多可复用的模板和模块,在压力很大的时候也可以保持规范化管理和质量。
宋万辉:解总这句话相当于CMMI让我们更善于在压力下正确的思考。
解明明:在初期,没有建立起体系的时候,紧急的情况下必须放弃一些管理规范。当你的CMMI做到一定程度,做得很规范的时候,你把很多的成果都已经积累下来变成成熟模块的时候,将来你在很紧急的时候就捡几个模块搭积木,这时候你不会认为CMMI和任务有冲突,反而是有帮助,因为CMMI最重要是建立可复用体系。
印度的几家大公司成立得相对都比较晚,但利润很高,原因在哪儿,它在接单的时候会仔细评估它的价值,评估的时候,估值非常准。之所以比较准,是因为它建立了一个非常好的数据库,把过去每一个类型的软件都进行分解,一些模块弄得很好。这么算下来以后价格比人家还要低一些,但是利润还要高一些。这就是当两个问题发生冲突的时候,CMMI越成熟,建立的体系越好,有压力的时候,能对抗和解决问题的能力就越强。
等边三角形最稳定
主持人:最后问一个额外问题,感觉CMMI主要还是注重工作的流程化,非常客观的系统,但是每一项工作最终还是要落实到各种各样的人来做,这有很多主观变动性,CMMI如何考虑这方面的问题,其中有没有包含对人员的管理?
解明明:这是一个非常好的问题,其实决定一个软件开发企业的好坏可以用三角形解释,三角形一个边是技术,一个边是过程,第三个边就是人力资源,当是等边三角形的时候,这个企业最稳固,质量最高。技术是指你开发团队的编程能力、技术能力,过程就是CMMI程度如何。CMMI和人力资源的关系是什么?我认为,实际上CMMI本身就有一个关于人力资源的评估体系,这体系跟CMMI评估体系差不多,只是关注的点不同。用CMMI这套体系,不但能够解决过程改进问题,而且CMMI人力资源体系可以解决人力资源管理问题。整个指导思想是差不多的,模式也差不多。
宋万辉:我同意解总的观点。因为人力资源是为整个企业服务的。CMMI里面讲的人更多的不是谈个体的人,它一直讲团队,它的团队不是随便几个人凑在一起就可以了。要完成一件事需要不同水平、不同知识面的人处在一起有机互动,这才是团队。既然提到目标和要求,这恰恰是人力资源管理的基本要求,如果整个企业做的都是这件事,我认为,人力资源跟团队管理要完全结合在一起,如果脱钩的话,那人力资源部就形同虚设,不过发发传单,面试面试人,其他作用不会太大。
首先,我们会建议服务对象通过咨询和学习,了解CMMI真正意义,从而改变态度。如果他们接受了我们的建议,还是可以合作的。如果他们不采纳,我们将选择退出。
从企业来看,我认为影响CMMI的关键因素有三点:第一,要求企业做这个工作的人知道往何处去;第二,要诚实;第三,要勇敢。
链接:点击CMMI
CMMI全称是Capability Maturity Model Integration, 即软件能力成熟度模型集成模型,是由美国国防部与卡内基-梅隆大学和美国国防工业协会共同开发和研制的。CMMI是一套融合多学科的、可扩充的产品集合,其研制的初步动机是为了利用两个或多个单一学科的模型实现一个组织的集成化过程改进。
CMMI分为5个等级,25个过程区域。
初始级 软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
已管理级 建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
已定义级 已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
量化管理级 分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
优化管理级 过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
每个等级都有几个过程区域组成,这几个过程域共同形成一种软件过程能力。每个过程域,都有一些特殊目标和通用目标,通过相应的特殊实践和通用实践来实现这些目标。当一个过程域的所有特殊实践和通用实践都按要求得到实施时,就能实现该过程域的目标。