瀑布开发与敏捷开发的区别,以及从瀑布转型敏捷项目管理的5大注意事项

news2025/1/30 16:40:10
事实证明,瀑布开发管理模式并不适合所有的软件项目,但敏捷项目管理却对大多数项目有效。那么当团队选择转型敏捷的时候有哪些因素必须注意?

敏捷开发最早使用者大多是小型、独立的团队,他们通常致力于小型、独立的项目。正是他们的成功经验,让世界各地的软件团队认为敏捷开发是可行的,且对自身也有改善意义。事实证明,瀑布开发管理模式并不适合所有的软件项目,但敏捷项目管理却对大多数项目有效。

也正因此,敏捷项目管理被越来越多的团队所采用,并且从单个团队扩展到多团队,甚至是软件团队之外,包括 IT、营销、业务开发等。

一、敏捷开发与瀑布开发的区别

敏捷开发与瀑布开发的区别在于:瀑布开发是最典型的预见性的方法,对那些可预测的、重复性的工作很有效。敏捷开发以用户的需求进化为核心,更适用于需求不明确、创新性强的项目,或者需要抢占市场的项目。

1、什么是敏捷项目管理?

敏捷项目管理是一种迭代式的项目交付方法,它通过高频迭代的方式,将项目分解为多个尺寸较小的“小项目”,每部分能够在远比瀑布模式短得多的周期内,快速而独立地走完计划、设计、构建、测试、发布的过程。所以每次发布后都能够根据市场/客户反馈调整,从而提升了速度和适应性。

这种方法与“预设性的”瀑布式项目管理方法不同,瀑布式项目管理遵循既定的路径,对市场变化响应及适应能力有限。当下的客户和企业需要快速响应以及调整,而敏捷提供了在开发过程中进行调整和迭代的灵活性。同时,敏捷项目管理也是 DevOps 实践的基石,开发和运营团队在该方式下协同工作。

敏捷原则:

  • 敏捷项目分为几个增量步骤,并在每个增量的隔间收集反馈进行调整

  • 项目需求拆解到足够小,然后按重要性排列它们的优先级

  • 注重建立与客户之间的联系,团队之间的协作

  • 定期调整以确保满足客户的需求

  • 将计划与执行相结合,使团队能够有效地响应不断变化的需求

敏捷项目管理的优势:

  • 更好的可见性和责任制

  • 及早发现问题

  • 更高的客户满意度

  • 更短的反馈周期

  • 更快响应市场变化

  • 持续提升团队效率

  • 价值导向的灵活优先级排序

敏捷项目管理的缺点:

  • 关键路径和项目间依赖关系不如瀑布项目中清晰

  • 组织适应敏捷需要考虑学习成本

  • 真正的敏捷执行CI/CD,实现起来存在工程和技术成本

2、什么是瀑布项目管理?

瀑布式项目管理是一种预设性的软件开发模式,它将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六项基本活动;且规定了它们自上而下、相互衔接的固定次序,项目必须严格遵循预先计划的顺序进行。开发进程只有通过上一个阶段的验收审核,才能“流动”到下一个阶段。一旦一个阶段完成了,想再去“回头”调整前一个阶段就会很困难,且成本很高。敏捷项目管理虽然也遵循类似的顺序,但会以较小的增量和定期的反馈循环进行工作。

所以,瀑布项目管理方式对那些可预测的、重复性的工作很有效,而对于那些快速变化的工作,它可能会让开发团队落后于竞争对手以及市场。

瀑布项目在进行中如果延期或发生需求变更,就会对后续版本造成巨大影响。此外,瀑布项目中通常会让团队完全专注于下一阶段的工作,直到完成之前都是在开发全新的东西,那么这就会积累非常多的技术债务、缺陷,让解决过程变得非常痛苦。

下面是一个标准瀑布项目的示意图,它具有严格的时间阶段划分,这就使开发人员、产品经理和其他相关人员患得患失的,每个人都希望在自己的时间窗口中申请更多的时间,因为将来可能没有机会迭代。通常,瀑布团队会通过“变更控制”来控制范围蔓延,即维持原计划。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

