写点什么

出色的速度

  • 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:441926
用户头像

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

关注

评论

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

老是自以为JVM懂了,那你知道 i = i++和 i = ++i 的区别吗?

小谈

Java 面试 编程语言 JVM 程序

面试官:反射都不会,还敢说自己会Java?

码农月半

Java 面试 反射 java反射

k6简单入门

风中之心

性能测试

架构师训练营第5周-一致性hash算法总结及作业

傻傻的帅

极客大学架构师训练营

IDEA 不为人知的 5 个骚技巧!真香!

王磊

Java 工具 IDEA

你那么追捧的 SpringBoot,到底替你做了什么?

爱java爱自己

spring

没有微服务项目经验,就别去面试官那里送人头了

小谈

Java 架构 面试 微服务 SpringCloud

架构师课程第五周 作业

杉松壁

写给大忙人看的内存管理

苹果看辽宁体育

后端 操作系统

超级专家术语学习机

程李文华

计算机操作系统基础(十三)---线程同步之读写锁

书旅

php laravel 线程 操作系统 进程

「架构师训练营」第 5 周作业 - 一致性哈希算法

guoguo 👻

极客大学架构师训练营

深入理解ThreadLocal:拨开迷雾,探究本质

itlemon

源码分析 ThreadLocal

如何通过调试学习 nginx ?

张小方

c++ nginx 后端 高性能 服务器端开发

架构师训练营第 5 周——学习总结

在野

极客大学架构师训练营

工业4.0|振动分析能做到预防性维护吗?

清水河路人甲

对mysql事务的认识,再不懂我就捶死我自己!

你是人间四月天

MySQL 面试 mysql事务

熟悉JVM吗?为什么新生代内存需要有两个Survivor区?

南南

Java 面试 深入理解JVM JVM原理

解决死锁的4种基本方法(建议收藏)

小吴选手

Java 死锁

因为我的一个低级错误,生产数据库崩溃了将近半个小时

鄙人薛某

Java MySQL 数据库 故障定位

架构师训练营 一致性Hash算法Java实现

Cloud.

这是什么神仙面试宝典?半月看完25大专题,居然斩获阿里P7offer

码哥小胖

Java spring 面试

阿里P7岗位面试,面试官问我:为什么HashMap底层树化的标准元素个数是8

鄙人薛某

Java 面试 hashmap 哈希

Cordova项目使用Android Studio真机调试

麦洛

android Android Studio 真机调试

游戏夜读 | 跟风说一说爬虫

game1night

面试官80%会问的分布式事务中的“最大努力通知”事务

无予且行

Java MySQL 面试 事务

架构师训练营作业 (第五周)

王海

极客大学架构师训练营

数酒瓶童谣:从99数到0

程李文华

Hash一致性算法的Java实现

wei

架构师训练营第五周 - 总结

Eric

极客大学架构师训练营

hash一致性算法与优化

Mr.Monkey

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