精益软件度量——实践者的观察与思考
上QQ阅读APP看书,第一时间看更新

1.3 度量不是什么

1.度量不是软件开发固有的活动。

度量本身并不对客户直接可见,不是作为产品或服务的一部分为客户直接创造价值,因此根据精益的理念,应该尽可能地减少。作为一个组织来讲,应该积极地评估当前的度量活动的成本,分析是否真正为达成业务目标发挥着价值,从而确保运行度量体系的投入产出是在一个合理的水平。

2.度量应该避免跟绩效直接相关。

正如前面所说的,软件开发当中的度量大多使用的是衍生指标,因此单独的指标,甚至是一系列的指标加在一起,也通常无法反应具体开发场景的上下文。用度量结果作为判定绩效级别的主要手段是一件非常危险的事情,几个同样优秀的团队或个人在具体指标上的表现,各自可以有很大的差异。这就好像用同样的指标,比如GDP,来考核一个舒缓轻松的旅游城市大理和一个紧张繁忙的工业城市东莞。如果由此造成了两个城市趋同的建设行为,比如大建工厂,大修基础设施,想象一下在洱海边工厂林立的情景吧,对大理来说,这就会是灾难性的后果。同样,把一套标准的度量与个人、团队绩效强相关,很可能导致各种奇怪的博弈行为,中长期的负面作用经常会大于短时间指标提升带来的好处。前面提到的通过代码行数产出度量生产效率的方式,带来的大量冗余代码、废代码就是软件开发中的诸多博弈行为之一。

3.度量不是免费的。

度量需要投入团队的时间,项目管理人员的时间,质量保障人员的时间,以及公司管理人员的时间,还可能会有工具和基础设施的投入。围绕各种目标需要度量体系的设计和实施,体系的运转需要数据的收集、分析和汇报,这些环节做得不到位是不可能产生预期效果的,而要做到位,所需的投入可能并不是一个可以忽略的小数目。因此,目标和指标的选择就显得特别重要,试图实施一个大而全的度量体系,通常弊大于利。

最后,软件开发中并不是所有的目的都要用度量来达成,度量也不是帮助达成所有目标的灵丹妙药。