日历

2008 8.29 Fri
     12
3456789
10111213141516
17181920212223
24252627282930
31      
«» 2008 - 8 «»

日志分类

文章搜索

日志文章

2007年08月30日 15:57:30

黄相民:软件改进中度量的方法

(以下是我2007。8.27日下午与陈勇先生一起做客赛迪网的访谈记录)
主持人:
各位网友大家好!今天很高兴邀请到两位软件度量方面的专家,中国软件行业协会过程改进专家黄相民先生、挪威船级社CMMI高级咨询师陈勇先生,今天就软件过程改进中度量的方法做一个讨论,主要讨论BMK和CMMI的关系,认识一下各自的优缺点,请两位专家给我们分享一些项目的经验,我们在软件度量过程中总会提到CMMI和BMK,这两种方法究竟是什么定义呢?请黄先生给大家做一个解释?
黄相民:
CMMI是软件组织能力成熟度评定的标准只有到了CMMI 4级才有量化的标准,而BMK是指作为一个软件组织,公司也好,组织也好,一个队伍,开发软件的过程中各种可量化的指标去和别人比较。通过比较看出你的问题,进一步深化分析问题所在,找到病因,提出改进办法,提高软件组织的能力成熟度。这是两个方向,一个是全面的过程的评定,BMK不给你评定,是自己主动的自己去比,那个是别人评,这个是主动要求提高,这是两个方向。
主持人:
BMK是基准对比,相比CMMI更新鲜一些?属于一个新的东西?
黄相民:
在国际上20多年前就开始了BenchMak,是别的行业先用的,软件行业引入了别的行业的方法,而CMMI是软件行业独有的,是后来的。所以按照BenchMak基准比对的理念用到企业里,用到其它行业,要比软件早很多年,而软件业引入,尤其是中国引入才3年。
主持人:
CMMI在国内的起步是比较早了,发展有十多年的历史,它与BMK具体是怎样的关系呢?
陈勇:
先看看它们的区别,CMMI是模型驱动,告诉大家应该做什么,或者至少期待大家应该做什么,至于详细的细节倒无关紧要。
主持人:
作为过程改进方法CMMI和BMK是不是有自己的局限性呢?或者有没有什么暂时还没有解决的问题?
黄相民:
CMMI的过程是必须从评定一个机构,这个组织,从一级到二级,二级到三级,已管理级到已定义级必须有一个时间,然后才能评三级,三级以后又要有一段时间,一两年才评定四级,然后又有一个成熟时间才允许继续上升,这是一个严格的评定过程,这个过程作为一般中小软件企业经费承受不了,第二进步的时间、发展的要求都有一定的困难。所以作为CMMI认证大多数是大中型软件企业,小队伍很少。
第二,CMMI是美国国防部对美国的软件公司谁有资质给我干活出于这样的出发点而建立的,是甲方评定乙方够不够资质,所以中国软件行业想外包活必须有CMMI资质。而BMK是从乙方,从开发者,软件管理者,这个队伍从开始到五级了,跟别人去比,是知己知彼不断改进自己,吸收人家先进的。例如BUG率是千分之一,我现在是千分之五,为什么?分析、改进,找原因。如果是成本比别人高?是生产效率低还是周期长,还是人员队伍结构不合理,这些问题是通过比以后进行系统化的改进,也是一个改进的过程。
主持人:
这也是现在大部分企业想尽办法都想得到CMMI认证的原因?
黄相民:
想做外包的话可能是这样,不做外包就不一定了。
主持人:
相比之下BMK优势体现在哪儿呢?
黄相民:
它即是一个系统的方法,又是一个非常灵活的方法,灵活在哪儿呢?不管软件企业在什么水平上都是跟别人比,不一定非得跟四级了才跟别人比。一开始比如每个人每月编了多少行代码?或者每个人一周编多少功能点?都可以比。
第二,干软件过程中,软件生命周期从需求分析、概要设计编码程序整个生命周期任何阶段都可以跟别人比,是灵活的,不是死的,也不是最终才比。我可以比任何时候的数据,这些指标是根据软件行业的规律和软件组织自己的发展目标可以灵活制定的去比。所以简单的说是随着发展过程随时随地的提高自己,这是BMK。
主持人:
相比之下CMMI它的优势体现在哪儿?
陈勇:
CMMI形成的过程是很有强劲的推动力的,是几百个机构大家集合在一起集思广益。BMK更多的是企业内部一点点做起来的,现在有很多流派,很多人支持它,但是又不是统一在一起的,所以在一定程度上有一点差异。另外CMMI这个体系是有一本书的,就叫CMMI的规范,所以找这个内容都很方便,可以查到到底怎么能评定选择什么的?另外它有一个商业机构,所以大家会发现很多人愿意做CMMI的认证,因为它把它跑起来了。另外一个敏捷开发,确实的说没有很独立的商业机构在运作,这种感觉就像微软的Windows和Linux,WIN有人在卖,所以销售的好,Linux是开源的,免费拿到的反而没有人卖,所以推广反而遇到了困难。所以说CMMI现在是最成功的商业化运作的模型比ISO还成功。
主持人:
CMMI过程中会不会用到BMK的思想?
陈勇:
会用到,CMMI也有一个量化管理的过程。可以看到CMMI有不同的级别,都体现了BMK的思想。首先二级没有说以一个数据告诉我最快最慢的速度是多少,因为二级企业还没有什么规范,比如这个小组项目小组非常厉害,那么工作状态就好,这时候比不是方法的比较,而是人的区别。这时候只是希望在二级的时候建立一些度量。到了三级之后开始积累一些历史数据,有一个OPD就是收集一些量化的数据,还有一个是做估计的时候不要拍脑袋,说凭经验怎么怎么样,是可以从历史数据中能看出来。
三级里有一个非常重要的过程就是统一认识,在组织级别上把做法之间统一起来,这种统一不一定是一样的,但至少是分类的,有了这些定义之后,四级以后月的他说一个月能编6000行代码,这边说1000行都编不了,那么你们自己和自己比,到了四级大家有各自的说法,自己该知道我和谁比的时候再接着做。到了五级是持续优化,我们在比较中找到差距、找到问题的原因,也知道该怎么改,所以不停的比就可以了。这就是不停的转,你不想优化老板都想优化。
黄相民:
CMMI的比较侧重组织内深的比较,BMK的比较是自己和别人比较,自己和先进的比你好的软件企业的指标去比较。
主持人:
BMK它的过程中肯定也会用到CMMI?
黄相民:
CMMI也看组织的能力,组织的管理、组织的过程是不是达到一定水平?要看组织过程中的文件、档案、建设规范等等都要考核。但是它不问你,你和行业基准数据比较,达到了行业基准数据70%给你三级,100%是五级?不是这个概念。它是一个内循环为主的。BMK是不管任何时候拿组织内部的数据说话。是跟国外的、国内的,平均先进指标,或者是和最好的企业比,目前软件行业有4100多个数据,国内的有350多个基准数据,给大家提供一个平台,希望大家充分使用这个资源。
主持人:
BenchMak在不同企业中实施的过程是怎么样的?
黄相民:
首先要定义比较的内容,BenchMak和企业管理PDC等都类似,比如制定比较的计划,比如想质量提高还是生产率提高?还是成本降低?还是几大关键因素?然后根据这些计划统计分析自己的数据,然后再去找别人的数据。现在别人的数据,行业协会有这个平台了,参加这个组织可以用了,就比较省事儿了。
比较以后要分析判断问题所在,制定改进计划,就和CMMI的每一级进步过程中也有改进计划一样,它也有改进计划,通过这个改进计划执行,执行以后统计新的结果再和别人比,比完了以后看我进步了没有,还有什么问题所以也是循环的。
网友:
无论是CMMI的量化管理还是BMK的标杆比对,都需要用数据说明问题,说明自身组织的能力或者标杆的能力,不同的组织有不同的业务流程,不同的数据定义,那么在甚至不知道其他组织是如何定义数据,如何参考其他组织的标杆呢?比如项目周期是可比对的指标,但是不同组织的项目启动和结束都有不同的可能,请问如何处理?
陈勇:
像咱们已经定义好了一套调查问卷一样大家发调查问卷的是是有明确的解释,何为开始,何为结束。这一点我们保证了至少在定义上有一个可比较性。
另外,我们在这个平台上可以筛选比如对欧美外包的,可以只就这部分进行比较。比如对日、韩外包的,我们可以帮大家筛选然后再来做,大家问一共就300多个数据,筛完了就没几个了,这个担心不必要,因为统计学上讲大约30多个数据就已经非常准了。大家通过自己的筛选找到可以和自己补充的那个比。
黄相民:
咱们现在是ISGSB的标准,很规范的,大家按照这个做,不要各自为政,那就乱了,没法比了。所以这个标准可以通过行业协会得到。具体协会怎么发布?这是下一步工作的事了。
网友:
请问黄先生,以专家的经验看到企业应用CMMI或BMK哪一个成本更低?受益更高?
黄相民:
据我知道的和我们上次PK的时候所涉及到的,一个CMMI四、五级认证大公司都是上亿,所以整个过程,一个软件组织从很小发展到很大的历程有十年、八年发展起来,那么它在不同阶段认证CMMI不同的级别。这个过程一个是时间长,一个是要跟软件组织发展的规模和需要而定。BMK引进以后,行业协会在网上也公布过,作为行业组织一年参加协会是一万块钱就可以使用所有的资源。用10年才10万块钱,这是很明显的比较。而且行业协会还有一个工作就是组织一些有经验的人可以免费的协助企业引导企业怎么用BMK,进一步怎么提高。如果需要更细致的帮助企业分析问题、找出原因,可能得找相应的咨询机构,付一些费用,肯定比那个要少一些钱而且是比较有针对性。
主持人:
CMMI从九几年就引进到过内了,它分为五个级别?
陈勇:
98年第一个企业做的评估。
主持人:
那么适用范围广指的是什么含义呢?
陈勇:
我们想想到底什么适用范围广,像牛顿定律适用范围广。CMMI比ISO使用范围窄一些,但是已经够广了,它最大的特点就是从几百个企业实践中提取了一些东西,它抽象了,只要做一个项目只要有计划就行,至于用什么方法,用Word还是用GPI的方法,它都不管,所以这个方法赢得了使用广。它是使用更广,没有说的太细。
主持人:
BMK的成本什么算法呢?
黄相民:
各个国家有自己的算法,作为软件行业最主要的是人力资源成本,这个在没有量化之前是很模糊的。所以老总非常困惑,给多少合适?怎么测算这就要根据工作量、质量、是不是按照规范、规程做的工作?还是他有创新解决了一些难点,例如先一个时期软件权限设置的难题很多软件公司处理起来很头疼,这时候作为一个开发人员处理的是难度很大的对象还是简单的东西,成本都相应有变化,所以不能单单靠写了一千行给你一千行程序的钱。上次咱们谈到功能点和代码行的比较的时候就曾经举过这个例子,比如挖土方,以立方统计是一个度量源,但是光有这个还不够,要看你挖的是什么,这是有难度系数的,所以软件的成本管理是复杂的,要根据开发工具、开发水平、开发能力和队伍处于不同的地区,北京人员成本月工资和偏远地区组织月工资没法比,中国和美国收入的水平也没法比,所以量化以后,比一些可比的。目前作为财务管理实际和软件管理结合有一大难点,就是软件的成本控制,成本测算,财务现在没看到这方面的规范。
主持人:
CMMI成本结算方法呢?
陈勇:
CMMI里面没有说到什么方法,它里面只说一句话,我期待着你给我一个成本估算。
主持人:
如何使CMMI和BMK在企业内并行应用呢?
陈勇:
这两个事情本来就在并行运行,很多且可能没有意识到。比如我是一个老板,刚创业,有两个程序员,这时候就要做BMK,知道谁更厉害,应该知道讨好谁谁才不会走。过了一段时间可能发现有一个人就是比别人快,或者一个小组就是比别人快,这时候,比如有些小组并没有工作很能的人但是工作效率很快,有些小组全是高人,但是工作效率并不高。因为可能这个人很厉害,但是冒进,方法不对。做BenchMak发现有人好、有人坏的时候要分析原因,而CMMI里面已经包含了很多你做了什么,做了什么避免什么问题等这样的答案。BMK是驱动的再到CMMI里找答案。BMK的结果很像是一个体检表,告诉你哪儿有问题,CMMI是一个大药房,里面告诉你吃这个、吃那个就能避免问题。
网友:
黄老师您好,请问决定软件企业不同模型的和标准是什么,我们该如何判断?
黄相民:
作为软件过程改进的目的就是为了企业效率最大化,进步目的是时间,企业效率最大化,但是也包括两个效益,一个是经济效益,一个是社会效益,不能光为了挣钱把社会责任都否掉。所以一个软件公司的形象,为什么有的形象很好?微软现在形象不错,IBM形象不错,我们国家的一些软件企业形象也不错,比如用友、东软,企业形象都不错,在这个过程中,企业处于一个什么水平?需要怎么努力?战略目标是什么,要怎么发展?决定采取什么动作、步骤。如果就甘居中小企业、二、三十人,能吃饭、挣钱,维持下来,就没必要思考更高深的。如果想从小做中、做大,或者是大家融合发展那就必须要有一系列的战略决策和发展决策,这时候就要考虑采用什么模型。如果二、三十人的企业想拿外包活就得有CMMI认证和ISO9000认证,否则不给你。当然你拿了认证人家还要考评呢,诚信程度、工作环境、员工队伍素质等都要考核。所以作为软件组织来讲要想进步首先得明确怎么挣钱?怎么树立良好的形象?所以为什么说BMK是可以在任何时候、任何阶段都可以做的工作,CMMI、ISO9000是要根据你的企业发展来做的,这两个不矛盾。
主持人:
我们也能从中看到CMMI的权威性,评估企业是否能通过CMMI需要采用什么样的标准呢?
陈勇:
有一个SKPY(音)的方法,客观的他们会检查文档,会看看出现的文档全不全是否符合CMMI的要求?标准?我们所说的标准并不是CMMI让你这样评估,而是说CMMI里说要评估成本,然后有一个成本评估,这就够了,没有什么方法,只要评估方法是符合它的要求的。这个方法里有300多个事件,期待着每一个事件都做过,如果没有做过希望做过类似的事情。
我接触过一些ISO,他们是识别不符合项,然后说能不能在多长时间内整改,如果能整改就可以通过。
主持人:
BMK在采集数据的时候对数据的来源行业是不是规范,管理是不是最佳实践怎么控制?
黄相民:
一个是软件协会和ISBSG国际组织都是通过相应的专家团队评审、筛选以后合格数据入数据库,大家共享它的基准。比如说这几千个项目平均生产率是多少?75%的生产率是多少?25%的生产率是多少?有日本的、印度的、澳大利亚的各国的数据咱们中国自从软件行业协会引导大家一起做这个工作,所有提交数据的软件公司提交的数据是经过软件行业协会的专门组织、团队进行评审合格入库的过程。
如果我是用户想和别人比较,首先要拿假数比较有意义吗?所以抛除了做假的可能,要比肯定拿公司的真数跟别人过。而CMMI和ISO认证过程中为什么老有做假的呢?是因为他要拿这个证,所以说这是两个方向的事儿。所以说这个过程是严密的,如果数据不准,不规范,没按照CSBSG引进的ISBSG引进的标准准备就没法比所以那个标准很快会推出来,今年要推出来。
陈勇:
CSBSG里面和ISBSG里面的数据都是匿名的。
主持人:
CMMI一到五级都是什么概念,概括来讲国内和国外企业是否存在某种意义上的差异?
陈勇:
一到五级最开始的时候,我们参考过一家企业什么级别都没有但是有两万个可参考的数据。看二级,如果这个企业成功取决于某一个人,那个人明天可能要走,那么这是无法控制的,所以二级的时候主要是抓项目管理,项目计划,让这个事情是可预测的。到了三级,很多人不同重复成功经验的时候,就有必要收集起来看有没有什么互补或者缺陷这是三级做的。四级就可以在另外一个层次定义何为成功,何为失败。有一句话如果无法提供数据描述一个事情表明你对这个事情了解还不够深。五级的时候有了数据量化,可以知道如果把什么东西比如周期从三个月提高到了四个月,得到了什么?可以不停的量化分析收益,分析问题的原因来做五级。
国内而言现在存在的最大问题,像黄老师写的是软件行业的专家,我就写的是挪威船级社,这是我们公司的名字,我们的工作是做咨询,大量的业务在欧洲,我们回到国内会发现,典型的就是我们喜欢以局部代表全体。现在CMMI1.2版本会发现多了一个过程部署。不能光把这个写下来在小范围用,一定要把它用下去。我们有一个客户说有40个项目,下次来你说想看哪个就看哪个,这样的企业我们感觉他们是真正部署下去了。
网友:
量化管理最基础的是收集有效数据,尤其国内公司不够规范的情况下收集数据是需要成本的,请问黄先生专家有没有相关的数据收集要付出的成本数据?有没有相关过程过进投入产出的数据?
黄相民:
关于过程改进过程中是要付出成本的,任何企业的管理都有管理成本,不是零成本的管理,但是另一句话,在管理学上来说管理出效益,如果没有管理的企业永远不出效益。所以软件公司从小到大的发展过程中一定要逐渐强化管理。因为在多个会上都谈了一个观点,软件组织没有自己的MIS,没有自己的ERP,为什么?就是软件组织的量化管理没有。所以引进了FP(功能点)、引进了ISBSG基准数据库的数据,基于功能点的为主,基于代码行的为辅。去年开会的时候我曾经问ISBSG的专家,美国在做功能点工作量统计分析占整个开发成本的多少?他们回答我是1%。当然人家是有经验了,所以我觉得我分析过是占1%-5%,100万的项目起码要有5万做统计的工作。老的企业都有统计员的,统计员的工资这是成本。我们软件行业为什么没有统计员呢?就因为没意识到。当人们意识到了就因此建立自己的度量源,建立自己的考核指标和统计过程,然后才能过程改进,才能CMMI,才能BMK,这个成本是必须付出的。而它的付出是会给企业带来社会效益和经济效益的。比如当统计出来了你的BUG率是10%,我是20%,那说明我的工作质量不如他,就要努力了。没有量化的评价,没有比较的评价,你的管理是落后的,是凭经验和感觉的,而拿数据说话的管理是真正可靠的。曾经有一家公司就因为发奖金不合理,把技术队伍发散了。就按照BUG率发奖金,所以说管理需要的是量化,需要的是比较。
网友:
怎样才能调动项目组成员度量的积极性,如何能够获得真实的数据?
黄相民:
一个是自动化手段。现在有很多软件引进的VSS,CVS,很多平台都可以自动统计工作量的。第二个是人工的用表格统计的。方式、方法不一样,看你怎么做了。
陈勇:
主观上讲很多工作也可以做,如果项目经理能给我提供一些客观的数据也可以,传统的行业是老板问三个月能不能完成,这个人想想说五个月,老板说必须三个月,他想想了说三个月吧,最后失败了。现在是如果能够提供客观的估算数据,那么我们就可以告诉老板从历史数据看这样的时间是做不出来的。这样时间长了不用老板推着你做,大家都主动的做估算,一定要给你一个数看看到底什么时候能完成。
网友:
看了你们的发言我感到受益匪浅,请位各位嘉宾企业如何解决轻量级与重量级部署之间的矛盾?
黄相民:
所谓矛盾,CMMI也好,ISO也好,没有很明确的量化,都是一些定性的,说这个企业进步了,这个企业达到标准了,ISO9000里有一些数据,但是更进一步的其他指标不全。所以BMK这个逻辑是涵盖了企业管理里的方方面面的主要指标。但是还没包括流动资金、流转率等等,它只是软件过程开发设计中涉及到的指标。所以这些是一个互补,如果光看指标不分析企业内部组织合不合理?规不规范都不管,光比指标没用,指标是用来比较改进的,BMK也强调怎么改进,但是不告诉这有问题,那有问题。CMMI是出了某一种问题,比如BUG率高,可能是哪个问题,再对号入座。
主持人:
这次聊天之前很多网友来到论坛进行了提问,有一个问题,请黄先生和陈先生分别介绍一些CMMI和BMK的成功案例?
黄相民:
引进BMK的方法时间比较短,所以咱们的软件队伍用BMK方法真正见效果的还不多,但是最近这半年多已经引起不少企业重视,已经找协会要求协会出人、出力协助他们的工作。我曾经在前年做了一家中大规模软件公司的咨询服务,是一个软件过程开发的工作,是一个报价体系。就是干时间活为什么报这么多?然后一级一级的评审给你钱,执行完了以后再报上来。这也是跟内部的数据比还没跟国际数据比,所以BMK要说引进到国内其他行业已经成功应用的有海尔、中石油、红塔都用BMK了。
陈勇:
很多,确切的说是CMMI和BMK的结合。像阿尔卡特,我们做CMMI的时候有一个具体的要求是投入、产出的,像阿尔卡特买我们的咨询是一年一年的。现在问题是这些工作能不能赚回来,他要提出指标,如提出按照完成率从98%提高到99%,给出很多指标,到了不同的部门都有不同的分解方法,然后分解出数据放在那儿。两年之后我们做CMMI,做过程改进,又出现了新的数字,再放进去跟两年前比,真的提高了吗?有些企业的确做的非常好,是用BMK当体检表分析当天的状态,用CMMI当作一种药物,不停的提高他们的身体素质,最后达到98.5%这样的状态。
主持人:
由于时间关系这次聊天就到这儿,如果网友还有什么问题欢迎您到赛迪网技术社区有专家给您解答,欢迎两位专家的到来。谢谢大家!








Tags: 软件度量   黄相民   CMMI  

类别: 无分类 |  评论(3) |  浏览(3177) |  收藏
一共有 3 条评论
3楼 吴量观点 2007年11月23日 17:44:36 Says:
您好!欢迎您有时间到我的博客去看看吧。
2楼 hotcomputer 2007年11月18日 13:40:42 Says:
黄先生你好:
我是你的一个学生,我想问问离散数学在计算机编程中是怎么应用的,能给我举个例子吗?这是我的邮箱qq163shi134@163.com
1楼 趣得网 2007年08月30日 16:49:36 Says:
呵呵
发表评论