敏捷估算

在介绍敏捷估算的方法之前,我们先来回顾一下基于人天的传统估算的思路。传统的工作量估算是估计一个绝对值,单位是人天或者人时。

比如:

David喝完一小杯热咖啡花费1.2个小时(工作量 1.2人时)

David喝完一大杯热咖啡花费2.4个小时(工作量 2.4人时)

由于人的能力是有差异的,所以David的工作量对于Tom来讲可能就不适用,Tom喝完一小杯热咖啡可能需要1.5小时。

这样一来,工作量、参与人以及完成这些工作的时间周期就是强相关的,因为强相关会带来如下挑战:

1. 做计划时必须把人和周期关联到具体的任务上,会让计划很复杂。

2. 团队成员的分工发生变化时对计划的影响比较大,管理和维护计划成本高。(这是甘特图的价值所在 )

3. 由于第二条的原因,这种工作量的估算方式不利于团队协作。

接下来,我们来看看敏捷估算的思路。 在探讨具体的思路之前,我们先思考一下做估算的目的什么,通常有两个目的:

1. 核算成本和周期,我们要了解这这个项目或产品的投资回报。

2. 做计划,根据项目的需要,我们要知道什么时间点应该交付什么内容才可以满足市场、用户或客户的期望。

做敏捷估算时,请先忘掉人天或人时,敏捷估算关注的是工作量的规模(大小),而不关心谁来做,不关心花多长时间做完。

它的规模计量单位使用的是一个抽象的单位——故事点,故事点是一个相对值,是一个相对倍数,和人天,人时没有关系,它和公里、吨、摄氏度类似,只是一个计量单位而已。我们可以定义喝一小杯热咖啡花费的工作量为参考基准,是 1 个故事点。中杯看起来是小杯的2倍大,所以我们可以估算喝一中杯热咖啡花费的工作量是小杯的两倍, 是 2个故事点,大杯是小杯的三倍,所以工作量是3个故事点。

敏捷估算的步骤:

1. 找一个参考基准,作为一个故事点。比如:把开发一个简单的查询页面工作量作为基准,定义为一个故事点。

2. 拿其它的故事和基准进行比较,估算他们之间的倍数,从而得到其它故事的故事点数。比如:查看个人基本信息这个故事和开发一个简单的查询页面的规模差不多大,所以它也是1个点,录入个人基本资料的这个故事要复杂一些,大概时3个点。

3 . 累计产品backlog中的所有故事,得到所有故事总的故事点数。

得到了总的故事点规模,我们还要知道团队速度。团队速度是指:1个敏捷团队在一个迭代中完成的故事点总数。比如:某Scrum团队1个迭代可以完成 80个故事点,那么80个点就是他们的速度。

有了总的规模,我们也知道了团队一个迭代的速度,我们就可以很容易推算多少个迭代可以做完。 如下图所示,总的规模是1600个点,团队总共8个人,每个迭代完成80个点,我们就可以推算20个迭代完成。 每个迭代2周,所以40周可以完成,8个人40周的成本投入也可以很容易得出。

敏捷估算要点小结:

1. 相对估算,使用故事点作为单位,故事点是一个相对倍数。

2. 估算规模,规模的计量单位是故事点,规模和时间、周期无关,和人天,人时无关。

3. 敏捷估算关注团队的速度,不关注单个人的速度。

4. 通过总规模和团队速度,推算周期。

本文分享自微信公众号 - 物联俱乐部(wu_lian_club),作者:瓜哥

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 软件规模估算

    本文的目标读者是从事软件行业想快速了解软件开发过程工作量评估的人员。软件工作量评估方法很多,如代码行法、类比法、WBS、故事点、用例点、NESMA、FPA、co...

    公众号php_pachong
  • 软件开发工作量的估算方法

    我理解的工作量估算,就是估算软件项目所耗费的资源数,这个资源包含人力和时间,一般用人天、人月的形式来衡量。(而软件的成本=耗费的资源*资源的单价)。

    公众号php_pachong
  • 工作量评估

    我理解的工作量估算,就是估算软件项目所耗费的资源数,这个资源包含人力和时间,一般用人天、人月的形式来衡量。(而软件的成本=耗费的资源*资源的单价)。而且我个人觉...

    公众号php_pachong
  • ESA2GJK1DH1K基础篇: 移植源码中SmartConfig程序到自己的项目

      按钮是负责跳转到配网绑定页面,文本框显示配网绑定完成以后获取的Wi-Fi的MAC信息

    杨奉武
  • RxJava 详解

    我从去年开始使用 RxJava ,到现在一年多了。今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ...

    AWeiLoveAndroid
  • Python:线程、进程与协程(2)—

        上一篇博文介绍了Python中线程、进程与协程的基本概念,通过这几天的学习总结,下面来讲讲Python的threading模块。首先来看看threadi...

    py3study
  • [享学Netflix] 十六、Hystrix断路器:初体验及RxJava简介

    代码下载地址:https://github.com/f641385712/netflix-learning

    YourBatman
  • CUDA编程之GPU硬件架构

    GPU实际上是一个流处理器簇 Streaming Multiprocessors(SM)的阵列。如下图所示:

    AI异构
  • Python字典、集合之高山流水

    字典dict 字典是由大括号{键:值}组成、字典是无序的、字典的键必须是不可变数据类型、不能使用列表作为键,但可以使用元祖作为字典的键。例如:

    py3study
  • 视频监控系统中的流媒体服务器、直写和全切换三种取流架构方案

    前摄像头视频信号通过转发流媒体服务器转发至上壁面显示和终端接入,视频存储磁阵列通过流媒体存储服务器写入。实时流、存储流、回放流、控制信令调用流如下:

    EasyNVR

扫码关注云+社区

领取腾讯云代金券