瀑布式开发与敏捷开发的区别是什么

article/2025/1/8 12:39:57

摘要:瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。我们将在文章中详细说明两者各自的适合场景。

详细解答:

瀑布和敏捷都不是什么新概念,关于敏捷开发与瀑布开发的优势与缺点都已经比较明确,这里根据全网的资料给大家做一些整理和总结。

一、瀑布开发

瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。

瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。

有论文统计,它是造成70%软件开发失败的原因。

瀑布开发大体分为这几个阶段:需求分析、设计、编码、测试、维护。

目前来说2B的传统企业,包括ERP,MES,WMS,CRM,OA,IBMS等系统当中可以经常见到他们的影子。现在这种模式仍然流行在一些大的项目或者是外包的一些项目当中。

瀑布模型作为最典型的预见性方法,其优点主要在于

  • 阶段清晰:从计划到开发最后到上线运行,三个阶段非常清晰。
  • 时间顺序:每个阶段顺序必须是从上到下,严格按照时间先后进行。
  • 环环相扣:在每一个阶段都必须有产出物然后才能进入到下一个阶段进行。
  • 黑盒模式:每个阶段都有各自的角色和分工,各自只关心自己的任务。比如需求阶段开发人员无需关注。

而其缺点也突出:

  • 需求隔离:由于各阶段的人员只能接触到自己工作范围内的东西,所以对客户需求的理解程度高低不等,开发人员更像是定义为流水线上的工人。
  • 变更代价大:既然叫做瀑布,就意味着不应该走回头路。否则如果出现返工,付出的代价会很大。需求变更,编码人员会很强的抵触情绪。
  • 束缚创造性:由于强调文档管理,所以管理人员会比较喜欢,但是他束缚了开发人员的创造性。
  • 周期漫长:整个开发持续的生命周期很长,需求和设计的时间会耗费特别多,有时候会占用三分之一甚至更多时间,这样整个周期就会变长,大都在半年到一年左右的时间,所以更适合需求相对稳定的大项目。

二、敏捷软件开发

敏捷软件开发是基于敏捷宣言定义的价值观和原则的一系列方法和实践的总称。自组织、跨职能团队运用适合他们自身环境的实践进行演进得出解决方案。

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发

在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

敏捷开发借助互联网浪潮开始流行起来,相比瀑布模式,敏捷无疑更加贴近互联网时代背景下快速发展变化的市场环境以及业务需求。

简单总结,敏捷开发的优缺点在于:优点:

  • 更快交付价值
  • 更低的风险
  • 拥抱变化
  • 更好的质量
  • 持续改进
  • 更高的客户满意度
  • 更高的团队满意度
  • ......

缺点:

  • 很难进行准确的资源规划
  • 很难准确的定义“轻量的“或必要的文档
  • 很难把握整体产品的一致性
  • 很难预测有限的终点
  • 很难有效地进行度量
  • .......

从上文来看,敏捷开发似乎要优于瀑布开发,但本质并非如此。

两者都有自己适用的范围,而当下这VUCA时代,大部分项目可能都适合用敏捷开发,但仍旧有一部分确定性很强的项目会适合适用瀑布开发。

最后给想转型敏捷开发的同学推荐一款敏捷管理软件PingCode,在一定程度上能够帮助更好的学习敏捷,以及管理团队、项目等。

推荐阅读:

1、中小团队如何落地敏捷开发?

2、敏捷开发框架


http://chatgpt.dhexx.cn/article/bT1Mbwj6.shtml

相关文章

【敏捷式开发公司-禅道使用心得】

前言:本人测试小菜鸡一枚,近期入职了一家六七十人的小公司,在我入职之前,他们一直是用Teambition(以下简称TB)来做项目管理的,包括提交需求、bug管理都是在TB。入职后我也大概使用了一下&#x…

敏捷开发和瀑布式开发

瀑布模型的特点: (传统的开发方式) 1、强调文档 前一个阶段的输出就是下一个阶段的输入,文档是个阶段衔接的唯一信息。所以很多开发人员好象是在开发文档,而不是开发软件,因为要到开发的后期才可以看到软…

【APICloud系列|21】使用APICloud敏捷式开发总结,回顾开发一个完整APP过程。

导读:APICloud是柚子(北京)科技有限公司创建的低代码开发平台,总部位于北京, 通过生产力工具与混合开发技术,为企业与开发者构建高效的IT环境;在APICloud平台已有80万注册用户,平台每日生成安装包超6000个。业务团队延伸至上海、深圳、重庆、青岛等10余个城市。 APICloud是…

敏捷开发-互联网时代的软件开发方式

一、什么是敏捷开发 敏捷开发简单的描述为:是一种应对需求快速变化的软件开发方式。 敏捷开发的核心思想就是小步快跑、不断迭代,在一次次的迭代升级中完成【小目标】最终完成那个【大目标】。正因为敏捷开发的这种不断迭代升级的开发模式,使…

Curl windows下载地址

Windows下Curl可执行程序的下载地址为: https://curl.haxx.se/download.html 该下载不需要编译,可以立即执行,windows 64位下载的时候,注意点版本号那一列(如:7.49.1),不要点“Win64 ia64 zip…

curl 下载地址中有特殊字符解决方案