瀑布模型会加剧构建产品的一些已知挑战:

  • 项目阻碍因素和依赖性的管理:传统的项目管理方式往往会有固定的流程,在彻底解决某个阻碍问题之前,项目是无法向前推进的。

  • 难以获得用户反馈,对产品进行验证:在产品完全完成之前,客户无法体验和反馈,因此,产品设计和代码中的重要问题在发布前都不会被发现。

瀑布开发模式的优点:

  • 每个阶段都有各自的角色和明确分工,所以一定程度会减少过程中的协调;

  • 明确的项目阶段有助于明确界定工作之间的依赖关系;

  • 在确定了需求后,可以对项目的成本进行估算;

  • 有清晰的设计和需求文档,设计阶段更加有条不紊和结构化;

瀑布法的缺点:

  • 需求隔离:由于各阶段的人员只能接触到自己工作范围内的东西,所以对客户需求的理解程度高低不等,开发人员更像是定义为流水线上的工人。

  • 变更代价大:需求变更会带来极大的时间浪费,开发人员普遍对需求变更有很强的抵触情绪。

  • 束缚创造性:由于强调文档管理,所以管理人员会比较喜欢,但是他束缚了开发人员的创造性。

  • 周期漫长:整个开发持续的生命周期很长,需求和设计的耗时很大,有时候会占用三分之一甚至更多时间

  • 招聘需求:满足不同阶段的专业人员意味着更多招聘岗位需求,而敏捷则提倡跨职能团队。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

二、转型敏捷时要考虑的因素

敏捷转型并不容易,特别是当团队或组织长期使用传统项目管理方法的情况下,因为这将涉及观念、思维方式转变、流程的更改以及不一样的团队协作方式等。

比如,在转型的过程中,团队和利益相关者必须接受两个重要概念:

产品负责人的工作核心是优化团队输出的价值,而团队则是围绕产品负责人制定的工作优先级开展工作;

开发团队只负责他们有能力完成的工作,通常情况下产品负责人不会强制给团队指定工作;开发团队成员从迭代待办列表中领取工作任务,因为这样他们可以尝试新的任务类型。

下面我们将简单介绍,引入敏捷项目管理在组织、运行和工作流程方面必须关注的一些要素。

1、产品路线图

产品路线图是产品需求与其完成时间的概览,宏观的展示了产品的发展方向以及开发团队何时实现目标。路线图为敏捷开发提供了重要的背景信息,能够帮助团队了解以及实现增量和整个项目的目标。

有效的路线图不仅是一个强调产品发布和功能的时间表:它是一个动态的文档,产品负责人会在项目进行过程中根据实际情况不断更新,所以在创建产品路线图的初期,对需求、工作量、优先级、完成时间的估算不要求也无法很精确,这些内容都是随着项目进行不断细化调整的。产品路线图是产品负责人推动项目发展的重要工具,它告诉我们每个阶段应该做什么。

以下是产品团队的简单路线图,方框中包含大的发布计划,红色里程碑标记表示时间表。 

编辑切换为居中

添加图片注释,不超过 140 字(可选)

2、需求

路线图中的每个大的发布计划都可以分解为一系列的需求,敏捷开发中的需求指的是“轻量级”描述,而不是与瀑布项目管理中那样多达100 页的“详尽”文档。这是因为敏捷开发中的需求会随着时间的推移,团队会根据对客户和所需产品的共同理解而不断完善。

敏捷开发同时也是符合“精益”的一种方法,它要求团队中的每个人通过持续的沟通和协作达成共识,以这种方式在最终呈现完整的细节。

3、待办事项

敏捷开发中的待办事项一定是划分了优先级的。在待办事项列表中包括所有的工作项目,比如:新功能、bug、技术需求或架构任务等。产品负责人为开发团队确定待办事项的优先次序,然后,开发团队以此作为唯一的参考,确定需要完成的工作。

4、敏捷指标

敏捷团队的持续改进离不开度量指标。比如,看板方法下的在制品限制使团队专注于交付最优先的工作。燃尽图等图表有助于团队预测他们的交付节奏,而连续流程图有助于识别瓶颈。这些指标和工件使每个人都专注于目标,同时也增强了团队交付未来工作能力的信心。

5、敏捷以信任为基础

