写点什么

开发速度正在杀死敏捷吗?

  • 2011-11-10
  • 本文字数:1034 字

    阅读完需:约 3 分钟

敏捷宣言的签署者之一,Jim Highsmith 在他最近的博客“开发速度正在杀死敏捷”中描绘了对开发速度“饥渴”的经理会用开发速度作为生产率的衡量指标。他写道:“……他们通常狂热的衡量开发速度——团队开发速度、不同团队间开发速度的比较、组织级的开发速度、甚至是每个开发人员的开发速度(呸!)”

Highsmith 指出开发速度正被越来越多的用来衡量生产率。原因显而易见。任何衡量生产率的方法,可以帮助你了解什么方法有效、什么方法无效,以便调整。而且,开发速度数据容易获得、便于计算并被视为是大量输出的计量结果。但 Highsmith 警告说,这种度量太过关注交付故事点的数量。“这个数量降低了交付的客户体验的质量”,并在他所谓的“交付引擎”上投入过多。

让问题更加复杂的是,敏捷运动专注于高度客户参与——总的来说这是好事——但我们走得太远了。很多“敏捷主义者”公开抱怨他们不能让组织专注于技术实践——但为什么我们鼓励产品经理对优先级做出决定,然后当他们用速度来衡量工作情况时,而大吃一惊呢?在传统方法中,我们太过缺少客户参与——从而赋予产品经理安排优先级的控制权。

Highsmith 不是第一个质疑敏捷实践中开发速度的用法的人。 Mark Levison 在他去年的博客文章“敏捷项目中开发速度的误用”中,他定义了开发速度是团队完成的工作量除以完成时间。他写道“工作量通常以故事点数(一个相对大小的数量)计算。”

Levison 谈论了用开发速度比较两个团队的生产力。但 Levison 指出:

敏捷 /Scrum 团队使用相对大小的估算(比如,这个用户故事 / 功能是大于还是小于我们的“基准”用户故事?),而不是像传统方法中的绝对大小估算。互相比较、标杆对照、或者任何比较开发速度的尝试时,都会遇到这个问题:我的故事点数 ≠ 你的故事点数,因为不同的项目采用了不同的基准用户故事。不同的项目的问题域不一样,项目成员也不一样。

Scott Ambler 也在几年前写过有关“在不同团队间比较开发速度的危险”这一主题的文章,他建议不要计算每个团队的加速度。Ambler 认为,这种做法的优势在于:容易计算、易于自动化并难于博弈。缺点是,这种度量是间接的,很大程度上依赖于Ambler 称之为的“捏造因数”。

可能是Highsmith 标题党了,他和Levison 都不是说开发速度是完全邪恶的。Highsmith 写道,“开发速度的正确用法是一个校准工具,是一种有助于做基于能力的计划的方法”,Levison 说,“开发速度和发布计划的真正价值在于让产品经理清楚在下个发布时能得到什么。”

查看英文原文: Is Velocity Killing Agile?

2011-11-10 07:182680
用户头像

发布了 32 篇内容, 共 92390 次阅读, 收获喜欢 1 次。

关注

评论

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

Dubbo3 在同程旅行的实践

阿里巴巴中间件

阿里云 云原生 dubbo

一文搞懂Spring,堪称Spring源码终结者

小小怪下士

Java spring spring源码

Linux下OpenCV出现错误:ASSERT false in file qasciikey.cpp, line 501

Geek_7ubdnf

Linux OpenCV

使用 DataEase 制作动态轮播仪表板

搞大屏的小北

测试开发 | 跨平台设备管理方案 Selenium Grid

霍格沃兹测试开发学社

写作的“收益”超乎想象

王中阳Go

深度思考 学习方法 写作 写作技巧 写作感悟

盘点16款跨平台应用程序开发框架

FN0

跨端框架 跨端运行 跨端发展

我理解的金融级数据库

宫博

分布式数据库 金融行业 oceanbase 金融信创 金融科技创新

备份谷歌或其他浏览器插件

Geek_7ubdnf

浏览器 Google

小令观点 | 去中心化可没那么难,古代令牌就已经做到了

令牌云数字身份

身份 Web3.0

Kratos微服务框架实现权鉴 - OPA

golang 微服务 鉴权 OPA Kratos

透视华为云云原生数据库的演进,能给行业带来哪些启发?

华为云开发者联盟

数据库 云原生 后端 华为云 企业号 1 月 PK 榜

WXSS 如何进行编译?

FN0

小程序 微信

当你输入网址,小手一点,然后发生了什么

华为云开发者联盟

前端 HTTP 华为云 企业号 1 月 PK 榜

ModuleNotFoundError No module named 'PIL'问题解决

Geek_7ubdnf

Python

Java中Get和Post的使用

Geek_7ubdnf

Java

软件测试/测试开发 | Jenkins 如何参数化job ?

测试人

软件测试 持续集成 jenkins 测试开发 测试开发自动化测试

SpringBoot实例

Geek_7ubdnf

Java springboot

大银行数字化升级之后,火山引擎VeDI这次要把能力带给中小金融机构

字节跳动数据平台

大数据 金融 数字化 金融行业

软件测试/测试开发 | Jenkins 节点该如何管理?

测试人

软件测试 持续集成 jenkins 自动化测试 测试开发

服务网格|如何使用 Amesh 配置插件

API7.ai 技术团队

Service Mesh 服务网格 APISIX 网关 Kubernetes Serverless

10分钟在 Rainbond 上部署 mall 电商项目

北京好雨科技有限公司

pip安装报错:Command python setup.py egg_info failed with error code 1

Geek_7ubdnf

Python

MegCC 新版本来啦!新增 Benchmark 等工具,性能大幅提升!有奖征文活动同步启动

MegEngineBot

深度学习 benchmark MegEngine MegCC 模型编译器

从数据到价值,DataOps精益数据运营概述

阿里技术

数字化 DataOps

华为云发布CodeArts Check代码检查服务 守护软件质量和安全

科技热闻

Java基本语法

Geek_7ubdnf

Java

Kratos微服务框架实现IoT功能:设备实时地图

golang 微服务 物联网 IoT Kratos

Kratos微服务框架实现权鉴 - Casbin

golang 微服务 鉴权 rbac Kratos

pip安装后仍有ImportError No module named XX问题解决

Geek_7ubdnf

Python

开发速度正在杀死敏捷吗?_研发效能_Michael Floyd_InfoQ精选文章