这是 Scrum 敏捷开发的核心。
燃尽图(Burndown Chart) 和 用户故事(User Story) 是Scrum中两个最常用、最重要的工具和实践。
简单来说:
- 用户故事 是用来 描述需求 的方式,它定义了我们 “要做什么”。
- 燃尽图 是用来 追踪进度 的工具,它展示了我们 “做得怎么样”。
下面详细解释,并且会用“化工流程模拟软件”项目来举例,这样更容易理解。
1. 用户故事 (User Story)
是什么?
用户故事是一种轻量级的、非正式的需求描述方法。它不再像传统文档那样写“系统应具备XX功能”,而是从最终用户的视角来描述一个功能,说明这个功能对谁有价值,以及为什么有价值。
它的标准格式(模板)是:
作为 一个 <用户角色>,
我想要 <完成某个目标或功能>,
以便于 <实现某种价值或原因>.
为什么用它?
- 聚焦用户价值: 它强迫我们思考“这个功能到底是给谁用的?能带来什么好处?”而不是仅仅实现一个技术功能。
- 促进沟通: 一个简单的故事卡片写不下所有细节,这就鼓励产品经理和开发团队进行面对面沟通,澄清细节。
- 便于拆分和估算: 故事的粒度可大可小,便于我们规划和排定优先级。
你们项目的例子:
一个不好的需求描述(传统方式):
“系统需要一个数据输入模块,支持输入温度、压力和流速参数。”
(这只描述了功能,没有说明为谁服务,为什么需要)
一个好的用户故事:
作为 一名
化工流程工程师
,
我想要在一个流程图中,为指定的反应器节点输入温度和压力参数
,
以便于快速模拟不同工况下的产出结果
。
另一个例子:
作为 一名
生产现场操作员
,
我想要在模拟结果异常时,看到一个醒目的红色告警提示
,
以便于我能第一时间发现潜在的生产风险
。
关键点:
- 谁来写? 主要由产品负责人负责撰写和管理。
- 怎么用? 这些用户故事会形成一个“产品待办列表 (Product Backlog)”。在每个Sprint计划会上,团队会从中挑选最高优先级的故事来作为本周的工作目标。
- 验收标准 (Acceptance Criteria): 每个用户故事都应该附带几条清晰的“验收标准”,用来判断这个故事是否算“完成”。
- 例如,对于上面工程师的故事,验收标准可以是:
- 用户可以用鼠标点击图中的反应器节点。
- 点击后会弹出输入框。
- 输入框中有“温度”和“压力”两个字段。
- 输入数值后点击“确认”,数值被成功保存。
- 输入非数值会提示错误。
- 例如,对于上面工程师的故事,验收标准可以是:
2. 燃尽图 (Burndown Chart)
是什么?
燃尽图是一个非常直观的进度可视化图表。它展示了在一个Sprint(迭代周期,比如你们的一周)内,剩余工作量随时间变化的趋势。
它长什么样?
- 横坐标 (X轴): 时间(比如,周一、周二、周三、周四、周五)。
- 纵坐标 (Y轴): 剩余工作量(可以用“任务个数”、“预估工时”或“故事点”来衡量)。
- 图上有两条线:
- 理想线 (Ideal Line): 一条从左上角到右下角的直线。代表如果我们每天都匀速完成工作,应该是什么样。
- 实际线 (Actual Line): 一条弯弯曲曲的折线。代表我们团队每天实际完成工作后,剩余工作量的真实情况。
为什么用它?
- 进度一目了然: 团队所有人(包括领导)看一眼图,就知道我们是提前了、落后了,还是正按计划进行。
- 预测能否完工: 如果实际线一直远高于理想线,就意味着我们可能无法在本周内完成所有计划的工作,需要及早采取行动。
- 暴露问题:
- 如果线好几天都是平的,说明团队可能遇到了障碍,进度卡住了。
- 如果线突然向上走了,说明可能中途增加了新的任务(这在Scrum中通常是不鼓励的)。
你们项目的例子:
假设你们的第一个Sprint(第一周)总共有 40个预估小时 的工作量(根据你上次计划中的任务)。
- 周一(开始时): Y轴的起点是40小时。
- 周一结束时: 同事B完成了“创建代码仓库(2h)”和“搭建后端框架(6h)”中的一部分,比如完成了4小时。你完成了“搭建前端工程(6h)”中的3小时。今天总共完成了7小时。那么剩余工作量就是
40 - 7 = 33
小时。燃尽图上的实际线就从40降到了33。 - 周二结束时: 团队又完成了8小时的工作,剩余工作量变成
33 - 8 = 25
小时。实际线继续下降。 - 以此类推…
怎么解读?
- 如果你们的实际线一直贴着理想线或在它下面,恭喜!说明项目进度非常健康。
- 如果你们的实际线一直在理想线之上,每日站会就应该讨论:“我们为什么落后了?是有技术难题B没解决,还是我对某个功能理解错了导致返工?” 这不是为了追究责任,而是为了团队一起寻找解决方案。
总结:两者如何协同工作
-
计划阶段 (周一上午):
- 同事A (产品负责人) 展示带有优先级的用户故事列表。
- 团队 (你和B) 一起挑选本周要完成的几个用户故事,并把它们拆分成更小的技术任务。
- 团队一起估算所有任务的总工时(或故事点)。这个总数就是燃尽图的起点。
-
执行阶段 (周一到周五):
- 团队每天开发,完成任务。
- 每天更新任务状态,并更新燃尽图上的剩余工作量。
- 每日站会时,看着燃尽图,快速同步进度和问题。
-
评审阶段 (周五下午):
- 团队向A和领导演示本周完成的用户故事,获得反馈。
所以,用户故事定义了“山顶”在哪里,而燃尽图告诉你“我们爬到半山腰了,还是快到顶了”。
理解这两个概念,你就能更好地推动团队的敏捷实践了。