造价师/评估师培训:010-82146681
联盟会员/机构评定:010-82146682
业务合作咨询:010-82586972
E-mail:bscea@bscea.org
Capers Jones访谈录及随想
为了庆祝国际功能点用户组(IFPUG)成立三十周年, IFPUG在2017年举办了很多活动,其中之一就是出版了MetricView杂志的30周年纪念专刊,在这期杂志中登出了Capers Jones的访谈记录。
进领域。他是著名的作家和演讲家,出版了很多书籍简单介绍一下Capers Jones,Jones先生是国际软件工程行业中的“大咖”,专注软件度量、过程改,其软件度量的文章曾经在《科学美国人》上发表。
关于这次访谈,我有很大的感触。我将一边翻译,一边与国内的朋友们讨论。
问题:为什么越来越多的组织认识到了软件度量的重要性?
Jones:软件已经是当今世界最重要的智力资产,它几乎可以控制任何事情:汽车、房屋、国防、银行等等。所以,从业者真是应该知道软件本身的质量、生产率、安全性等信息。很不幸,传统的度量方法(例如:代码行法、缺陷成本法),实际上遮蔽了软件的经济价值、bugs、质量等一系列问题的实质。
而功能点方法是“唯一”的能够给从业者带来良好视角的工具——来告诉大家:软件到底怎么样。
我的思考:相比较国外“传统落后”的方法,国内的某些组织,是根本没有软件“量化管理”的意识呀。无论是上市公司,还是5-6个人的小作坊,对于软件自身的量化指标还是停留X个模块、Y个功能、Z个CQ单(页面、单据)等原始层次上。
问题:您又一次的抨击了“代码行法”?
Jones:是的,代码行的度量对高级语言“不利”,而且也不能用来度量需求分析、设计以及其他非编码工作——而这部分的工作量占据了全部软件项目工作量的一半以上。
问题:组织要进行软件的度量,为什么要以功能点作为基础?
Jones:软件项目受到“多因素”影响,例如:开发语言、团队经验、项目方法(敏捷、瀑布)、应用规模等。使用功能点方法,组织即可以逐一地“单因素分析”,也可以综合地“多因素分析”。这些分析结果是组织“真的”应该知道的信息。所有的这些,都可以基于功能点的基础。
在咨询项目中,我比较喜欢的做法就是将数据直接展示给客户看,并告知数据的业务含义。例如,一个组织的生产率低于每月5个功能点,那么一定是那里出了问题;超过了每月8功能点,则说明做得不错。
每个功能点有4.5个bug,说明bug太多了;bug数量低于3个,则说明质量不错。
如果bugs的消除率低于95%,说明质量控制(QC)的不好;消除率在98%以上,则说明做得很好。
以功能点为基础的“缺陷”数据,可以很好地管控质量;每月(每小时)的功能点产出,可以很好的管控组织的产生率。
我的思考:Jones提倡的“用数字来说话”的管理思路,目前在国内一些先进的软件组织也在贯彻。我换个思路,另举一个例子——“小米”。雷军的管理也是将数据公开给员工,员工自己看了数据,自己就知道努力的方向。
问题:如果您只能选择一个度量指标,将会是什么?
Jones:那肯定就是“人时/功能点”,另外一个指标“功能点/人月”并不是很客观,在印度,软件从业者每个月工作190个小时;而在新西兰,人们每月只工作115个小时。
“人时/功能点”可以适应所有国家、所有软件项目。这个度量指标可以用来度量需求、设计、构建和测试等活动;也可以用来度量整个项目。
我的思考:Jones知不知道在中国有个说法叫“996”呀?如此,每个月,一个从业人员的工作可是惊人的288小时;是新西兰的2.5倍呀。
很多中国老板对此“引以为傲”,总以为自己“赚到”了。
但是,一个恒定不变的经济学原理,就是“拿多少钱干多少活”。提倡“加班文化”的老板们,如果有一点“科学管理”思维,用功能点来度量一番,应该会发现“长期加班”与“正常工作”相比,“有效产出量”并没有实质的增长。增长的只有“总体成本”。
问题: 您是否希望将功能点的逻辑扩展其他领域?
Jones:我们可以使用“硬件功能点”来进行综合的产品成本研究,尤其是软硬件混合在一起的产品,例如:计算机、服务器。
相比较拥有软件,很多公司拥有更多的是数据,我们应该扩展一个“数据点”的概念。因为数据质量的成本更高。数据的bug引发的问题更多,对于数据而言,至今没有很好的规模度量工具。
将软件功能点、硬件功能点、数据功能点结合,也许会开辟一个全新的经济学领域。
此外,我们也许可以将价值点的概念引入到功能点中。会计可以核算的价值,就是用金额即可。一些无形的价值就很难度量,例如:新发明治疗方法的医学价值,新型武器系统的缺陷价值。所以,我想我们可以引入价值点来比较功能点的成本与价值。
问题:哪些组织合适研究上述这些新的度量方法?
Jones:首先应该就是一些原来的功能点组织,例如:IFPUG以及COSMIC。但是目前来看,它们都没有实际的动作。接下来,可能就是一些大学,因为它们本身就有研究的职责。但是,我认为也许一些大公司,例如IBM、Microsoft、苹果,它们很有可能这么做。
我的思考:熟悉软件度量的人都知道,功能点方法本身就是由IBM发明的。在国外,有一大批影响世界的研究、发明都是由企业进行的。例如:香农就是在贝尔实验室发明的信息论。曾几何时,国外大企业里的学术气息很浓,并不把盈利看的很重。对于这些度量方法,国内的大学、大企业是否也该行动起来?
问题:哪些国家很好地使用了软件数据?
Jones:首推巴西,2008年巴西政府要求所有的政府合同必须使用功能点方法,南美的墨西哥也不错。其次,就是亚洲三国——日本,韩国,马来西亚。日本的功能点用户组很大,已经做了很多的工作。韩国也是要求政府项目中必须使用功能点;马来西亚则是刚刚开始。
而中国和俄国,应该比较不错,却实际上却进展不大。
我的思考:其实,中国的情况应该比Jones了解到的要“乐观”一些。很多国内的组织已经认识到了软件度量的重要性。“北京软件造价评估技术创新联盟”这两年,还是做了很多的工作。
问题:做过去的十年中,全球功能点的应用趋势如何?
Jones:我知道有25个国家,其功能点应用趋势是上升的。但是,我们也面临着“敏捷”以及“故事点”的挑战。故事点是一种很糟糕的度量方法,它本身不标准,更不是ISO的标准。它的偏差会达到300-400%。敏捷团队反对功能点,却在使用几乎无效的故事点。尽管敏捷很流行,但是在度量上真是走错了方向。
我的思考:Jones的这个结论是否有点武断?我还不好说。前期,我曾经翻译过一篇文章《故事点与功能点》,其大意就是这两种方法不是对立的,可以相互结合使用。