软件开发行业采用多种不同的方法——有些是旧方法的新版本,而另一些则采用了相对较新的实践。最常用的两种方法是敏捷,例如Scrum,Kanban 和 Lean,以及传统的 Waterfall 模型,如结构化方法或较新的 RUP。
大多数遵循这两种范式的软件公司都认为,自己选择的方法在某些方面更优越。因此,在回答“哪种方法更成功?”这个问题之前,让我们先分析它们的关键差异。
瀑布法
瀑布法是一种线性的软件开发方法。每个阶段代表流程中的一个独立阶段,通常在下一个阶段开始前完成。各开发阶段之间通常设有里程碑。
- 以大型项目的形式按顺序进行
- 适用于变化较少的环境
- 需要在前期就完全明确需求
因此,瀑布模型坚持在前一阶段经过验证和确认后才能进入下一阶段,如下图所示:

瀑布法
在 Royce 原始的瀑布模型中,按顺序遵循以下阶段:
- 系统与软件需求:记录在产品需求文档中
- 分析:生成模型、架构和业务规则
- 设计:生成软件架构
- 编码:软件的开发、验证和集成
- 测试:系统性地发现和调试缺陷
- 运行:完整系统安装、迁移、支持和维护
敏捷方法
敏捷方法源自精益思维,在信息技术环境中应用“精益”理念。精益方法的核心关注点是:
- 消除流程中的浪费
- 最小化非增值的业务活动
- 从客户的角度最大化价值

敏捷方法
敏捷是一种经过验证的项目管理方法,鼓励以下核心原则:
- 频繁的检查与调整
- 鼓励团队协作、自我组织和问责
- 一套工程最佳实践,用于快速交付高质量项目
- 一种将开发与客户需求及公司目标对齐的业务方法
敏捷开发——迭代生命周期
敏捷开发包括规划、需求分析、设计、编码、测试和部署等传统阶段——但这些阶段形成一个循环而非直线。这意味着流程具有灵活性、可重复性,可以按任意顺序或并行进行。这使得在运行时收集用户反馈、跨环境持续测试以及调整项目范围成为可能。
敏捷方法论的基础
- 经验主义:能够执行、停止、反思、改进并继续,以逐步提高生产力的方式进行。
- 优先级:根据业务价值交付工作。
- 自我组织:团队最了解在现有资源和约束条件下如何交付工作。
- 时间盒:团队必须在固定的时间范围内完成指定任务。
- 协作:团队承诺在规定时间内交付最终产品,鼓励跨团队协作和创造性地完成任务。
敏捷与瀑布——三重约束
瀑布方法最大的优势是成本固定和可预测性。你知道价格和交付日期。其最大的弱点是缺乏灵活性。敏捷方法具有高度灵活性,能够演变为与原始愿景显著不同的产品。

敏捷与瀑布
传统瀑布基于时间、成本和范围的三重约束。调整其中任何一个变量都会导致至少另一个变量发生变化。成功交付项目取决于平衡这些相互竞争的变量。但众所周知,仅仅增加资源并不总能实现预期结果。事实上,在软件项目后期增加资源可能会产生负面影响。
敏捷方法采用不同的方法,反转三重约束。不是从一开始就将范围视为固定,敏捷方法将时间(迭代)和成本(团队成员)设为固定,然后调整范围以聚焦于最高优先级的事项。敏捷假设范围会随时间演变。目标是在预算和时间内满足客户最重要的需求。随着项目推进,敏捷允许新增需求或重新优先级排序。

敏捷与瀑布的质量
敏捷还是瀑布?看看数据
Standish Group发布的最新报告涵盖了2013年至2017年间研究的项目。下文展示了敏捷项目与瀑布项目在整体成功率、挑战及失败方面的对比。敏捷项目成功的可能性约为瀑布项目的两倍,失败的可能性则低三倍。
(来源:vitalitychicago.com – 比较敏捷与瀑布项目成功率)

敏捷 vs 瀑布 – 项目成功率
敏捷的伞
自2001年敏捷宣言诞生以来,敏捷获得了显著的发展势头。事实上,敏捷并非单一的方法论,而是一种思维方式,使团队和组织能够创新、快速响应不断变化的需求,并降低风险。组织可以灵活采用各种可用的框架,如Scrum、看板(Kanban)、精益(Lean)、XP等。

敏捷的伞
精益方法
精益组织理解客户价值,并专注于核心流程以持续改进。最终目标是通过零浪费、理想的增值流程,向客户提供完美价值。
指导精益实施的五步思维过程易于记忆,但并非总是容易执行:
- 从最终客户的角度定义价值。
- 为每种产品绘制价值流中的所有步骤,尽可能消除非增值环节。
- 让创造价值的步骤顺畅且有序地流向客户。
- 让客户根据需要从上游的下一个环节拉动价值。
- 通过识别价值流、消除浪费、引入流动与拉动机制,持续改进,并不断重复该过程,直至达到完美——即以零浪费的方式交付完美价值。

五步精益方法
Scrum方法
Scrum是一种敏捷的项目管理方式,通常用于软件开发。将Scrum用于敏捷软件开发常被视为一种方法论——但与其将Scrum视为方法论,不如将其视为一种管理流程的框架。

Scrum流程画布
看板方法
看板在日语中意为“视觉信号”或“卡片”。丰田生产线工人使用看板来表示制造过程中的各个步骤。作为精益的一部分,该系统的高度可视化特性使团队更容易沟通需要做什么以及何时做。它还标准化了工作流程并优化了过程,有助于减少浪费并最大化价值。与Scrum冲刺看板类似,看板跟踪“待办 – 进行中 – 已完成”的活动,但会限制“进行中”任务的数量(由团队负责人定义,不可超过)。

看板方法
看板有四个核心原则:
- 可视化工作,以增强沟通与协作。
- 限制进行中的工作量,以避免出现无优先级的无限任务链。
- 衡量并优化流程——收集指标,预测未来问题。
- 通过分析和反馈持续改进。