团队成员之间如果没有高度的信任,敏捷流程就很难运作。公开的流程和正确的产品目标、关于产品开展平等定期的对话,都有助于提升团队的积极性和信心。

小结

敏捷项目管理是一种创新方法,不仅适用于软件项目,而且适用于各种项目。通过提供在开发生命周期中响应变化的灵活性,团队能够交付满足客户需求且更高质量的产品。敏捷赋予团队权力,建立责任感,鼓励创新,同时促进持续改进。敏捷使您能够在不偏离轨道的情况下响应变化,这对任何工作都是有益的。

延伸阅读:

Scrum 开发指南: Scrum 框架详解 | Scrum 四个会议及正确召开方式 | 正确的计划和执行Sprint的方式 | 做好迭代计划的4大关键点 | 做好这4点让每日站会更适配敏捷团队 | 开好迭代评审会的3个关键步骤 | 为什么要召开迭代回顾会 | Scrum 3大角色及其岗位的具体职责 | Scrum三大工件在敏捷开发中的作用 | 2022年14个最佳 Scrum 敏捷项目管理软件 | 更多

Kanban 敏捷指南: 使用看板(Kanban)管理方法的5大好处 | 看板 VS Scrum:如何选择? | 看板和 Scrum 的混合模式适合在哪些场景使用 | 更多

规模化敏捷: 规模化敏捷的价值及五大规模化敏捷框架 | 规模化敏捷之 Spotify 模型 | 规模化敏捷框架之LeSS框架 | 更多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/396637.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Keepalive+LVS群集部署

KeepaliveLVS群集部署一、Keepalive概述1、什么是Keepalive2、Keepalive工作原理3、Keepalive主要模块及作用4、Keepalived 服务重要功能(1)管理 LVS 负载均衡软件(2)支持故障自动切换(3)实现 LVS 负载调度…

SpringBoot下的Spring框架学习(tedu)——day03——Spring DI、SpringAOP JDK动态代理

SpringBoot下的Spring框架学习(tedu)——day03——Spring DI、SpringAOP JDK动态代理 目录SpringBoot下的Spring框架学习(tedu)——day03——Spring DI、SpringAOP JDK动态代理1. Spring的依赖注入1.1 依赖注入案例1.1.1 定义接口…

Python的运算符

Python支持多种运算符,下表大致按照优先级从高到低的顺序列出了所有的运算符,运算符的优先级指的是多个运算符同时出现时,先做什么运算然后再做什么运算。除了我们之前已经用过的赋值运算符和算术运算符,我们稍后会陆续讲到其他运…

解决launch:program .exe does not exist

