瀑布开发模式和敏捷开发模式的区别和思考
瀑布开发模式:
瀑布开发模式有以下显著的特点:
1.严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。
使用里程碑的方式,严格定义了各开发阶段的输入和输出。如果达不到要求的输出,下一阶段的工作就不展开。
2.重视和强调过程文档,在开发的中后期才会看到软件原型,早起只能通过文档来了解系统的模样。
在这种情况下,文档的重要性仿佛已经超过了代码的重要性。
3.瀑布模型把每个开发阶段都定义为黑盒,希望每个阶段的人员只关心自己阶段的工作,不需要关注其他阶段的工作。
好处是:可以让开发人员能够更专注于本职工作,提高阶段效率。
坏处是:
a.由于各阶段的开发人员只能接触到自己工作范围内的东西,所以对客户需求的理解程度高低不等,开发人员更像是定义为流水线上的工人。
b.对于客户需求变更,编码人员会比设计人员更容易产生很强的抵触情绪。
c.在每个开发阶段都会有一些信息刻意的不让其他开发阶段的人员知道(本意是为了提到效率,但实际上有时候产生的是互相的理解偏差)。
4.瀑布模型产生的管理文档(计划书,进度表)等,能让不太了解该项目的人也能看懂项目的进度情况(只有能看懂百分比就行),很适合向领导汇报用。所以管理人员比较喜欢瀑布模型,但是开发人员不喜欢,因为它束缚了开发人员的创造性。
5.既然叫做瀑布,就意味着不应该走回头路。否则如果出现返工,付出的代价会很大。
软件生命周期前期造成的Bug的影响比后期的大的多。
代价比较大的主要原因还是每个开发阶段的步子过大,每一次调整都可能伤筋动骨。
6.更适合需求相对稳定的大型项目。
敏捷开发模式:
核心是快速迭代,拥抱变化。
因为最终目标是让客户满意,所以能够主动接受需求变更,这就使设计出来的软件有灵活性,可扩展性。
宣言:
个体和交互 胜过 过程和工具
可以工作的软件 胜过 面面俱到的文档
客户合作 胜过 合同谈判
响应变化 胜过 遵循计划
敏捷开发模式有以下显著的特点:
1.story细化。
2.简单设计,避免过度设计。
3.重复迭代。
4.减少不必要的文档。
5.客户最关心的功能最先完成。
6.要求客户有时间对每次迭代的成果进行确认,提出改进意见。
7.showcase。
8.沟通是非常重要的,所有的开发人员对项目活动的理解应该是一致的。加强团队之间和客户之间的沟通。
9.测试驱动开发(TDD)
10.需要更强的个人和团队能力。
11.敏捷的管理是团队的自我管理和项目经理的服务式管理。
12.敏捷开发不能在一开始就给出项目完整的成本计划。
13.在有技术问题还没有解决的情况下不适合展开迭代。
14.敏捷实践:晨会,deadline,负责人制等等。
瀑布+敏捷开发模式:
核心是减小瀑布模型的粒度,采用敏捷开发的优秀实践方式,提高开发的沟通效率,提供项目的全景视图。
瀑布开发模式和敏捷开发模式的区别和思考相关推荐
- 开发模式(敏捷开发,瀑布式开发,螺旋型开发,迭代开发,devOps开发
开发模式(敏捷开发,瀑布式开发,螺旋型开发,迭代开发,devOps开发 https://blog.csdn.net/sinat_35566306/article/details/90404606
- JAVA伴我行——项目篇(一):开发模型,敏捷开发和瀑布模型的结合
在项目的开发过程中,我们或多或少都会遵循一定的模式.最常见的就是瀑布模型了(也许平时没有注意,但你确实在遵循这个模型). 瀑布模型的典型表现就是遵循以下顺序:需求调研/分析,详细设计/概要设计,编码阶 ...
- Soft:软件开发的简介(敏捷开发等6大软件开发模式)、软件测试的简介(单元测试/集成测试/系统测试/验收测试/回归测试、黑白灰功能测试、DEV等四套环境)、运维的简介之详细攻略
Soft:软件开发的简介(敏捷开发等6大软件开发模式).软件测试的简介(单元测试/集成测试/系统测试/验收测试/回归测试.黑白灰功能测试.DEV等四套环境).运维的简介之详细攻略 目录 1.软件开发( ...
- 为什么谷歌的开发人员认为敏捷开发是无稽之谈?
本文是 Quora 上的一篇回答,作者是一名前谷歌工程总监,他认为敏捷宣言从较高层次而言,与谷歌工程师对软件开发的看法是很接近的.但如果落实到细节,比如敏捷宣言背后的某些原则,其所代表的主张短迭代和低 ...
- 从瀑布开发模式到敏捷开发模式(scrum)的思路转换
部门推广scrum敏捷开发已经小半年了.团队也从不适应.慢慢地开始变的习惯.之前领导安排我作为我们组的scrum master.因为从来没有做过leader.然后直接之前也没有接触过scrum.更是非 ...
- 开发模式(敏捷开发,瀑布式开发,螺旋型开发,迭代开发,devOps开发)
一. 敏捷开发 以人为核心.迭代.循序渐进的开发方式 简化文档,提取文档重点,主要在于人与人之间的沟通, 对开发产品进行迭代,最终完成开发. 迭代:迭代是指把一个复杂且开发周期很长的开发任务,分解为很 ...
- 敏捷软件开发之何为敏捷开发
敏捷开发,Agile Development,就是指能够在需求迅速变化的情况下快速开发软件.我们接触最多敏捷实践方式有:极限编程(XP).结对编程.测试驱动开发(TDD)等. 追究敏捷的历史,就必须要 ...
- 《火星人开发纪实:敏捷开发一千零一夜》序言
本文是<火星人>系列的子系列,将分期向大家分享火星人敏捷开发管理工具的开发和管理实践. 一直以来,敏捷开发长期受困于各种名词.术语的堆叠.罗列.解释,而较少出现原创和实践分享过程.而敏捷实 ...
- 质量管理14条原则、敏捷开发宣言、敏捷开发十二原则
一.质量管理大师爱德华·戴明博士经典的质量管理14条原则 1. Create constancy of purpose toward improvement of product and servic ...
最新文章
- 2021清华大学年度人物候选 | 曹丰泽:我要证明,理想主义的路是走得通的
- 代码编辑器——sublime
- WCF - Versus Web Service
- 数字图像处理实验(5):Proj03-01 ~ Proj03-06
- 电话骗术升级了,提高警惕! (转自公司内部新闻组,真人真事)
- 局域网工业交换机的种类和选择注意事项!
- 详解:设计模式之-适配器模式
- php背景图片透明度,css如何使用opacity属性给背景图片加透明度(代码)
- 人口logistic模型公式_MATLAB做logistics人口模型,求出值有问题
- NLP——12.词向量及相关应用
- 5G到底有多快?和4G相比的直接数据给你更直观感受
- Linux系统中,让alias命令永久保存的方法!
- HH SaaS电商系统的虚拟资金账户(钱包余额)设计
- 【触动精灵】开发手册学习整理(一)
- grep中的正则表达式
- MATLAB自动控制:分析系统动态特性(超调量,上升时间,峰值时间,调整时间)和静态特性(稳态误差)
- 将毫秒转换为时间(HH:ss:mm)
- 无人机避障四种常见技术中,为何大疆首选双目视觉
- android自动旋转导致页面异常跳转
- 苹果seo_1+X网店运营推广中级标品新品seo优化