Elijah Agile Delivery

瀑布与敏捷的区别,不是有没有流程,而是流程以什么规模发生

无论采用瀑布生命周期,还是采用敏捷生命周期,一个项目通常都绕不开几类基本活动:

  • 规划要做什么
  • 设计如何实现
  • 执行具体工作
  • 确认结果是否符合要求

不同框架可能使用不同的术语,也可能对这些活动进行更细的拆分,但其底层逻辑并不会发生根本变化。

瀑布和敏捷之间真正明显的区别,并不是一方有规划、设计和确认,而另一方没有。它们的差异更多体现在:这些活动以多大的规模、在什么时间范围内发生,以及反馈需要等待多久。

瀑布:大规模、集中式地完成各类工作

在瀑布型项目中,规划、设计、执行和确认通常都是规模较大的阶段。

项目可能先集中进行需求分析和总体规划,再进入详细设计;设计基本完成后,才开始大规模开发或实施;等主要建设工作结束,再集中开展测试、验收和确认。

这种方式的特点是,同类工作高度集中。

规划阶段集中做规划,设计阶段集中做设计,执行阶段集中做执行,验证阶段集中做验证。每一个阶段都可能持续较长时间,并向下一阶段移交相对完整的成果。

这种模式并不等于没有风险管理,也不意味着项目团队不会检查和调整。问题在于,它的反馈周期通常更长。一旦前期的理解或设计存在偏差,可能要到执行后期甚至验收阶段才能得到充分验证。

敏捷:同样的工作,被分散到较小的迭代中

敏捷并没有取消规划、设计、执行和确认。

它只是把这些活动缩小,并分散到一个个迭代或冲刺中。

在每个冲刺里,团队仍然需要进行规划,确认本次准备完成什么;仍然需要设计,决定功能或方案如何实现;仍然需要执行开发、实施或配置工作;最后也仍然需要评审、测试和确认成果。

同类工作依然存在,也仍然会在一定范围内集中发生,只是每次处理的规模更小。

这意味着团队不必等待整个项目完成,才知道方向是否正确。每完成一个较小的增量,就可以获得一次反馈,并根据实际结果调整接下来的计划。

因此,敏捷缩短的并不只是工作周期,更重要的是缩短了从“作出判断”到“验证判断”的距离。

生命周期不同,底层管理规律并没有改变

正因为规划、设计、执行和确认是项目交付中的基本逻辑,所以无论是 PMI 体系,还是其他项目管理与敏捷框架,都不会轻易取消这些活动。

框架可以重新组织它们,可以改变它们的规模、频率和顺序,也可以让其中一部分工作并行发生,但不能假装项目不再需要规划、设计、执行和验证。

没有规划,团队很难形成一致方向。
没有设计,执行容易失去结构。
没有执行,所有方法都只停留在概念上。
没有确认,团队也无法证明结果是否真正符合要求。

这也是我理解项目流程管理的基础:方法可以变化,但交付所依赖的基本事实不会因为框架名称改变而消失。

我不会让项目服务于框架

我并不拘泥于某一个项目管理框架,也不会因为一个方法被称为“传统”就拒绝使用,更不会因为另一个方法被称为“敏捷”就默认它一定更优。

瀑布、Scrum、Kanban、Nexus,以及各种混合交付方式,都只是帮助项目解决问题的工具。

真正需要判断的是:

  • 当前需求的确定程度如何
  • 项目是否存在大量外部依赖
  • 团队是否具备高频协作和反馈的条件
  • 成果能否被拆分并逐步验证
  • 现场、合同和验收机制允许多大程度的调整
  • 哪种方式能够以更低的成本和风险交付价值

如果需求稳定、技术路线成熟、阶段边界清晰,较强的前期规划可能更有效。

如果需求不确定、反馈频繁、成果可以逐步验证,那么短周期迭代通常更合适。

如果同一个项目同时存在稳定工程任务和高不确定性的软件工作,那么采用混合方式,往往比强行统一成某一种生命周期更加合理。

我的核心理念:尊重事实,使用真正有效的方法

如果一定要概括我的核心管理理念,我认为它不是某个框架的名称,而是:

尊重事实,依据经过验证的经验,并选择当前环境下更合适的方法。

我会参考成熟框架,也会尊重成功实践,但不会把任何方法当成不能修改的教条。

只要一种做法适合当前项目,能够降低浪费、控制风险、改善协作,或者以更高效率交付更可靠的结果,我就会考虑使用。

如果实践证明存在更优的方案,我也会调整原来的方法。

对我来说,框架应该服务于项目,而不是让项目和团队为了保持框架的完整形式,承担额外且没有实际价值的成本。

项目管理最终要面对的,始终是真实的需求、真实的约束、真实的团队,以及真实的交付结果。方法可以灵活组合,但这种以事实和结果为依据的判断方式,是我不会改变的管理理念。