什么是Sprint?

它是Scrum团队工作以完成一定量工作的短暂固定时期。

🏃‍♂️

定义

Sprint 是 Scrum 团队在一段固定时间(Time-box)内工作以完成一定量工作并交付可发布的产品增量(Increment)的周期。Sprint 是 Scrum 的核心——所有团队工作都在 Sprint 内进行。

Scrum 指南定义:"Sprint 是 Scrum 的心脏,将想法转化为价值的地方。"

根据2024年 Stack Overflow 调查,约58%的开发团队使用两周的 Sprint,20%使用三周,15%使用一周。

📈

增量

每个 Sprint 的目标是交付一个可发布的产品增量(Increment),为用户增加价值。增量是之前所有增量的累加——也就是说,产品随着每个 Sprint 不断增长和积累价值。

增量的关键要求:

  • 符合 DoD — 每个完成的项目都符合完成定义
  • 有用 — 增量为用户提供真实价值
  • 可发布 — 增量已准备好发布(但不一定要实际发布)
🔄

迭代

Sprint 是迭代(Iterative)过程的一部分,每个 Sprint 以相同的时长紧接着下一个。这种周期性带来:

  • 稳定节奏 — 团队建立稳定的工作节奏和可预测的工作量
  • 持续改进 — 每次 Sprint Retrospective 都为下一个 Sprint 带来改进
  • 可预测性 — 团队的 Velocity 随时间变得更加可预测
  • 适应性 — 团队在每个 Sprint 中适应新的需求
🗓️

Sprint 中的事件

Sprint 包含所有 Scrum 事件:

Sprint Planning(Sprint 计划)

  • 时间: Sprint 开始时
  • 时长: 一个月的 Sprint 最多8小时(两周 Sprint 约4小时)
  • 目标: 定义 Sprint Goal,从 Product Backlog 选择项目,创建工作计划
  • 参与者: Scrum MasterProduct Owner、开发者

Daily Scrum(每日站会)

  • 时间: 每天,固定时间和地点
  • 时长: 15分钟
  • 目标: 协调日常工作,识别障碍
  • 参与者: 开发者(必须)、其他人(可选)

Sprint Review(Sprint 评审)

  • 时间: Sprint 结束时
  • 时长: 一个月 Sprint 最多4小时
  • 目标: 展示增量,获取反馈,更新 Product Backlog
  • 参与者: Scrum 团队 + 利益相关者

Sprint Retrospective(Sprint 回顾)

  • 时间: Sprint Review 之后
  • 时长: 一个月 Sprint 最多3小时
  • 目标: 检查流程并识别改进
  • 参与者: 完整的 Scrum 团队
⏱️

持续时间

Sprint 通常持续两周,最长不超过一个月。

如何选择 Sprint 长度?

长度 适合 优点 缺点
一周 有经验的团队、变化快的环境 非常快的反馈 高开销
两周 大多数团队 良好的平衡 标准
三周 复杂项目 更多工作时间 反馈较慢
一个月 大型项目 更少开销 高风险

经验法则

  • 从两周开始 — 默认的 Sprint 长度
  • 不要改变长度 — 一旦确定,保持不变
  • 越短 = 越少风险 — 短 Sprint 允许更快适应
🎯

Sprint Goal

Sprint Goal 是团队在 Sprint 中承诺实现的业务目标:

  • 提供方向 — 团队知道目标在哪里
  • 允许灵活性 — 只要 Goal 达成,团队可以调换项目
  • 统一团队 — 所有人朝同一目标工作
  • 可衡量 — Sprint 结束时可以判断是否达成

Sprint Goal 示例:

  • "让客户能够通过 Google OAuth 登录"
  • "将首页加载时间减少到2秒以内"
  • "构建基本的推送通知系统"
⚠️

取消 Sprint

Sprint 只能由 Product Owner 取消,且仅在 Sprint Goal 变得不再相关时。取消 Sprint 是罕见事件,通常表明规划或环境存在问题。

当 Sprint 被取消时:

  • 检查已完成的项目——如果可以发布,PO 批准
  • 未完成的工作返回 Product Backlog
  • Sprint Retrospective 仍然举行
📊

Sprint 指标

  • Velocity — 团队每个 Sprint 完成的故事点数
  • Sprint Burndown — 显示 Sprint 中剩余工作的图表
  • Sprint Goal 达成率 — 达成 Goal 的 Sprint 百分比
  • 范围变更 — Sprint 期间的范围变化量

常见问题(FAQ)

如果 Sprint 中没有完成所有工作怎么办?

未完成的项目返回 Product Backlog。Sprint 不会延长。团队在 Retrospective 中讨论并改进估算。

可以在 Sprint 中途添加工作吗?

可以,前提是不影响 Sprint Goal。开发者和 Product Owner 共同决定。最好不要添加计划外的工作。

Sprint 和 Iteration 有什么区别?

Sprint 是 Scrum 的特定术语。Iteration 是 Agile 中更通用的概念。每个 Sprint 都是 Iteration,但并非每个 Iteration 都是 Sprint。

如何处理 Sprint 中发现的 Bug

与当前工作相关的 Bug 立即修复。旧的 Bug 进入 Product Backlog,由 Product Owner 确定优先级。

🔗

相关链接