Scrum vs 瀑布 vs 敏捷 vs 精益 vs 看板

Scrum vs 瀑布 vs 敏捷 vs 精益 vs 看板

(英文原版)  (日本語版)

软件开发行业有许多不同的方法 – 一些是旧方法的新方法,另一些方法采用了相对较新的方法。该领域中最常用的两种方法是敏捷,如Scrum,Kanban和Lean等,以及传统的瀑布模型,如结构化方法或更新的RUP。

大多数遵循这两种模式的软件公司都认为他们选择的方法在方面是优越的,所以在我们回答这个问题之前,“哪一个更成功?我们应该看看它们的主要区别。

瀑布方法

瀑布是软件开发过程的线性方法。这些都代表了软件开发的一个独特阶段,每个阶段通常在下一个阶段开始之前完成。每个开发阶段之间通常也有一个里程碑。

  • 结构化为顺序过程中的一个大项目
  • 适合变化不常见的情况
  • 一个需要预先明确定义的需求的流程

因此,瀑布模型保持只有在检查并验证其前一阶段时才应移动到阶段,如下图所示:

瀑布方法

瀑布方法

例如:

在Royce的原始瀑布模型中,按顺序遵循以下阶段:

  • 系统和软件要求:在产品需求文档中捕获
  • 分析:产生模型,架构和业务规则
  • 设计:产生软件架构
  • 编码:软件的开发,证明和集成
  • 测试:缺陷的系统发现和调试
  • 操作:完整系统的安装,迁移,支持和维护

敏捷方法

敏捷使用精益思想衍生出来,在信息技术环境中应用“精益”概念。精益方法的关键重点是:

  • 消除流程中的浪费
  • 最大限度地减少业务非增值活动
  • 从消费者的角度最大化附加值

敏捷方法

敏捷方法

敏捷方法是经过验证的项目管理方法,它鼓励以下关键概念:

  • 经常检查和调整
  • 鼓励团队合作,自我组织和问责制的领导哲学
  • 一套工程最佳实践,可以快速交付高质量的项目
  • 一种将开发与客户需求和公司目标相结合的业务方法

敏捷开发 – 迭代生命周期

敏捷开发阶段包括传统规划,分析需求,设计,编码,测试和部署,但它们形成一个循环而不是一条线。这意味着流程灵活,可重复,可以按任何顺序和并行发生。这允许收集用户反馈,针对不同环境的连续测试以及在运行时更改项目的范围。

敏捷方法的基础

  • 经验主义 – 能够在逐步提高生产力的过程中执行,停止,反思,改进和继续
  • 确定优先级 – 根据业务价值提供工作
  • 自组织 – 团队最了解如何根据资源和约束提供工作
  • Time-Boxing – 团队需要在规定的时间内完成指定的任务。
  • 协作 – 团队承诺在给定的时间内交付最终产品,这将鼓励跨团队协作和完成任务的独创性。

敏捷与瀑布 – 范围,时间和成本三角

瀑布方法的最大优势是固定成本和可预测性。你知道价格,什么时候交付。其最重要的弱点是其缺乏灵活性。敏捷方法非常灵活,可以演变成与最初设想的产品截然不同的产品。

敏捷与瀑布

敏捷与瀑布

传统的瀑布方法建立在时间,成本和范围三重约束的基础上。调整这些变量中的任何一个都会强制改变至少其中一个变量。交付成功的项目取决于平衡这三个竞争变量。但正如我们所知,简单地为项目添加资源并不总能带来预期的目标。事实上,如果在软件项目的后期添加资源,它实际上会产生不利影响。

敏捷方法采用不同的方法,将三重约束颠倒过来。敏捷方法不是将范围视为一开始就是固定的,而是将时间(迭代)和成本(团队成员)设置为固定; 然后调整范围以关注最高优先级。建立敏捷是因为期望范围会随着时间的推移而发展。目标是在预算成本和时间内满足客户最重要的要求。随着项目的进展,敏捷允许新的需求或重新确定优先级。

敏捷与瀑布质量

敏捷与瀑布质量

敏捷还是瀑布?见图

Standish Group的最新报告涵盖了他们在2013年至2017年间研究的项目。在这段时间内,敏捷和瀑布的成功,挑战和失败的整体突破如下所示,敏捷项目成功的可能性大约是后者的2倍,失败的可能性降低1/3。

敏捷与瀑布 - 项目成功率

敏捷与瀑布 – 项目成功率

敏捷方法伞

自2001年“敏捷宣言”诞生以来,敏捷就有很多嗡嗡声。事实上,敏捷方法只是一种思维方式,可以使团队和组织进行创新,快速响应不断变化的需求,同时降低风险。组织可以灵活地使用许多可用的框架,如Scrum,看板,精益,XP等等。

Scrum敏捷伞

Scrum敏捷伞

精益方法

精益组织了解客户价值,并关注其关键流程以不断提高客户价值。最终目标是通过一个零浪费的完美价值创造过程为客户提供完美的价值。

5步精益方法

指导精益方法实施的五步思考过程很容易记住,但并不总是很容易实现:

  1. 从最终客户的角度按产品系列指定值。
  2. 确定每个产品系列的价值流中的所有步骤,尽可能消除那些无法创造价值的步骤。
  3. 使价值创造步骤按顺序进行,使产品顺利流向客户。
  4. 随着流量的引入,让客户从下一个上游活动中获取价值。
  5. 在指定值时,识别值流,删除浪费的步骤,引入流和拉,再次开始流程并继续,直到达到完美状态,其中创建完美值而没有浪费。

5步精益方法

5步精益方法

Scrum方法

Scrum是一种管理项目的敏捷方式,通常是软件开发。使用Scrum进行敏捷软件开发通常被视为一种方法论; 但不是将Scrum视为方法论,而是将其视为管理流程的框架。

Scrum Process Canvas

Scrum Process Canvas

看板方法

看板是日本的“视觉信号”或“卡片”。丰田线路工人使用看板来表示制造过程中的步骤。作为精益的一部分,该系统的高度视觉性使得团队可以更轻松地沟通需要完成的工作和何时完成。它还标准化了线索和精炼过程,有助于减少浪费和最大化价值。与scrum sprint board类似,看板跟踪“做 – 做 – 完成”活动,但它限制了“正在进行的”活动的数量(该数量由团队经理定义,不能超过)。

看板方法

看板方法

有四个基本的看板原则:

  • 可视化工作以增加沟通和协作。
  • 限制正在进行的工作,以避免无限的非优先打开任务链。
  • 衡量和优化流量,收集指标,预测未来问题。
  • 旨在通过分析获得持续改进。