Coursera 笔记

Module 03 · Agile & Scrum敏捷与 Scrum

Mistaking Iterative Development for Agile敏捷的真正含义与误区解析

Coursera ↗

学习目标

观看本视频后,你将能够:

  • 讨论 敏捷不仅仅是迭代开发
  • 解释 敏捷不是简单的迭代过程
  • 描述 敏捷的常见误区

误区:“敏捷”并不等于迭代开发

许多公司陷入的陷阱:Water-Scrum-Fall

很多公司自称在使用敏捷方法,但他们的实际做法却只是“迭代开发”而已。具体流程如下:

  1. 模糊前端(Fuzzy Front End):
    初期,他们进行大量的规划和设计,这些行为其实更像是瀑布模型(Waterfall)。他们在进行需求收集和详细设计,但并没有进行敏捷的迭代开发。
  2. 开发阶段:
    随后,他们进入开发阶段,开始进行迭代,不断调整开发计划。但是,迭代的过程中,他们并没有向客户交付任何产品,也没有进行有效的反馈。
  • 问题:没有部署任何功能,客户无法提供反馈。
  • 无法做出调整:他们没有停止在每个迭代的末尾去进行反馈、调整方向或是决定是否继续执行计划(Pivot or Persevere)。
  1. 最后一公里(Last Mile):
    最后,他们在部署时遇到困难,因为从未进行过集成部署,这导致了产品部署缓慢且冗长。
  • 总结:整个过程类似 Water-Scrum-Fall,表面上看是敏捷的迭代开发,实际是瀑布式开发的伪敏捷。

敏捷与迭代开发的区别

敏捷不是简单的迭代开发(Iterative Development)

敏捷开发不仅仅是反复迭代。你不能仅仅通过“迭代”就认为自己在实践敏捷。关键是你是否在每次迭代后,真正进行客户反馈,并快速做出调整。

敏捷不是瀑布式方法(Waterfall)的一种简化

  • 如果你依然坚持像瀑布方法一样,在前期进行大量规划,然后才进入开发,你就不可能实现敏捷。
  • 敏捷的核心是快速迭代和持续交付,而不是一开始就做大量的需求分析和文档准备。

敏捷也不仅仅是开发者在做 Sprint

敏捷开发是由**跨职能团队(Cross-functional Teams)**共同参与的,而不仅仅是开发团队在做迭代开发。
敏捷团队包括:

  • 开发者(Developers)
  • 测试人员(Testers)
  • 业务分析师(Business Analysts)
  • 运维人员(Ops)(如果你采用 DevOps)

没有“敏捷项目经理”

敏捷宣言(Agile Manifesto)中并没有提到“敏捷项目经理”这一角色。

  • 如果你仍然有一个项目经理在执行 命令与控制(Command and Control) 的管理方式,那你就不是真正的敏捷。
  • 在敏捷团队中,工作由 自管理团队 负责分配和决策,而不是由项目经理强制安排。

敏捷的核心要点

  • 敏捷不仅仅是迭代开发,而是要在每次迭代后获取 客户反馈,并 根据反馈调整方向。
  • 敏捷团队应该是 跨职能的,不仅仅由开发者组成,还包括测试、业务分析和运维等人员。
  • 敏捷宣言中没有“项目经理”角色,而是强调团队的自主性和自我管理。
  • 仅仅进行迭代开发 不等于敏捷,敏捷的核心在于 快速交付价值和响应变化。

总结

在本视频中,你学习到:

  • 敏捷不仅仅是简单的迭代开发,而是需要通过快速交付和客户反馈来适应变化。
  • 许多公司可能误以为通过反复迭代就能实现敏捷,但他们仍在做传统的瀑布式开发,只是在开发过程中做了一些迭代。
  • 敏捷团队是跨职能的,并且强调团队的自主性,而不是传统的项目经理管理方式。