写点什么

敏捷度量指标争论又起

  • 2009-11-11
  • 本文字数:1402 字

    阅读完需:约 5 分钟

敏捷教练和咨询顾问们经常警告他们的客户:传统的度量指标,诸如收益价值、工作小时数、代码行数,以及代码测试覆盖率等都不能与敏捷项目很好地吻合。但是这样,客户们就会产生下面的问题:什么是好的敏捷度量指标?相对于坏的度量指标,怎么能提出好的度量指标?即使是好的度量指标,在某些环境里是否也会变得不再合适?

XP/Scrum 团队里面经典的度量指标自然是开发速率(Velocity),或者说团队在上一次迭代里面完成了多少开发工作?这个指标起初只是为了帮助团队更好地决定下一次迭代的计划工作量。然而,“开发速率是否可以度量团队的生产率,或者比较两个团队?”——这样的问题却屡见不鲜。 Hiren Doshi 指出开发速率这一参数是与具体团队相关的。另外,敏捷顾问 Peter Stevens 也质疑团队是否会因此在度量上耍花招:这个故事应该是 2 个点,还是 3 个点?这完全依赖于团队的判断。如果团队认为需要交付尽可能多的故事点数,那么他们显然会选择 3 个点,也许更多——5 个点。”

敏捷/ 精益教练 Dave Nicolette 警告大家设计拙劣的度量指标会导致低劣的产出结果。举例来说,如果业务上奖赏修复 bug 和救火的行为——人们就会因此去制造 bug,四处点火。

敏捷教练 Deborah Hartmann Press 和敏捷管理顾问 Robin Dymond 在他们的论文“ Appropriate Agile Measurement ”中给出了好的敏捷度量指标的几个启发性原则:

  • 坚持并强化精益与敏捷原则
  • 度量产出结果,而不是产量
  • 追踪趋势,而不是数量
  • 选取轻量的度量指标和“诊断”方法
  • 易于收集
  • 展示指标的上下文和重要的参数,而不是掩饰
  • 促进有意义的讨论
  • 度量价值(产品)或者流程
  • 鼓励“足够好”的质量

那么,什么是好的敏捷度量指标?

Ron Jeffries 建议使用可工作的经过测试的特征数量(Running Tested Features,简写为 RTF,下同):

  1. 所需的软件被分解为给定名称的特征(需求、故事等),它们组成了需要交付的整个系统
  2. 对于每个给定名称的特征,至少有一个或者多个自动化验收测试,(当它们都通过了),反映了特征已经全部完成
  3. RTF 指标表示了项目在各个时刻有多少特征通过了各自的全部验收测试

Scrum 教练 Peter Hundermark 建议可工作的自动化测试数量(Running Automated Tests)也是度量指标:

在一定条件下,团队拥有更多的可工作的(即通过的)自动化测试,对于软件质量是一个积极的信号。但一旦超出某个水平,该项指标就将不再真实,但我们还没有遇到哪支团队达到了这一点。(我们倒希望遇到呢!)

根据小道消息,在 salesforce.com 向敏捷的大转变中,这项指标就是该公司使用的主要指标之一。

此外,他还提到了“进行中工作量”:

进行中的条目项(故事)是一种生产率指标。它旨在帮助团队跟踪他们的协作状态。在敏捷团队里,这表示对于整个团队而言,只要条件允许,就在单个工作条目上协作直到其“完成”。这样增加了产出率、质量和相互之间的学习,减少了直到 Sprint 结束时条目仍未完成的风险,那样导致了浪费。 跟踪每天有多少任务项处于“进行中”状态,能使团队的协作程度透明化。图表则以天为单位对进行中的故事进行跟踪。它反映出 Sprint 的不可预测性:它应该随着时间逐渐趋近于 1,一旦出现任何大于 2 的数值,Scrum Master 就该行动了。

最后,Deborah 和 Robin 提醒大家在设计指标的时候,不仅应该考虑何时使用,也要考虑何时停止使用,以及可能的利益博弈。

请参阅 InfoQ 之前相关报道: Metrics in an Agile World Agile EVM 查看英文原文: What is a Good Agile Metric?

2009-11-11 20:152750
用户头像

发布了 76 篇内容, 共 25.7 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

Docker安装minio(CentOS7)

蜗牛也是牛

微博评论高可用高性能计算架构设计

Jack

架构实战训练营9期

惊艳华为PocketS发布会! 杰美特旗下高端品牌决色推出首款“月光宝壳”

科技热闻

深入理解Node.js的进程与子进程

coder2028

node.js

JAVA concurrency -- AQS 源码详解

骑牛上青山

Java 源码

web前端培训上海学习好吗

小谷哥

5 分钟教你搭建「视频动作分类」系统

Zilliz

人工智能 计算机视觉 Towhee 视频动作分类

自助客户服务页面|从To B产品流量获取到客户服务体验上升

Baklib

专为实时而生 — GreptimeDB 现已在 GitHub 正式开源

Greptime 格睿科技

开源 分布式 云原生 时序数据库 存算分离

阿里内部高并发核心编程笔记:多线程、锁、JMM、JUC、设计模式

程序知音

高并发 java架构 后端技术 高并发架构

量化交易炒币机器人开发合约策略

薇電13242772558

量化策略

数据挖掘、机器学习、深度学习的区别

九章云极DataCanvas

数据挖掘 机器学习 深度学习

面向智慧城市的GIS框架

tjn

GIS 可视化 11月月更

Go语言—基本输入输出包的使用

良猿

Go golang 后端 11月月更

鼎医信息加入PolarDB开源数据库社区

阿里云数据库开源

阿里云 polarDB PolarDB-X 阿里云数据库 PolarDB for PostgreSQL

web前端培训学习需要注意什么

小谷哥

哪些前端学习方法对小白比较有用?

小谷哥

带你全面了解Gateway

好程序员IT教育

Spring Cloud Gateway SpringCloud Gateway

系统运维利器,百万服务器运维实战总结!一文了解最新版SysAK|龙蜥技术

OpenAnolis小助手

Linux 开源 运维 龙蜥社区 SysAK

java学习后该怎么培养自主学习能力

小谷哥

OpenI启智社区2022年度优秀项目及开发者申报通知

OpenI启智社区

开源社区 优秀项目 优秀开发者 OpenI启智社区

5 步!用阿里云 Serverless 搭建高质量的图片压缩工具

阿里巴巴云原生

阿里云 Serverless 云原生

极客时间运维进阶训练营第四周作业

好吃不贵

大数据培训学习后,就业不好就业

小谷哥

直播预告|全闪文件存储在 AI 大数据领域的前沿应用

焱融科技

云计算 分布式系统 高性能 文件存储 全闪存储

豆瓣评分9.8!阿里内部的分布式架构手册让多少人突破了瓶颈?

程序知音

Java 分布式 java架构 java架构师 后端技术

「推荐收藏」提高组件库Level必做好这六件事

GFE

前端 组件库

pytorch实现空洞卷积+残差网络实验(torch实现

Studying_swz

深度学习 11月月更

深入剖析nodejs中间件

coder2028

node.js

STL迭代器失效问题

Maybe_fl

Milvus 编译环境演进

Zilliz

c++ Python Milvus cmake 编译环境

敏捷度量指标争论又起_研发效能_Mark Levison_InfoQ精选文章