Module 03 · Agile & Scrum敏捷与 Scrum
Mistaking Iterative Development for Agile敏捷的真正含义与误区解析
学习目标
观看本视频后,你将能够:
- 讨论 敏捷不仅仅是迭代开发
- 解释 敏捷不是简单的迭代过程
- 描述 敏捷的常见误区
误区:“敏捷”并不等于迭代开发
许多公司陷入的陷阱:Water-Scrum-Fall
很多公司自称在使用敏捷方法,但他们的实际做法却只是“迭代开发”而已。具体流程如下:
- 模糊前端(Fuzzy Front End):
初期,他们进行大量的规划和设计,这些行为其实更像是瀑布模型(Waterfall)。他们在进行需求收集和详细设计,但并没有进行敏捷的迭代开发。 - 开发阶段:
随后,他们进入开发阶段,开始进行迭代,不断调整开发计划。但是,迭代的过程中,他们并没有向客户交付任何产品,也没有进行有效的反馈。
- 问题:没有部署任何功能,客户无法提供反馈。
- 无法做出调整:他们没有停止在每个迭代的末尾去进行反馈、调整方向或是决定是否继续执行计划(Pivot or Persevere)。
- 最后一公里(Last Mile):
最后,他们在部署时遇到困难,因为从未进行过集成部署,这导致了产品部署缓慢且冗长。
- 总结:整个过程类似 Water-Scrum-Fall,表面上看是敏捷的迭代开发,实际是瀑布式开发的伪敏捷。
敏捷与迭代开发的区别
敏捷不是简单的迭代开发(Iterative Development)
敏捷开发不仅仅是反复迭代。你不能仅仅通过“迭代”就认为自己在实践敏捷。关键是你是否在每次迭代后,真正进行客户反馈,并快速做出调整。
敏捷不是瀑布式方法(Waterfall)的一种简化
- 如果你依然坚持像瀑布方法一样,在前期进行大量规划,然后才进入开发,你就不可能实现敏捷。
- 敏捷的核心是快速迭代和持续交付,而不是一开始就做大量的需求分析和文档准备。
敏捷也不仅仅是开发者在做 Sprint
敏捷开发是由**跨职能团队(Cross-functional Teams)**共同参与的,而不仅仅是开发团队在做迭代开发。
敏捷团队包括:
- 开发者(Developers)
- 测试人员(Testers)
- 业务分析师(Business Analysts)
- 运维人员(Ops)(如果你采用 DevOps)
没有“敏捷项目经理”
敏捷宣言(Agile Manifesto)中并没有提到“敏捷项目经理”这一角色。
- 如果你仍然有一个项目经理在执行 命令与控制(Command and Control) 的管理方式,那你就不是真正的敏捷。
- 在敏捷团队中,工作由 自管理团队 负责分配和决策,而不是由项目经理强制安排。
敏捷的核心要点
- 敏捷不仅仅是迭代开发,而是要在每次迭代后获取 客户反馈,并 根据反馈调整方向。
- 敏捷团队应该是 跨职能的,不仅仅由开发者组成,还包括测试、业务分析和运维等人员。
- 敏捷宣言中没有“项目经理”角色,而是强调团队的自主性和自我管理。
- 仅仅进行迭代开发 不等于敏捷,敏捷的核心在于 快速交付价值和响应变化。
总结
在本视频中,你学习到:
- 敏捷不仅仅是简单的迭代开发,而是需要通过快速交付和客户反馈来适应变化。
- 许多公司可能误以为通过反复迭代就能实现敏捷,但他们仍在做传统的瀑布式开发,只是在开发过程中做了一些迭代。
- 敏捷团队是跨职能的,并且强调团队的自主性,而不是传统的项目经理管理方式。