二. 程序的运行和调试 1.launch.json 复制下列代码至launch.json,并根据指导做出相对/绝对路径修改 用 IntelliSense 了解相关属性。 {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.micros…

虹科教您 | 在Linux环境下安装PCAN View及通讯测试指南

应用简介 PCAN-View软件是一款简化的CAN监视软件,可用于显示、发送、和记录CAN数据通讯。报文可手动和定期发送,用户可设置比特率。在处理期间显示总线系统错误和CAN硬件的存储器过满。示踪功能可用于记录和保存CAN数据通讯。本文档的作用在于&#xff…

Python进阶-----面向对象8.0(反射---对象属性方法操作)

目录 前言: 反射 1.getattr() 函数 2.setattr() 函数 3.hasattr() 函数 4.delattr() 函数 前言: 众所周知,每一个实例化对象都是有实例化属性或者方法的,之前我们对实例化对象进行属性方法查询、删除或者添加都是直接去通过…

day27_css

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、CSS 零、 复习昨日 见代码 一 、引言 1.1CSS概念 ​ 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通…

MpAndroidChart3最强实践攻略

本篇主要总结下Android非常火爆的一个三方库MpAndroidChart的使用。可能在大多数情况下,我们很少会在Android端去开发图表。但如果说去做一些金融财经类、工厂类、大数据类等的app,那么绝对会用到MpAndroidChart。 一、前言 2018年,那年的我…

打包成JAR文件和WAR文件,到底有什么区别?

Spring Boot是一种基于Spring框架的快速开发应用程序的工具,可以轻松地构建可部署的独立应用程序。在使用Spring Boot时,你可能会注意到有两种不同的部署选项:打包成JAR文件和WAR文件。在这篇文章中,我们将深入探讨这两种部署选项…

Netty 简介

一、Netty 简介 Netty 是基于 Java NIO 的异步事件驱动的网络应用框架,使用 Netty 可以快速开发网络应用,Netty 提供了高层次的抽象来简化 TCP 和 UDP 服务器的编程,但是你仍然可以使用底层的 API。 Netty 的内部实现是很复杂的,但…

Mysql常见的函数介绍

Mysql查询示例简介一、创建计算字段二、使用数据处理函数1. 文本处理函数2. 日期和时间处理函数3. 数值处理函数三、聚集函数总结简介 本篇博客中介绍了mysql查询时,常用的一些函数,融会贯通这些函数的使用,会对工作和学习有很大的帮助&#…

【软考中级信安】第四章--网络安全体系与网络安全模型

1.网络安全体系概述1.1 网络安全体系概念网络安全体系:是网络安全保障系统的最高层概念抽象,是由各种网络安全单元按照一定的规则组成的,共同实现网络安全的目标。1.2 网络安全体系特性整体性:网络安全单元按照一定规则&#xff0…

SequoiaDB分布式数据库2023.2月刊

本月看点速览 技术实力获认可,获评多项荣誉 共建人才生态,与深圳大学举办奖学金颁奖仪式 青杉计划2023持续进行,一起攀登更高的“杉” 技术实力获认可,获评多项荣誉 2月,21世纪创投研究院发布“21世纪(全…

【20230308】串口接收数据分包问题处理(Linux)

1 问题背景 一包数据可能由于某些传输原因,经常出现一包数据分成几包的情况。 2 解决方法 2.1 通过设定最小读取字符和读取超时时间 可以使用termios结构体来控制终端设备的输入输出。可以通过VTIME和VMIN的值结合起来共同控制对输入的读取。此外,两…

[2.2.1]进程管理——调度的概念、层次

文章目录第二章 进程管理调度的概念、层次(一)调度的基本概念(二)调度的三个层次(1)高级调度(2)低级调度(3)中级调度补充知识:进程的挂起态与七状…

第三篇:字符显示原理

使用PCtolLCD2003制作字库注意,我们开始取模前一定要记得设置取模方式,这个取模方式和我们显示屏的显示方式要一致设置字体为宋体,字体大小为16*16(这里当然可以设为别的)输入想要显示的字点击生成字模u8 shuai[] {0x10,0x04,0x10,0x04,0x12,0x04,0x12,0x04,0x92,0x3F,0x92,0x…

HTML 编辑器

文章目录 HTML 编辑器HTML 编辑器推荐编辑器下载网站HBuilder步骤 1: 新建 HTML 文件步骤 2: 另存为 HTML 文件步骤 3: 在浏览器中运行这个 HTML 文件HTML 编辑器 HTML 编辑器推荐 可以使用专业的 HTML 编辑器来编辑 HTML,我为大家推荐几款常用的编辑器: Notepad++:Windows…

蓝桥dfs专题

1、dfs 路径打印 小明冒充X星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是 n x n 个方格。【如图1.png】所示。 按习俗,骑士要从西北角走到东南角。 可以横向或纵向移动,但不能…

SpringBoot基础知识

1 SpringBoot简介1.1 入门官网创建SpringBoot项目&#xff1a;https://start.spring.io/快速启动SpringBoot工程&#xff1a;SpringBoot程序可以不依赖Tomcat和IDE&#xff0c;源码工程打完jar后可以直接运行。java -jar springboot_quick_start-0.0.1-SNAPSHOT.jar1.2 简介<…

OAK相机如何将yoloV5lite模型转换成blob格式?

编辑&#xff1a;OAK中国 首发&#xff1a;oakchina.cn 喜欢的话&#xff0c;请多多&#x1f44d;⭐️✍ 内容可能会不定期更新&#xff0c;官网内容都是最新的&#xff0c;请查看首发地址链接。 ▌前言 Hello&#xff0c;大家好&#xff0c;这里是OAK中国&#xff0c;我是助手…