林昶
林昶
Published on 2025-09-25 / 40 Visits
0
0

工作量评估与团队速率方案

一、 核心原则:相对估算,而非绝对时间​

  • 拒绝“人天/人日”​​:因为每个人能力、状态、对需求的理解都不同,“这个需求需要3天”的评估非常主观且易失真。

  • 采用“故事点”​​:故事点是一个相对复杂度、工作量和技术风险的综合衡量单位。它关注的是“需求A大概是需求B的几倍复杂?”,而不是“需要多少小时”。

​二、 如何定义故事点?—— 建立团队统一的“基准尺”​​

关键:​​ 绝不建议将“最基础的单表增删改查”机械地定义为1点。因为“基础”的定义因人而异,且无法应对复杂场景。

正确方法是:团队协作,共同定义一把“基准尺”。​

步骤 1:召开“故事点估算启动会”​

  • 参会人:​​ 全体开发、测试、产品负责人(可选)。

  • 目标:​​ 共同选出1-3个团队公认的、具有代表性的“基准用户故事”,并为其赋予故事点。

步骤 2:选择“基准故事”​

选择那些已完成的、大家印象深刻的简单、中等、复杂的故事各一个。例如:

  • 基准故事-S(简单):​“作为一个用户,我可以在个人设置页面修改我的昵称和头像。”

    • 讨论:​​ 后端只有一个API,前端一个页面,无需复杂校验,不涉及核心业务逻辑。团队一致认为这是“最简单的那类需求”。

    • 共识:​​ 我们将此类故事的复杂度定义为 ​1 个故事点

  • 基准故事-M(中等):​“作为一个采购员,我可以创建一个采购申请单,包含商品、数量、期望到货日期,并能保存为草稿或提交审批。”

    • 讨论:​​ 涉及多个字段、前后端联调、简单的状态机(草稿/已提交)、需要与审批流模块有轻度耦合。

    • 共识:​​ 这个故事明显比“修改昵称”复杂,但也不是最复杂的。我们感觉它的复杂度大概是“修改昵称”的 ​3倍。所以,我们将其定义为 ​3 个故事点

  • 基准故事-L(复杂):​“作为一个财务人员,我可以生成月度财务报表,该报表需要从销售、采购、库存模块聚合数据,并支持按条件筛选和导出为Excel。”

    • 讨论:​​ 涉及多模块数据集成、复杂查询、大数据量处理、外部文件操作,潜在的性能风险。

    • 共识:​​ 这个故事非常复杂,大概是“创建采购单”的2-3倍,甚至是“修改昵称”的8倍。我们将其定义为 ​8 个故事点

步骤 3:使用“计划扑克”进行估算

  1. 产品经理讲解一个新需求。

  2. 每位开发者独立思考,将这个新需求与“基准故事S/M/L”进行比较,然后出牌(通常使用斐波那契数列扑克:1, 2, 3, 5, 8, 13, 20, 40, ?)。

  3. 大家同时亮牌。

  4. 如果估算差异大(如有人出3,有人出8),则让估算最高和最低的成员分别陈述理由。

  5. 基于讨论,重新估算,直到达成共识。

为什么用斐波那契数列?​​ 因为它体现了“不确定性随复杂度增加而增加”的理念。需求越复杂,我们越难精确预估,所以点数间隔应该越大。

​三、 故事点估算考量维度(检查清单)​​

在估算时,团队应共同考虑以下因素,而不仅仅是代码行数:

维度

考量问题

示例

复杂度

业务逻辑是否复杂?需要多少条件判断?

简单的CRUD(1点) vs 复杂的规则引擎(8点)

工作量

需要修改多少地方?前端、后端、数据库都要动吗?

只改一个CSS样式(1点) vs 新增一个完整模块(13点)

技术风险/未知性

是否需要学习新技术?是否有技术债务或集成风险?

使用熟悉的技术(点数不变) vs 集成一个从未用过的第三方API(点数可能翻倍)

测试难度

是否需要复杂的测试数据或端到端测试?

简单功能测试(1点) vs 需要性能压测和安全测试(5点)

​四、 团队速率(Velocity)的计算与使用​

1. 计算速率:​

  • 速率 = 过去2-3个迭代内,​所有成功完成的、符合DoD(Definition of Done)​​ 的用户故事点数的平均值。

  • 示例:​​ 迭代1完成 20点,迭代2完成 23点,迭代3完成 18点。则平均速率 = (20+23+18)/3 ≈ ​20点

2. 规划迭代容量(核心规则):​

  • 迭代计划容量 = 平均速率 × 缓冲系数(建议0.7-0.8)​

  • 示例:​​ 团队速率是20点,则本次迭代的计划工作量应为 20 * 0.8 = ​16点

  • 为什么是80%?​​ 这20%的缓冲时间用于:​修复本轮迭代产生的Bug、处理生产环境紧急问题、参加公司会议、技术债务偿还、需求微调等。​绝对不能用100%的速率去规划,那注定会延期!​

​五、 流程总结与落地建议​

给小范围讨论的建议:​

  1. 先试点:​​ 选择一个5-9人的团队进行1-2个迭代的试点。

  2. 复盘校准:​​ 每个迭代结束后,复盘会上要讨论:“上个迭代的估算哪些准了?哪些偏了?为什么?” 不断修正团队对“故事点”的共同理解。

  3. 目标一致:​​ 强调故事点的目的不是考核个人效率,而是帮助团队对自身能力建立准确的认知,从而做出可靠的承诺,提升交付 predictability(可预测性)。

通过这套方法,团队能逐渐形成自己独有的、稳定的“度量衡”,从而使迭代规划从“拍脑袋”变为“基于数据的科学决策”。


Comment