写点什么

出色的速度

  • 2009-05-19
  • 本文字数:1455 字

    阅读完需:约 5 分钟

Buddha Buck 最近向 Extreme Programming 讨论组 提出 这样一个问题 :对于由 7 个人构成、迭代持续两周的团队来说,是否存在一个“出色”的速度范围?在他看来,少于或等于 8 点的速度就表示团队的故事可能太大了。由此引发的讨论提供了一些答案,还揭示出问题背后的问题。

速度是用来预测团队未来工作效率的工具。如果团队在工作中涉及到的用户故事都是同样大小,也就是说要完成这些故事的工作量大致相同,我们就可以简单地计算团队每个迭代完成的故事数目。稳定的团队会倾向于在每个迭代中完成同样数目的这些大小相等的故事,并且管理层也会根据团队已知的能力来制定计划。

在很多情况下,故事的大小是不一样的。因此,故事都是估计出相对大小,经常称为“估算”。大小为 2 的故事就是大小为 1 的故事的两倍。大小为 3 的故事就是三倍,诸如此类。一般来说,如果估计大小为 2 的故事要花的时间是大小为 1 的故事的两倍,这也很正常。为了让这些估算更易于讨论,人们将故事大小的单位定为“点”,或称为“故事点”。因为,我们可以说完成 5 点的故事所需的时间是完成 1 点的故事的 5 倍。一般来看,稳定的团队会在每个迭代中完成固定点数的故事;这个点数就是团队的速度。因此,团队的能力决定了速度。速度可以衡量团队每个迭代中完成的工作量。

Steven E. Newton 这样描述“出色的”速度:“出色的速度可以用来准确预测在未来迭代中能够完成的工作量。”

Kent Beck 发现了另外一个了解团队速度的好处:

衡量能力的另外一个目的是要改善产出。如果你计划要完成的工作比实际能够完成的少,最后真正完成的也就少于实际可以做到的事情。如果你计划要完成的工作比实际能够完成的多,最后真正能够完成的同样也少于实际可以做到的事情。

Charlie Poole 提醒读者,开发人员喜欢思考实现故事需要多少工作量,而管理层和客户喜欢琢磨完成故事能够交付多少实际价值。大家都应该注意到:针对故事的估算和速度都与工作量大小、以及完成故事所用的时间有关。

Buddha 的问题表面上得到了答案,但是讨论组继续探讨问题背后的潜在议题。特别之处在于,Buddha 非常担心团队要完成的故事也许过大了。大家讨论认为小故事要比大故事更加值得采纳。

Tim Ottinger 指出小故事能够提供更频繁的里程碑,从而帮助团队与干系人总是可以了解到项目的实际进展情况。

很明显,没有哪个故事能够延续超过一个迭代的时间。想一想迭代中的故事,更大的故事总是更加不容易完成。没人希望自己处于要么完成 N 个点数,要么一个都不完成的境地。每个人都希望在迭代进行到一半的时候,有 40% 的故事点数已经完成了(我是指真正意义上的完成)。

Steven Gordon 分享了一些相关的指导方针:

  • 如果不确定故事是否足够小,那几乎可以确定它们确实太大了。
  • 如果故事太小了,团队会发现跟踪过小的故事会浪费很多管理成本。
  • 故事太小所造成的问题,远没有故事太大造成的问题严重。所以如果要犯错,也建议倾向于让故事变得过小。
  • 如果过小的故事是团队前进的最大障碍,那就应该恭喜团队:你们已经掌握了极限编程的要义。

Ron Jeffries 觉得,他希望看到一对程序员能够在一周内完成两到三个故事,这样的故事大小才是合适的。他对于故事点数的概念并不是特别在意:

我觉得整个的关注点有点过于偏移了,我也很后悔自己有些事情做得用力过度了。大家偏离了真正的重点,就是要将故事拆分得足够小,直到能够以大概相同的步调来完成它们。

您的团队是如何决定故事大小的?您是否认为团队的速度可以用来判断故事的大小是否没有问题?请在评论中提供您的想法。

查看英文原文: A Good Velocity

2009-05-19 10:441745
用户头像

发布了 479 篇内容, 共 161.7 次阅读, 收获喜欢 52 次。

关注

评论

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

微信朋友圈复杂度分析

豪毅

架构实战营

【Flutter 专题】15 图解 ListView 异步加载数据与 Loading 等待

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

MySQL 默认隔离级别是RR,为什么阿里这种大厂会改成RC?

Hollis

[ CloudWeGo 微服务实践 - 06 ] 服务发现(2)

baiyutang

golang 微服务 11月日更

模块九—电商秒杀系统

babos

#架构实战营

开源应用中心|最好用的5款开源论坛软件,你知道吗?

开源 博客 开源软件 论坛

vivo 全球商城:商品系统架构设计与实践

vivo互联网技术

软件架构 架构设计 商城项目

极复杂编码,下载《原神》角色高清图、中日无损配音,爬虫 16 / 120 例

梦想橡皮擦

11月日更

Java 自定义注解(二)

程序员架构进阶

Java 注解 11月日更

外包学生管理系统的架构

胡颖

基于软件分析的智能化开发新型服务与技术

华为云开发者联盟

程序员 开发 漏洞 软件分析 智能开发

Android C++ 系列:JNI数组操作

轻口味

android 11月日更

Vue进阶(幺陆玖):JS 垃圾回收机制

No Silver Bullet

Vue GC 11月日更

linux之我常用的20条命令( 之三)

入门小站

Linux

毕业总结

babos

#架构实战营

如何从 JavaScript 中的数组中删除空元素?

devpoint

JavaScript filter 11月日更

Scrum Master们,难道每天都在摸鱼

华为云开发者联盟

摸鱼 敏捷教练 开发团队 Scrum Master 领导

鸿洋:拖不得了,Android11真的要来了,最全适配实践指南奉上

android 程序员 移动开发

在线文本转2-36任意进制工具

入门小站

工具

什么是开源软件和自由软件,你真的了解吗

耳东@Erdong

开源软件 11月日更 自由软件

dart系列之:dart语言中的内置类型

程序那些事

flutter dart 程序那些事 11月日更

Elastic-Job的执行原理及优化实践

安第斯智能云

Java 架构 分布式 后端

CSS响应式布局之REM(二)

Augus

CSS 11月日更

高级UI强行进阶:自定义View实现女朋友欲罢不能的网易云音乐宇宙尘埃特效,拿去装笔不用谢~

android 程序员 移动开发

解锁WiFi密码,我只用了60行代码....

Jackpop

架构实战营模块三作业

孙志强

架构实战营

从0-1教你利用服务器做属于自己的个人博客

坚果

git 博客 服务器 nodejs 11月日更

【Promise 源码学习】第一篇 - Promise 简介

Brave

源码 Promise 11月日更

【LeetCode】只出现一次的数字 IIIJava题解

Albert

算法 LeetCode 11月日更

超详细攻略!手把手教你如何在windows下搭建openLooKeng开发环境

openLooKeng

大数据 计算引擎

Hazelcast在openLooKeng中的应用(Cache篇)

openLooKeng

大数据 cache 计算引擎 openLooKeng

出色的速度_研发效能_Chris Sims_InfoQ精选文章