agile VS waterfall:是什么,各有什么优缺点?

agile 和 wterfall 是两种流行的项目管理方法,agile(敏捷方法)是通过迭代的方式,分多次进行持续交付可用的产品;waterfall (瀑布式方法)是严格按照线性顺序阶段进行交付的方法,一个阶段的工作做完才进入下一个阶段。agile(敏捷方法)更灵活,更能适应变化和快速交付,但可能会出现额外的成本;waterfall (瀑布式方法)更结构化,更有利于管理,但风险更高,不灵活。

 

agile 是什么?

 

agile(敏捷方法)是一种强调拥抱变化,通过迭代和持续交付价值的管理方式,将一个要交付的产品,分成多个周期,每个周期交付一部分可用的功能,循序渐进,随着迭代次数的增加不断丰富功能

 

agile(敏捷方法)的核心价值观有:

 

(1)个体和互动胜过流程和工具:agile(敏捷方法)强调团队成员之间的合作和沟通,而非过度依赖流程和工具。

(2)可以工作的软件胜过详尽的文档:agile(敏捷方法)重视实际产出的软件,而不是过于详细的文档和规范。

(3)客户合作胜过合同谈判:agile(敏捷方法)重视与客户密切合作,理解并满足他们的需求。

(4)响应变化胜过遵循计划:agile(敏捷方法)强调灵活适应变化,而不是刻板地遵循事先制定的计划。

 

常见的 agile(敏捷方法)有:

 

(1)Scrum:Scrum 是最流行的敏捷方法之一。它将项目划分为固定长度的时间周期,即“冲刺”,通常是 2-4 周。在每个冲刺期间,团队会着重完成事先规划的部分功能。

(2)Kanban(看板):Kanban 是一种流程管理方法,通过可视化看板来跟踪任务的状态。通过限制在制品(WIP)发现和缓解工作过程中的压力和瓶颈。

(3)Lean(精益思想):起源于丰田汽车公司的生产体系,精益思想强调通过最大化价值、最小化浪费和消除不必要的过程和不断改进来提高效率和质量。它着重于价值交付和持续改进。

(4)XP (Extreme Programming): XP 是一种强调技术实践的软件开发方法,它强调团队的合作、自动化测试、持续集成等实践来确保高质量的交付。

agile
Scrum流程

 

优点

 

  • 灵活性高,适应变化,可以快速进行调整
  • 快速交付价值:通过小步快跑的方式在短周期内就可以交付出可用的产品或功能点
  • 持续改进:agile(敏捷方法)会通过每个迭代的回顾和反思,持续改进团队的工作方式和项目的执行效率
  • 频繁与客户交流,更能满足客户需求

 

缺点

 

  • 由于接受中途变化和调整,可能会增加额外的成本和时间
  • 可能出现文档不足,导致后续维护和知识传承的困难
  • 由于 agile(敏捷方法)更强调团队自主性和自组织,全局管理复杂

 

适用场景

 

  1. 需求不明确或者需求经常变更的项目
  2. 需要快速交付价值、且产品或项目可以一部分一部分持续交付
  3. 自组织、多职责的团队

 

waterfall 是什么?

 

waterfall (瀑布式方法)是一种线性、按阶段顺序有序进行的方法,有明确的阶段划分和严格的顺序性要求。在工作开展之前,要做非常详细的计划,产出大量的文档,以指导后面的工作。

在软件开发中,瀑布式一般分为:规划→设计 → 开发 → 测试 → 部署 → 运维这几个大阶段,前一个阶段的工作做完才进行下一个阶段的工作。

 

优点

 

  • 详细的文档和固定的流程可以让新成员更容易上手
  • 由于前期做好大量计划,开展工作时只需按照计划进行即可
  • 工作流程结构化,更好管理

 

缺点

 

  • 不够灵活,环环相扣,应对变化的能力弱
  • 风险高,若前面有一环节出错,后面的工作全都要推翻重做
  • 交付周期长,最后交付时有可能已经不太适应市场了

 

适用场景

 

  1. 需求明确、稳定、较少变动的项目,尤其是可以在早期进行详细规划的项目
  2. 无法分多次进行交付的产品或项目

 

需要注意的是,agile(敏捷方法)和 waterfall (瀑布式方法)不存在哪个更好哪个更差,选择哪种方法完全取决于项目或产品的类型、团队类型等因素。