广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >DevOps和敏捷有哪些区别
  • 219
分享到

DevOps和敏捷有哪些区别

2024-04-02 19:04:59 219人浏览 薄情痞子
摘要

本篇内容主要讲解“devops和敏捷有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“DevOps和敏捷有哪些区别”吧!两者之间的区别在于开发完毕之后发生

本篇内容主要讲解“devops和敏捷有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“DevOps和敏捷有哪些区别”吧!

两者之间的区别在于开发完毕之后发生的事情。

早期,软件开发并没有特定的管理流程。随后出现了瀑布开发流程Waterfall,它提出软件开发活动可以用开发和构建应用所耗费的时间来定义。

那时候,由于在开发流程中没有审查环节和权衡考虑,常常需要花费很长的时间来开发、测试和部署软件。交付的软件也是带有缺陷和 Bug  的质量较差的软件,而且交付时间也不满足要求。那时候软件项目管理的重点是长期而拖沓的计划。

瀑布流程与三重约束模型triple constraint model相关,三重约束模型也称为项目管理三角形project management  triangle。三角形的每一个边代表项目管理三要素的一个要素: 范围、时间和成本。正如 Angelo Baretta  写到,三重约束模型“认为成本是时间和范围的函数,这三个约束以一种确定的、可预测的方式相互作用。……如果我们想缩短时间表(时间),就必须增加成本。如果我们想增加范围,就必须增加成本或时间。”

从瀑布流程过渡到敏捷开发

瀑布流程来源于生产和工程领域,这些领域适合线性化的流程:正如房屋封顶之前需要先盖好支撑墙。相似地,软件开发问题被认为可以通过提前做好计划来解决。从头到尾,开发流程均由路线图清晰地定义,沿着路线图就可以得到最终交付的产品。

最终,瀑布模型被认为对软件开发是不利的而且违反人的直觉,因为通常直到开发流程的最后才能体现出项目的价值,这导致许多项目最终都以失败告终。而且,在项目结束前客户看不到任何可以工作的软件。

敏捷Agile采用了一种不同的方法,它抛弃了规划整个项目,承诺估计的时间点,简单的遵循计划。与瀑布流程相反,它假设和拥抱不确定性。它的理念是以响应变化代替讨论过去,它认为变更是客户需求的一部分。

敏捷价值观

敏捷由敏捷宣言Agile Manifesto代言,敏捷宣言定义了 12 条原则(LCTT  译注:此处没有采用本文原本的简略句式,而是摘录了来自敏捷软件开发宣言官方的中文译本):

  1. 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。

  2. 欣然面对需求变化,即使在开发后期也一样。

  3. 经常交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。

  4. 业务人员和开发人员必须相互合作,项目中的每一天都不例外。

  5. 激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。

  6. 面对面沟通是传递信息的最佳的也是效率最高的方法。

  7. 可工作的软件是进度的首要度量标准。

  8. 敏捷流程倡导可持续的开发,责任人、开发人员和用户要能够共同维持其步调稳定延续。

  9. 坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。

  10. 以简洁为本,它是极力减少不必要工作量的艺术。

  11. 最好的架构,需求和设计出自自组织团队

  12. 团队定期地反思如何能提高成效,并依此调整自身的举止表现。

敏捷的四个核心价值观是(LCTT 译注:此处译文同样来自敏捷软件开发宣言官方):

  • 个体和互动 高于流程和工具

  • 工作的软件 高于详尽的文档

  • 客户合作 高于合同谈判

  • 响应变化 高于遵循计划

这与瀑布流程死板的计划风格相反。在敏捷流程中,客户是开发团队的一员,而不仅仅是在项目开始时参与项目需求的定义,在项目结束时验收最终的产品。客户帮忙团队完成验收标准,并在整个过程中保持投入。另外,敏捷需要整个组织的变化和持续的改进。开发团队和其他团队一起合作,包括项目管理团队和测试团队。做什么和计划什么时候做由指定的角色领导,并由整个团队同意。

敏捷软件开发