curl 下载地址中有特殊字符解决方案 情况 使用 curl 下载 地址中带有 特殊字符的时候 比如下面这个地址。实际访问地址不正确,参数丢失问题 curl -o kspf.jpeg https://img-blog.csdnimg.cn/71ad2375855244a3b918585938236efe.png?a1&b2&c3 上面这个 u…

C++使用curl下载文件(get请求)

使用curl也可以下载文件&#xff0c;代码如下&#xff1a; #include<iostream> #include<string> #include<curl\curl.h> using namespace std;//下载文件数据接收函数 size_t dl_req_reply(void *buffer, size_t size, size_t nmemb, void *user_p) {FILE …

Linux C语言通过curl下载https资源

Linux C语言通过curl下载https资源代码如下&#xff0c;注意需要把main函数 char *url 赋值为需要下载文件的路径。 #include <curl/curl.h> #include <stdio.h> #include <string.h> #include <stdint.h>static size_t filesize 0;size_t write_dat…

CURL下载文件简易进度条

背景 curl下载文件比较方便&#xff0c;sample里的进度打印比较鸡肋&#xff0c;网上搜了一下C打印进度条&#xff0c;随便改改&#xff0c;就ok了&#xff0c;代码贴起来&#xff01; curl 回调函数进度打印输出 int download_progress(char *progress_data,double t, /* d…

如何在GitHub正确地使用 Curl 下载文件?

Curl是在 Linux 终端中下载文件的绝佳工具。 下载与原始文件同名的文件的常用语法非常简单&#xff1a; curl -O URL_of_the_file这在大多数情况下都有效&#xff0c;但是&#xff0c;您会注意到&#xff0c;有时当您从 GitHub 或 SourceForge 下载文件时&#xff0c;它不会获…

Curl 下载安装和配置

Curl 下载安装和配置 1.1 什么是Curl?1.2 Curl 支持的网络协议1.3 Curl 是做什么用的&#xff1f;1.4 Curl 如何下载安装&#xff1f;1.4.1 Windows 平台1.4.2 Linux 平台1.4.3 Mac OS 平台 1.5 Curl 配置1.5.1 解压1.5.2 配置环境变量1.5.3 验证安装配置是否成功 1.6 如何使用…

curl下载和上传

cURL 概述 cURL 是一个利用 URL 语法在命令行下工作的文件传输工具&#xff0c;1997年首次发行。它支持文件上传和下载&#xff0c;所以是综合传输工具&#xff0c;但按传统&#xff0c;习惯称 cURL 为下载工具。 常见用法 下载文件 下载文件 -o&#xff0c;自定义路径和文…

curl下载(curl下载文件)

php写curl下载文件 不是下载到服务器 让浏览器弹出下载文件&#xff0c;在本地下载 求高手解答 这样的用header吧 $file‘下载地址’; if (file_exists($file)) { header(Content-Description: File Transfer); header(Content-Type: application/octet-stream); header(Conten…

Curl下载及简单使用

Curl 是一个命令行工具和库&#xff0c;用于通过URL传输数据。 简单来说就是可以通过命令行发送GET,POST 等多种协议请求的工具 一、官网下载 下载地址 windows版 下载完成后解压即可 二、使用 进入 bin 目录下&#xff0c;打开cmd 窗口&#xff0c;输入 curl 加路径 带cook…

curl 下载图片

curl -o 1.jpg http://image.baidu.com/image123.jpg [1] 40848 [root~]# % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 251k 0 251k 0 0 1570k 0 --:–:-- --:–:-- --:–:-- 1589k

Curl【实例 01】curl下载使用及cmd实例脚本分享(通过请求下载文件)

Curl 官方下载地址 可下载不同平台不同版本的安装包&#xff0c;本次使用的是Windows解压版本curl-8.0.1_9-win32-mingw.zip。 curl下载使用及cmd实例 1.是什么1.1 curl1.2 bat和cmd 2.常用命令2.1 发送GET请求并显示响应头信息2.2 显示详细的请求和响应信息2.3 限制重定向次数…

完整的python项目实例-python完整项目

广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品。未来,我们一起乘风破浪,创造无限可能。 一个完整的python项目需要具备什么? 1. 需求功能的实现: 实现思路+现有框架+基础编程 2. 项目日志: logging模块(调试性的日志和记录性的日志…

微信小程序项目实例——投骰子

微信小程序项目实例——投骰子 文章目录 微信小程序项目实例——投骰子一、项目展示二、核心代码文末 项目代码见文字底部&#xff0c;点赞关注有惊喜 一、项目展示 投骰子是一款工具类小程序 用户可以点击按钮投出自身的骰子点数 二、核心代码 <!--dice.wxml--> <v…

连接数据库的项目实例

学生成绩管理系统 关键词&#xff1a;java&#xff0c;SQL Server 2012 后端 打开SQL Server 2012&#xff1a; 点击加号&#xff1a; 选中数据库&#xff0c;右键&#xff0c;新建数据库&#xff1a; 点击确定&#xff0c;等待片刻选中数据库&#xff0c;右键&#xff0c;刷…

SSM项目实例——简易版图书管理系统

文章目录 概述准备实现1.搭建数据库2.实现pojo层3.实现dao层4.实现service层5.配置Spring整合dao层6.配置Spring整合service层7.配置Spring整合Spring MVC8.配置Spring整合文件9.实现controller层10.实现view层11.运行前检查 运行后记 概述 通过对数据库中一张表的CRUD&#x…