敏捷指南 · 敏捷基础
敏捷开发生命周期:6 个阶段简明讲解
敏捷开发生命周期是产品采用敏捷方法构建时所经历的一系列阶段:从最初的构想,经过多次短迭代(每次都交付可用成果),到发布、支持以及最终退役。与线性生命周期不同,构建阶段会循环多次,每一轮都由反馈来塑造。
要点总结
- 敏捷生命周期从概念和启动开始,经过多次迭代,到发布、维护和退役。
- 计划、构建和测试在每次迭代中同时进行,而不是分属不同阶段。
- 尽早发布增量以获取反馈,并为维护工作规划产能。
- 并不存在唯一官方模型,因此请根据自身情况调整阶段名称。
什么是敏捷生命周期
生命周期描述了工作如何从构想流转为成品。在 瀑布 生命周期中,每个阶段(需求、设计、构建、测试、部署)按顺序只进行一次。在敏捷中,计划、设计、构建和测试在每个短迭代中同时进行,产品以 增量。以下各阶段描述了产品的整体历程;大部分时间都花在迭代阶段。
六个阶段
一次迭代如何运作
- 计划: 团队从待办事项列表中挑选价值最高的条目,并就本次迭代的目标达成一致。
- 设计与构建: 开发人员、测试人员和设计人员针对每个条目协同工作,而不是沿着链条逐级移交。
- 测试: 测试持续进行,使每个条目都符合 完成的定义 ,然后才算完成。
- 评审: 团队向相关方展示可用成果并收集反馈。
- 反思: 团队在回顾会上就工作方式的一两项改进达成一致。
- 调整: 反馈和新信息用于更新待办事项列表,然后开始下一次迭代。
实例:一款预约应用
一家连锁健身房希望会员能够在线预约课程。
敏捷生命周期与传统 SDLC 对比
| 传统(瀑布式)SDLC | 敏捷生命周期 | |
|---|---|---|
| 工作顺序 | 各阶段按顺序只进行一次 | 构建阶段以短迭代方式重复进行 |
| 需求 | 预先固定 | 在按优先级排序的待办事项列表中不断演进 |
| 测试 | 接近尾声时的独立阶段 | 持续进行,在每次迭代之中 |
| 交付 | 在最后一次性发布 | 频繁交付增量,通常尽早发布 |
| 变更 | 通过正式的 变更控制 | 在预期之中,并通过待办事项列表吸收 |
| 客户参与 | 主要在开始和结束时 | 全程参与,每次评审都参与 |
请参阅 敏捷与瀑布 以获取更全面的比较。
常见错误
- 迷你瀑布式冲刺: 在一个冲刺中完成全部设计,下一个冲刺完成全部构建,之后再进行全部测试。
- 跳过启动阶段: 在没有共同愿景的情况下开始冲刺,导致待办事项列表偏离方向。
- 迟迟不发布: 构建了许多增量,却全部压着等待一次大规模发布,从而失去了让敏捷发挥作用的反馈。
- 忘记维护所需产能: 在规划每个冲刺时都假设没有支持工作。
- 忽视退役: 让旧产品在无人负责、没有计划的情况下继续运行。
本主题的免费模板
常见问题
敏捷开发生命周期有哪些阶段?
一种常见模型包含六个阶段:概念、启动、迭代(构建)、发布、维护(生产)和退役。
敏捷生命周期与 SDLC 相同吗?
软件开发生命周期(SDLC)是对软件构建各阶段的统称。敏捷生命周期是运行 SDLC 的一种方式,其构建阶段以短迭代方式重复进行。
敏捷开发生命周期中哪个阶段耗时最长?
迭代阶段,因为团队会多次重复这一阶段,而且往往在首次发布后仍持续进行。
敏捷开发生命周期中一次迭代有多长?
通常为一到四周。许多团队采用两周的 冲刺.
敏捷开发生命周期有设计阶段吗?
没有单独的设计阶段。设计在每次迭代中持续进行,部分高层设计在启动阶段完成。
在敏捷生命周期中,测试在什么时候进行?
在每次迭代中进行。工作必须经过测试并符合 完成的定义.
Scrum 是一种敏捷开发生命周期吗?
Scrum 是用于运行迭代阶段的框架,并未定义概念、发布或退役阶段;参见 什么是 Scrum.
可以在敏捷生命周期结束前发布吗?
可以,而且值得鼓励。尽早发布增量可以更快获得真实的用户反馈。
敏捷生命周期的启动阶段会发生什么?
组建团队,就产品愿景达成一致,搭建工具和环境,并创建初始 产品待办事项列表.
Kanban 如何融入敏捷生命周期?
Kanban 团队用持续的工作流取代固定迭代,但从概念到退役的整体历程是相同的;参见 什么是 Kanban.
非软件团队会使用敏捷生命周期吗?
是的。营销、创意及其他团队也采用同样的理念:通过短周期交付可用成果并收集反馈;参见 敏捷是否仅适用于软件.