敏捷软件开发需要自适应的规划、演进式的开发和交付。许多软件开发方法、框架和实践遵从敏捷的理念,包括:

  • Scrum

  • 看板Kanban(可视化工作流)

  • 极限编程Xtreme Programming(XP)

  • 精益方法Lean

  • DevOps

  • 特性驱动开发Feature-Driven Development(FDD)

  • 测试驱动开发Test-Driven Development(TDD)

  • 水晶方法Crystal

  • 动态系统开发方法Dynamic Systems Development Method(DSDM)

  • 自适应软件开发Adaptive Software Development(ASD)

所有这些已经被单独用于或一起用于开发和部署软件。最常用的是 Scrum、看板(或 Scrumban)和 DevOps。

Scrum 是一个框架,采用该框架的团队通常由一个 Scrum  教练、产品经理和开发人员组成,该团队以跨职能、自主的工作方式运作,能够加快软件交付速度从而给客户带来巨大的商业价值。其关注点是较小增量的快速迭代。

看板  是一个敏捷框架,有时也叫工作流管理系统,它能帮助团队可视化他们的工作从而最大化效率(因而变得敏捷)。看板通常由数字或物理展示板来呈现。团队的工作在展示板上随着进度而移动,例如从未启动到进行中,一直到测试中、已完成。看板使得每个团队成员可以随时查看到所有工作的状态。

DevOps 价值观

DevOps  是一种文化,是一种思维状态,是一种软件开发的方式或者基础设施的方式,也是一种构建和部署软件和应用的方式。它假设开发和运维之间没有隔阂,他们一起合作,没有矛盾。

DevOps 基于其它两个领域的实践: 精益和敏捷。DevOps  不是一个公司内的岗位或角色;它是一个组织或团队对持续交付、持续部署和持续集成的坚持不懈的追求。Gene Kim(Phoenix 项目和 Unicorn  项目的作者)认为,有三种方式定义 DevOps 的理念:

  • 第一种: 流程原则

  • 第二种: 反馈原则

  • 第三种: 持续学习原则

DevOps 软件开发

DevOps 不会凭空产生;它是一种灵活的实践,它的本质是一种关于软件开发和 IT 或基础设施实施的共享文化和思维方式。

当你想到自动化、云、微服务时,你会想到 DevOps。在一次访谈中,《加速构建和扩张高性能技术组织》的作者 Nicol Forsgren、Jez  Humble 和 Gene Kim 这样解释到:

  • 软件交付能力很重要,它极大地影响到组织的成果,例如利润、市场份额、质量、客户满意度以及组织战略目标的达成。

  • 优秀的团队能达到很高的交付量、稳定性和质量;他们并没有为了获得这些属性而进行取舍。

  • 你可以通过实施精益、敏捷和 DevOps 中的实践来提升能力。

  • 实施这些实践和能力也会影响你的组织文化,并且会进一步对你的软件交付能力和组织能力产生有益的提升。

  • 懂得怎样改进能力需要做很多工作。

DevOps 和敏捷的对比

DevOps 和敏捷有相似性,但是它们不完全相同,一些人认为 DevOps 比敏捷更好。为了避免造成混淆,深入地了解它们是很重要的。

相似之处

  • 毫无疑问,两者都是软件开发技术。

  • 敏捷已经存在了 20 多年,DevOps 是最近才出现的。

  • 两者都追求软件的快速开发,它们的理念都基于怎样在不伤害客户或运维利益的情况下快速开发出软件。

不同之处

两者的差异在于软件开发完成后发生的事情。

  • 在 DevOps 和敏捷中,都有软件开发、测试和部署的阶段。然而,敏捷流程在这三个阶段之后会终止。相反,DevOps  包括后续持续的运维。因此,DevOps 会持续的监控软件运行情况和进行持续的开发。

敏捷中,不同的人负责软件的开发、测试和部署。而 DevOps 工程角色负责所有活动,开发即运维,运维即开发。

DevOps 更关注于削减成本,而敏捷则是精益和减少浪费的代名词,侧重于像敏捷项目会计和最小可行产品的概念。

敏捷专注于并体现了经验主义(适应、透明和检查),而不是预测性措施。

DevOps和敏捷有哪些区别

到此,相信大家对“DevOps和敏捷有哪些区别”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: DevOps和敏捷有哪些区别

