五分钟理解瀑布开发、敏捷开发和Devops
瀑布开发、敏捷开发、Devops概述
无论是瀑布式开发、敏捷开发还是DevOps,整个流程都分为设计、开发、测试和部署四个部分,只不过各个部分的开始和结束时间节点不同而已!下图很好地解释了这一点。
上图中可以清晰地看到,从瀑布式开发到敏捷开发再到DevOps,各个阶段的切换速度越来越快,瀑布式开发和敏捷开发的运维部署工作都是放到最后,而 DevOps 结合敏捷开发思想,将部署工作也敏捷起来。
瀑布开发
瀑布式开发是早期被广泛采用的软件开发模型,要求有明确的需求,大家按照需求一步步做好规划,每一阶段工作的完成是下一阶段工作开始的前提,每一阶段都要进行严格的评审,保证各阶段的工作做得足够好时才允许进入下一阶段,它适用于需求明确的项目。其最大的风险是,当产品研发完成后, 到了产品测试阶段如果发现了问题 ,或者发现其无法满足市场需求, 那么就需要重新开发,甚至需要重新规划产品。
敏捷开发
敏捷开发是一种以用户需求进化为核心、迭代、循序渐进的开发方法。首先把用户最关注的软件原型做出来并交付给用户,用户在实际场景中发现问题并给予反馈,研发人员快速修改弥补需求中的不足。上述过程不断迭代,直到用户满意。敏捷适用于需求不明确、创新性或者需要抢占市场的项目,特别适合互联网项目。
DevOps
DevOps是一种软件开发实践,它将人员、流程和技术结合在一起,以交付持续的价值。该方法分为计划和跟踪、开发、生成和测试、交付以及监视和操作。DevOps 的独特之处在于开发、IT 运营、质量工程和安全团队协同工作,在发布新产品、版本或更新所涉及的所有任务中创造效率。
DevOps和敏捷
关于 DevOps 和敏捷,最重要的一点是它们不是互斥的。DevOps 是一种文化,促进所有参与软件开发和维护的参与者之间的协作。敏捷可以被描述为一种开发方法,旨在需求不断变化的现实中维护工作效率和驱动发布。尽管 DevOps 和敏捷是不同的,但是如果将这两种方法结合使用,将会带来更高的效率和更可靠的结果。DevOps是敏捷的有效补充,是将运维纳入产品开发过程的思维方式,是敏捷开发方法论的升级,更强调自动化工具的实现与应用,以帮助实现软件的快速迭代。
五分钟理解瀑布开发、敏捷开发和Devops相关推荐
- 五分钟理解什么是面向对象
昨天讲了MVC,有同学表示还想了解一些软件开发架构方面的姿势.我琢磨了半天,列了不少技术名词,本来想挑一个出来讲一讲,写了一半发现有很多前置知识之前没涉及,于是决定把坑填一填,先从基础的「面向对象」讲 ...
- 五分钟理解什么是接口
五分钟理解什么是接口 在IT和互联网领域里面,这个词在不同场景下都会出现,比如"USB接口","让后台给我提供一个接口,我直接调用这个接口","这 ...
- [Python]五分钟理解元类(Metaclasses)
五分钟理解元类(Metaclasses) 真的,它并非巫术. 原文地址:http://www.voidspace.org.uk/python/articles/five-minutes.shtml 日 ...
- 五分钟带你了解前端开发,以及前端开发的发展机会
前端开发 前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术.框架.解决方案,来实现互联网产品的用户界面交互 .它从网页制作 ...
- 【转】五分钟理解什么是接口
在IT和互联网领域里面,这个词在不同场景下都会出现,比如"USB接口","让后台给我提供一个接口,我直接调用这个接口","这里你设计一个接口,我来实现 ...
- 五分钟理解服务器 SMP、NUMA、MPP 三大体系结构
公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 从系统架构来看,目前的商用服务器大体可以分为三类,即对称多处理器结构 (SMP :Symmetric Multi- ...
- 五分钟理解yield在python中的简单用法,让你不再迷惑
很多同学无论是在学习python还是使用python的过程中,都会遇到yield关键字,这个让人头大的问题,今天,就给大家分享一下我自学yield的心路历程 基本概念: (1)在 Python 中,使 ...
- 函数式编程语言python-Python——五分钟理解函数式编程与闭包
今天是Python专题的第9篇文章,我们来聊聊Python的函数式编程与闭包. 函数式编程 函数式编程这个概念我们可能或多或少都听说过,刚听说的时候不明觉厉,觉得这是一个非常黑科技的概念.但是实际上它 ...
- Python——五分钟理解函数式编程与闭包
函数式编程 函数式编程这个概念我们可能或多或少都听说过,刚听说的时候不明觉厉,觉得这是一个非常黑科技的概念.但是实际上它的含义很朴实,但是延伸出来许多丰富的用法. 在早期编程语言还不是很多的时候,我们 ...
最新文章
- AtCoder Beginner Contest 198 (A ~ F)题解
- 计算机图形软件---图形功能
- mysql 查看函数fsync_查看MySql使用的数据库引擎
- 计算机专业开学周记,【热门】开学周记集锦5篇
- 寻找mysql的data文件夹得方式
- elasticsearch id查询_互联网公司中对【Elasticsearch】的真实应用案例
- C++Primer学习笔记:第1章 开始
- 通过AO连接多个EO并进行使用
- scala面试问题_Scala面试问题
- jack插头_防水连接器航空插头特点
- 对话CDN巨头Akamai:携手金山云,意欲何为?
- 得力考勤机excel密码_可以修改原始考勤记录数据的是哪种人脸指纹考勤机?
- fdisk 分区/格式化/挂载
- 改变空间参考,文本框显示prj文件内容
- 25匹赛马,没有秒表,五条跑道。用最少的比赛场次找出三匹跑得最快的马。过程分析
- WebService CXF-RS技术之@Pathparam与@Queryparam注解区别
- PHP怎么加入购物车MySQL_php实现简单加入购物车功能
- 数据结构基础— How Long Does It Take
- MATLAB学习笔记之矩阵和数组1.1(mathematic)
- DAX :表值函数 ADDCOLUMNS 和 SELECTCOLUMNS