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

4.6 指标体系需要演进

度量体系中的指标不是一成不变的,所谓“流水不腐,户枢不蠹,动也”。企业内部和外部环境的变化不可避免,我们设计体系时所期望满足的目标和优先级也可能发生变化,因而需要随之增加、减少或是修改当前的指标。当增加一个指标的时候,一定要记住重新审视一下己有的指标,看看是否有可以减去的,否则指标体系将会越来越沉重,体系的投资回报逐渐降低。

说到演进,我们在不同公司,特别是比较大型的公司,看到的现象经常是只增不减。当遇到一个需要从流程角度来解决的问题时,流程人员就会尝试在流程上增加新的内容,或者增加新的流程活动,或是启用新的指标,以减小该类问题发生的可能性。随着时间的流逝,流程和指标变得越来越复杂,由于执行贯彻的难度和成本己经使其成为正常运转的枷锁,整套体系形同虚设,最后就没什么人会再关心什么是真地被落实了。

度量体系的演进受到多个因素的影响,有必要对这些因素进行定期的评估。首先是目标的演进,组织在不同阶段,应该对目标定义有不同的优先级,而目标的优先级会对指标体系的裁剪产生影响。以产品生命周期的一个场景为例。如图4-4所示,在早期,抢占市场份额,夺取先发优势可能是最重要的成功要素,那时,市场响应速度就是度量的重心;而当产品进入成长和成熟阶段,质量是树立高端形象,在利润率上拉开优势的关键;到了更后面的阶段,效率、成本则对延长产品生命期,获得更多的收益起到更重要的作用。

图4-4 产品生命周期

其二是指标数据的收集和分析手段。前面说到,指标设计的选取需要考虑有效性、可靠性和成本3个因素,而数据收集和分析工具的适用性对这几个因素都有至关重要的影响。项目管理工具是否能有效地体现精益的理念,直观地呈现工作单元的状态和在工作环节之间的流转状况,以“看板”的方式把各个环节的队列可视化出来?构建设施是否能够及时反馈每次合入代码的内部质量和外部质量,监测新的变更对整个产品、各个团队有什么影响?逐步有意识地部署、定制和改进相关的工具,就能够以较低的成本,为度量指标的选择和裁剪提供更多的灵活性,使体系更加契合目标的需要。

其三是团队的成熟度。一般来讲,团队对于指标的使用也是有一个认识的过程。如果一个团队很少在日常运营中使用度量,哪怕经过了系统的培训,还是很难在一开始就能判断到底什么指标是有效的,什么指标是没有太大意义的,因此团队对指标的使用经验,其实也是指标体系演进的重要输入。经过一段时间的实践,团队应该能够从覆盖不同领域和目标的指标中做出选择,获得有意义的综合性信息,而不至于淹没在一大堆让人困惑,不知道有什么价值,充斥着噪音的数据。

指标演进所面临的一个明显的挑战是历史数据的保留和延续。通常来讲,我们收集和保持越长的历史指标数据,我们就越容易从中间发现规律性的线索,这种规律性也就越可靠。这种规律其实就是关于这个组织、这个系统所沉淀的一种知识。指标的变化可能意味着历史数据的中断,那么在指标的演进和历史数据的延续性之间如何权衡呢?我们观察到,历史数据的价值在不同的产品开发组织中是不一样的。对于前面举的Big Bank和Big Teleco两个例子来说,Big Bank的软件开发团队面临的业务和技术的演进相对很快,几年前的度量数据对当前的软件开发的借鉴意义可能己经不是太大。相对而言,Big Teleco使用的技术就相对稳定,产品的生命周期也比较长,在这种情况下,提炼一个核心的指标集合,在相当长的一段时间内累积这些指标的历史数据,在具备一定程度一致性的数据中寻找模式(pattern),则能够对后续的提升和创新机会提供线索和证据。