本文链接: https://www.lsjlt.com/news/85148.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • DevOps和敏捷有哪些区别
    本篇内容主要讲解“DevOps和敏捷有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“DevOps和敏捷有哪些区别”吧!两者之间的区别在于开发完毕之后发生...
    99+
    2022-10-19
  • html5和html有哪些区别
    这篇“html5和html有哪些区别”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“html5和html有哪些区别”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们...
    99+
    2023-06-06
  • euv和duv区别有哪些
    这篇文章主要介绍euv和duv区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!euv和duv区别:1、duv基本上只能做到25nm,而euv能满足10nm以下的晶圆权制造;2、duv主要利用光的折射原理,而e...
    99+
    2023-06-06
  • php和phpfpm有哪些区别
    php和phpfpm有哪些区别?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。PHP-FPM简介:PHP-FPM(FastCGI Process Manager:...
    99+
    2023-06-15
  • javascript和java区别有哪些
    这篇文章主要介绍javascript和java区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!区别:1、JavaScript由浏览器解释执行,Java程序则是编译执行。2、JavaScript提供丰富的内置对...
    99+
    2023-06-15
  • javascript和java有哪些区别
    这篇文章主要介绍了javascript和java有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。区别:1、Java需要在JDK或JRE的JVM上运行;而JavaScr...
    99+
    2023-06-14
  • xhtml和html5有哪些区别
    今天就跟大家聊聊有关xhtml和html5有哪些区别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。区别:1、XHTML要求正确嵌套,html5不需要;2、XHTML所有元素必须关闭,...
    99+
    2023-06-14
  • vista和win7区别有哪些
    本篇内容介绍了“vista和win7区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! vista...
    99+
    2023-03-07
    vista win7
  • Vuex3和Vuex4有哪些区别
    目录创建 Store 的方式在组件中使用 Store辅助函数的用法响应式的改进Vuex4 支持多例模式参考链接:Vuex 是 Vue.js 的官方状态管理库,用于在 Vue.js 应...
    99+
    2023-05-16
    Vuex3和Vuex4
  • PHP7和PHP5有哪些区别
    本篇内容主要讲解“PHP7和PHP5有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP7和PHP5有哪些区别”吧!安装两个PHP版本http://php.net/ 已经有最新PHP7...
    99+
    2023-06-20
  • Java和PHP有哪些区别
    这篇文章主要介绍“Java和PHP有哪些区别”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java和PHP有哪些区别”文章能帮助大家解决问题。概述Java 是面向对象编程语言,它可用于撰写跨平台应用...
    99+
    2023-06-27
  • HTML和XML有哪些区别
    这篇文章主要介绍HTML和XML有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!概述HTML 是超文本标记语言,它是通往 web 技术世界的钥匙。HTML 使用标记标签来描述网页,它的文档中包含了 ...
    99+
    2023-06-27
  • node和php有哪些区别
    今天小编给大家分享一下node和php有哪些区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。node和php的区别:1、n...
    99+
    2023-07-02
  • powershell和cmd有哪些区别
    这篇“powershell和cmd有哪些区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“powershell和cmd有哪些...
    99+
    2023-07-05
  • vscode和visualstudio区别有哪些
    这篇“vscode和visualstudio区别有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vscode和visua...
    99+
    2023-07-05
  • linux和macos有哪些区别
    这篇文章将为大家详细讲解有关linux和macos有哪些区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。区别:1、linux是开源的免费系统,可以在很多种设备上运行也允许开发者二次开发,而macos是苹...
    99+
    2023-06-26
  • git和tortoisegit有哪些区别
    这篇文章给大家分享的是有关git和tortoisegit有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。区别:1、git是一个开源的分布式版本控制系统,用于处理项目版本管理,而tortoisegit是To...
    99+
    2023-06-26
  • php和Dw有哪些区别
    这篇文章主要介绍了php和Dw有哪些区别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php和Dw有哪些区别文章都会有所收获,下面我们一起来看看吧。php和DW的区别:PHP是一种通用开源脚本语言,是网站编程语...
    99+
    2023-06-29
  • yaf和laravel有哪些区别
    这篇文章主要介绍了yaf和laravel有哪些区别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇yaf和laravel有哪些区别文章都会有所收获,下面我们一起来看看吧。区别:1、yaf是使用c语言开发的,效率更...
    99+
    2023-06-29
  • redis和map有哪些区别
    这篇文章将为大家详细讲解有关redis和map有哪些区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。缓存的区别缓存分为本地缓存和分布式缓存。以java为例,使用自带的m...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作