敏捷开发中的度量说的是什么?

748 阅读5分钟

在软件开发过程当中,度量是一个始终无法绕开的问题,管理学大师彼得·德鲁克曾经说过“你如果无法度量它,就无法管理它”,要想有效的管理,有效的度量体系就显得非常必要。有效的度量体系既要面向价值又要面向实施,但今天我们不谈体系,而是聊一下在精益软件开发中,度量是什么,它起到了哪些积极有价值的影响;

2290597-f2940405eb945b13.png

度量不是什么,哪些事情是我们应该避免的。
度量有哪些“坑”以及度量的意义到底是什么?

度量是什么

度量是一个组织特定上下文中形成的一系列共识。

度量是一个重要意义是统一第项、统一方式,从而使不同的人能够在一致的基准上进行沟通,减少产生误解的可能性。在一个软件开发组织里,度量统一不仅仅是度量手段、度量对象、度量单位,更重要的是统一对目标的认识。

度量是把经验模型向量化模型进行匹配的尝试,既是标尺又是镜子

量化模型就是通常所指的硬数据、硬指标,这是大多数管理人员想看到的。虽然量化的不一定就是好的,量化模型确实有个非常重要的优势—方便进行比较,这种比较有两种类型。
跟自己比较:持续改进,持续超越自己,就需要比较自己发生的变化。

横向比较:这对于拥有大量开发人员、团队和产品的大型组织来说,是非常有吸引力的。在组织内部进行团队和团队之间的比较,是不少公司激励大家提升绩效的手段。另外,如果能跟业界的数据比较,也可以知道自己在行业中的位置如何。

度量即帮助我们知道我们在离自己目标的达成上有多少差距,同时也反应了团队或者组织在最近一段时间内做的到底怎么样,进展如何。 但量化模型是对大量上下文信息的汇总、过滤和抽象,这种简化容易让人们在度量中失去了度量发生的场景细节,迷失了度量本身的目标,以至于为了度量而度量。

度量是一个系统工程,需要不断演进

度量是包含人、流程、组织和工具的一个动态系统,如果把软件开发组织看做一个动态的系统,度量实际是作为反馈机制来对这个系统产生作用的。应根据组织和产品所处的不同环境,选择适合当前阶段的关键指标,重点优化该指标。

图片2我.png

以鲸舟敏捷研发管理工具为例。

度量不是什么

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

度量本身并不对客户直接可见,不是作为产品或服务的一部分为客户直接创造价值,因此根据精益的理念,应该尽可能地减少。

作为一个组织来讲,应该积极地评估当前的度量活动的成本,分析是否真正为达成业务目标发挥着价值,从而确保运行度量体系的投入产出是在一个合理的水平。

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

软件开发当中的度量大多使用的是衍生指标,因此单独的指标,甚至是一系列的指标加在一起,也通常无法反应具体开发场景的上下文。

用度量结果作为判定绩效级别的主要手段是一件非常危险的事情,几个同样优秀的团队或个人在具体指标上的表现,各自可以有很大的差异。

度量不是免费的

度量需要投入团队的时间,项目管理人员的时间,质量保障人员的时间,以及公司管理人员的时间,还可能会有工具和基础设施的投入。

围绕各种目标需要度量体系的设计和实施,体系的运转需要数据的收集、分析和汇报,这些环节做得不到位是不可能产生预期效果的,而要做到位,所需的投入可能并不是一个可以忽略的小数目。
因此,目标和指标的选择就显得特别重要,试图实施一个大而全的度量体系,通常弊大于利。

度量常见的“坑”

  • 数据的生产者不是数据的消费者,数据生产者不关心数据的价值,也不关心数据准确与否。
  • 数据的生产者担心是否会对自己带来惩罚或者受益,不关心数据跟软件开发的关系。
  • 数据=控制

度量的意义

度量只是手段,不是目的。度量的目的是告诉我们距离目标还有多少,现状是什么,进展如何,以驱动持续改进。

总得来说度量的意义在于: 让目标更明确; 让现状更清晰;