为何 DevOps 会给开发人员带来压力和倦怠?
企业正在享受 DevOps 实施带来的好处,但这也是有代价的。开发人员需要承担额外的责任,可能会导致他们感到疲惫不堪。因此我们可以采取一些方法来确保 DevOps 工程师的满意度。
DevOps 的支持者通常将这一概念说成是提高效率和生产力的好方法。通过加强开发人员和 IT 运维工程师之间的协作,DevOps 能让每个人都朝着共同的目标更有效地工作。在很多情况下可能都是如此。然而,有人认为 DevOps 也有一个重大缺点:负责保持 DevOps 流程运行的工程师的压力水平增加。
以下是 DevOps 可能使开发人员的工作更具挑战性的原因,以及组织可以采取哪些措施来确保他们从 DevOps 中受益而不会让工程师抓狂。
DevOps 如何为企业带来效益
首先,让我们来了解一下 DevOps 的含义及其对企业的帮助。
DevOps 的理念是开发和 ITOps 团队应该紧密合作,即开发人员和 ITOps 之间的密切合作确保两个团队能够相互支持。
DevOps 的出现是为了解决许多组织在过去几十年中面临的一个挑战,即开发人员在编写代码时往往很少或根本得不到 ITOps 团队的反馈。这导致了沟通孤岛、效率低下,在某些情况下,开发人员和 ITOps 工程师之间关系紧张。通过帮助每个人持续合作,DevOps 可以让企业避免这些陷阱。
因此,从企业的角度来看,DevOps 是一件好事,因为它有助于确保工程师尽可能地提高工作效率。它能最大限度地减少时间和精力的浪费,通常还能提高企业推出新软件的速度,这反过来又能为企业带来市场竞争优势。
DevOps 对工程师意味着什么
对于开发人员本身来说,DevOps 并不总是那么美好。DevOps 迫使工程师做两件事,这会增加他们的工作压力:
承担更广泛的责任:DevOps 要求工程师们同时负责两类流程,而不是只负责软件开发或 IT 运营。
适应节奏更快的发布周期:DevOps 与 CI/CD 等实践齐头并进,DevOps 团队通常需要每周至少发布一次新的应用程序更新,有时甚至需要每天发布一次。这与 "瀑布式 "软件开发战略的时代大相径庭,在 "瀑布式 "软件开发战略下,新版本即使一年发布一到两次,也是如此。
这两个因素都会使工程师的工作变得更加紧张。在采用 DevOps 的企业中,工程师被要求做得更多、更快。
当然,DevOps 为软件交付流程带来的高效率有可能使工程师在满足这些更严格要求的同时,总体压力水平低于没有 DevOps 时的水平。如果没有 DevOps,团队通常会浪费更多时间来修复代码,并在出错时相互指责,这本身就是一种压力。通过减轻这些挑战,一个实施良好的 DevOps 战略可以让工程师们在整体上更轻松一些。
但并不是所有 DevOps 战略都能得到很好的实施,DevOps 本身就存在一种风险,那就是过多的 DevOps 实践只会导致工程师压力更大,更容易倦怠。他们可能会设法更快地发布新版本,但会牺牲工程师的工作满意度作为代价,这种成就是以高昂的代价换来的。
让 DevOps 工程师更轻松
为了避免这些问题,选择采用 DevOps 的企业应确保设定合理的期望值。例如,每周发布一次新版本可能会给工程师带来过大的压力,至少在一开始是这样。设定更适度的目标有助于降低 DevOps 工程师倦怠的风险。
限制 DevOps 工程师的职责也会有所帮助。虽然 DevOps 通常鼓励 DevOps 团队中的每个人共同承担软件交付流程中每个环节的责任,但让某些工程师牵头负责某些流程(如开发、测试和部署)通常更为现实。集体责任感仍然普遍存在,但为不同类型的任务指定牵头人可以让团队成员优先处理某些任务,而不是试图掌控软件交付生命周期的每个阶段,从而减轻每位工程师的整体压力。
在某些情况下,企业首先应该限制采用 DevOps 的范围。并不是每个应用程序都需要持续开发;有些应用程序(如传统软件)的变化频率并不高,不值得被嵌入 CI/CD 流水线。企业在实施 DevOps 时要有战略眼光,这样才能降低将过多 DevOps 实践强加给没有能力或时间处理所有实践的工程师的风险。
总 结
在 DevOps 领域中,需要谨慎执行,因为过度的任务和压力可能会减弱其优势。虽然毫无疑问,DevOps 为企业带来了显著的优势,使开发人员能够实现更高的效率和生产力,但同时也可能给他们的团队带来负担。为了防止 burnout 的风险,请避免过度采用 DevOps 实践。
参考链接:
https://www.itprotoday.com/devops/downside-devops-stress-and-burnout-engineers
为何 DevOps 会给开发人员带来压力和倦怠?的更多相关文章
- C#开发人员应该知道的13件事情
本文讲述了C#开发人员应该了解到的13件事情,希望对C#开发人员有所帮助. 1. 开发过程 开发过程是错误和缺陷开始的地方.使用工具可以帮助你在发布之后,解决掉一些问题. 编码标准 遵照编码标准可以编 ...
- iOS8 对开发人员来说意味着什么?
今天凌晨.Apple WWDC2014 iOS8 正式推出. 或许,对于广大iOS用户来说,iOS8的创新并非特别多. 但对于开发人员来说,影响却将会是无比巨大的! 正如Apple官网上的广告:Hug ...
- .NET开发人员必看:提高ASP.NET Web应用性能的24种方法和技巧
那性能问题到底该如何解决?以下是应用系统发布前,作为 .NET 开发人员需要检查的点. 1.debug=「false」 当创建 ASP.NET Web应用程序,默认设置为「true」.开发过程中,设置 ...
- 开发人员看测试之TDD和BDD
前言: 已经数月没有来园子了,写博客贵在坚持,一旦松懈了,断掉了,就很难再拾起来.但是每每看到自己博客里的博文的浏览量每天都在增加,都在无形当中给了我继续写博客的动力.最近这两天有听到Jbehave这 ...
- 30K iOS程序员的简述:如何快速进阶成为高级开发人员
前言: 本篇文章适用于所有在这个行业已经有了几年时间后想要在职业生涯中取得突破的开发人员,编程人员和程序员(或者你可能刚刚开始,但希望你能看到你的路径) 本文适合那些有着简单愿望的人:你想成为一名高级 ...
- 安晓辉大神的感悟:如果你发现了自己的学习模式,愿意学并且能坚持,我觉得没什么能阻挡你征服软件世界的脚步(对于开发人员来讲,最大的风险是:在职业规划上没有延续性地乱跳槽。时刻要牢记在心的:培养自己的稀缺性) good
从技术支持中途转战软件开发,如今从事编程工作已十多有余,2014年CSDN博文大赛编程语言组冠军.CSDN Qt论坛的版主安晓辉老师从今天开始,坐镇CSDN社区问答栏目的 第十四期,届时会接受广大网友 ...
- .NET团队送给.NET开发人员的云原生学习资源
企业正在迅速采用云的功能来满足用户需求,提高应用程序的可伸缩性和可用性.要完全拥抱云并优化节约成本,就需要在设计应用程序时考虑到云的环境,也就是要用云原生的应用开发方法.这意味着不仅要更改应用程序的构 ...
- .NET平台系列31:.NET团队送给.NET开发人员的云原生学习资源汇总
系列目录 [已更新最新开发文章,点击查看详细] .NET Core 启动于2016年,跟K8S同年诞生,既拥有着悠久的历史积累,又集成了当下最新的设计理念,加上.NET团队持续对容器技术的官方 ...
- .NET CoreCLR开发人员指南(上)
1.为什么每一个CLR开发人员都需要读这篇文章 和所有的其他的大型代码库相比,CLR代码库有很多而且比较成熟的代码调试工具去检测BUG.对于程序员来说,理解这些规则和习惯写法非常的重要. 这篇文章让所 ...
- 防止开发人员获取到敏感数据(SQL Server的数据加密简介)
背景 有时候,我们还真的会碰到这样的需求:防止开发人员获取到敏感数据.也许你觉得很简单,把开发和运营分开不就可以了吗?是的,如果公司有专门的运营团队的话,但对于很多小公司来说,几个人的开发团队就兼顾了 ...
随机推荐
- langchain:Prompt在手,天下我有
目录 简介 好的prompt 什么是prompt template 在langchain中创建prompt template Chat特有的prompt template 总结 简介 prompts是 ...
- 即构✖叮咚课堂:行业第一套AI课堂解决方案是怎么被实现的?
AI走进教育,是传统教育的一次迭代进化 在教育问题上,我们看到两类话题最容易引发公众讨论:教育公平和个性化教育,"互联网+教育"有可能解决第一类话题,"AI教育" ...
- Hexo博客Next主题配置加载优化性能提升
主题源加载优化 把在NexT主题的_config.yml里面的: # Uri of fonts host. E.g. //fonts.googleapis.com (Default) host: 改为 ...
- 理解ASP.NET Core - 限流(Rate Limiting)
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 概述 在微服务化的架构设计中,网关扮演着重要的看门人角色,它所提供的功能之一就是限流.而对于众 ...
- vue+element 判断table表格输入不能为空
点击确定的时候,判断表格其中某行某值不能为空 1.HTML <div class="app-container"> <el-form ref="form ...
- shell 编程变量使用心得
类型 示例 用途 大写的变量名 IP 表示常量,比如,用来记录输入和输出文件名 小写变量名 mac 一般变量 左边下划线 _mac 临时的中间变量,只引用一次的变量 右边下划线 tmpfile_ 临时 ...
- Go的任务调度单元与并发编程
摘要:本文由葡萄城技术团队于博客园原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 本文主要介绍Go语言.进程.线程.协程的出现背景原因以及 ...
- [Pwn之路]根据所给库,获得远程同环境——使用patchelf的正确姿势
原文:https://www.freebuf.com/sectool/366854.html 存自己这里方便看. 0x00 前言 如何修改本地pwn文件和题目所给环境一致,从而进行调试,这是从学习堆开 ...
- 「AntV」x6 框选添加右键菜单
今天在群里有个小伙伴提出了这么个问题:如何在框选完成后给框选的区域添加一个右键菜单的功能,我看到了这个问题后也是有点懵,心里想着怎么还有这个需求,直接快捷键删除不是更好吗,谁知这位小伙伴也是这么写的, ...
- OptiX8入门(一)optixHello
本人初学者,如有错误和更好的表述,请指出 环境:CLion+VS2022+CUDA Toolkit 12.0.1+OptiX8 下载好后打开SDK就可以看到OptiX官方提供的许多例子,CMake配置 ...