持续交付2.0

为什么研效衡量吸睛,但续约者廖廖

Image

摘要:定量指标是很有用的,因为它们具有规模性,能给你信心。你可以在很长一段时间内度量整个公司的工程师的经验,并且对结果有信心。然而,它们没有提供任何背景信息或描述。定量指标并不能解释为什么工程师选择使用过时的工具来完成他们的任务,或者为什么他们采用不同寻常的工作流,或者为什么他们会绕开一个标准流程。只有定性研究才能提供这种信息,只有定性研究才能为下一步改进过程提供见解。
内容:1、使用适当的指标进行数据渠道决策。
2、依赖数据往往使大多数决策是客观的,但不是全部。
3、从人的角度收集和分析数据有其自身的挑战。

1

为什么要度量工程生产力
衡量工程生产力是一项具有挑战性的任务,因为工程领域的生产力受到各种因素的影响,例如项目类型、工作复杂性以及工程师的技能和经验。然而,当你无法衡量时,就很难管理与改进。
谷歌认为,业务的大规模发展,需要增加额外的人员,但也可以通过提高每个人的生产力来解决。那么就要学会如何提高工程师的工作效率。
要做到这一点,我们需要了解是什么让他们高效,识别在我们的工程过程中低效的地方,并修复识别出的问题,然后我们将根据需要重复这个循环,进行持续改进。
我们要高效地提高工程师的生产力,提高的生产力的成本必须小于提供的生产力。
鉴别:它值得被度量吗?
度量工程师的生产力之前,我们要知道什么时候一个指标是值得度量的。
  • 度量本身很昂贵:它需要人度量工作流程,分析结果,并将结果发布给公司的其他部门。
  • 度量本身也很繁琐,可能减缓了工程组织的其他工作。
  • 即使度量并不缓慢,但是跟踪过程中可能会改变工程师的行为,可能会掩盖潜在问题。
我们从以下方面考虑一个指标是否值得度量:
  • 你期待什么结果,为什么?
  • 如果数据支持的预期结果,将采取什么行动?
  • 如果我们得到一个负面的结果,会采取适当的行动吗?
  • 谁将决定对结果采取行动,他们将何时采取行动?
通过询问这些问题,我们发现,在很多情况下,做度量是不值得的。
有很多好的理由不去度量工具或者流程对生产力的影响:
  • 现在你无力变更流程或者工具。
  • 任何结果不久都会因为其他因素而无效。
  • 结果将仅用作虚荣心指标,以支持你无论如何都要的事情。
  • 仅有的度量指标不够精准,不足以度量问题,而且可能会与其他因素混淆。
当成功度量软件过程时,并不是着手去证明一个假设正确或者不正确;成功意味着给利益相关人决策所需的数据。如果利益相关人不使用数据,那么项目常常是失败的。
只有当基于度量结果能够做出具体的决策时,我们才应该去度量软件的过程。

2

根据目标和信号来选择有意义的指标
我们可以使用“目标/信号/指标”框架来指导指标创建:
  • 目标(Goal):期望达到的结果。它是用来表达你想了解的较高层次上的东西,而且它不应该指定某种具体的度量指标。
  • 信号(Signal):用来判断我们是否已经得到了最终结果的东西。信号是我们想要度量的东西,但是它本身很可能无法直接度量。
  • 指标(Metric):信号的处理。这是我们事实上可以度量的东西。它可能不算是非常理想的衡量标准,但是我们认为它已经足够接近了。
  • 要防止“路灯效应”:如果你去亮的地方找你想要的东西,那你可能找错了地方。

    如果只是用那些我们易于理解且易于度量的指标,而不管这些指标是否适合我们的需求时,就会出现这种情况。

我们要考虑哪些指标是真正能帮助我们实现目标的,而不是简单的考虑我们有什么现成的指标。
我们要在度量前,提出适当的度量指标集合,并制定一些有原则的方法,从而帮助避免指标蔓延和指标偏差。
GSM向我们展示度量覆盖到了哪些地方,哪些地方没有覆盖到。
重要的是保持可追溯性。对于每个度量指标,我们应该能够追溯到它要充当代理的信号,以及它试图度量的指标。这样可以确保我们指导我们要度量哪些指标以及为什么要度量它们。
目标
应该是按照所期望的特征来撰写的,同时不参与任何度量指标。这些目标本身是不可测量的,但是一套好的目标是每个人着手于信号和度量之间都可以达成一致的。
我们首先要有一套正确的度量目标。
信号
就是让我们知道是否已经实现了目标的。
指标
是我们最终决定如何测量信号的地方。指标本身并不是信号,他们是作为信号的可度量代理。既让他们是代理,就可能并不是完美的。
使用数据验证指标
定量指标有用,因为它们具有良好的规模化。
采取行动并跟踪结果
定量指标能给你信心。你可以在很长一段时间内度量整个公司的工程师的经验,并且对结果有信心。然而,它们没有提供任何背景信息或描述。定量指标并不能解释为什么工程师选择使用过时的工具来完成他们的任务,或者为什么他们采用不同寻常的工作流,或者为什么他们会绕开一个标准流程。只有定性研究才能提供这种信息,只有定性研究才能为下一步改进过程提供见解。

3

古德哈特定律

当一个指标本身成为唯一追求的目标时,它就不再是一个好的衡量项。

这就是古德哈特定律。这一定律还有一个推论,即:

一切科学评估的度量,都注定会被滥用(玩弄)。

当前, 很多 IT 管理者都在寻找一套完美的衡量指标,希望一劳永逸地解决软件工程管理问题。然而,他们在这条路上一直碰壁。因为软件工程问题不只是技术问题,它是一个社会学问题。

软件开发目前还仍旧是依赖 手工+ 脑力的劳动。Facebook 八年的数字证明,虽然 Facebook 从2008年开始,工程师人数不断增长,但是人均日代码量并没有增加,基本保持稳定。

工具的使用并不能让工程师的人均日代码生产量增加。当前,DevOps 工具的使用还仅仅是辅助工具,做得好一些,可以让使用者在工作时感到心情好,但它并非生产力的绝对提升因素。

它的一个很大的作用是透明,将工作透明出来。然而,由于其生产工序并不绝对地标准化,工作量的评估一直都是一大难题,所以它更多的依赖于工程师的个人技能与经验。所以,只有通过近距离观察,才能做到工作透明。

这在当前现状下,基本是一个不可能完成的任务。所以,所有的度量工具在刚刚引入时,好像还有点儿作用。但是,一旦人们对它了解和熟悉了,由于上面说的原因,基本就不是很奏效了,除非你的衡量最终不用于工作流程中的执行人。然而,这种原始手艺活儿的大规模地应用,就是很困难的。

如何才能解决这种问题呢?一个必要条件就是要有足够的人才密度。过去软件行业的大发展,使得我们没有时间训练更高技能的从业者。也许,接下来会有几年的时间了。又或者 AI 的发展让整个行业都不再依赖于手工编码。