加速: 2024年DevOps现状报告 译者:刘征 本⽂档⾮Google官⽅翻译,内容解释权归Google所有。 【译者注】DORA是同类研究中历时最⻓、学术严谨的研究项⽬。DORA的研究团队运⽤⾏为科学⽅法,揭示通过软件交付性能将⼯作⽅式与组织⽬标和个⼈福祉联系的预测路径。通过下⾯的交互式图表探索我们的发现:点击任何项⽬了解其重要性、如何测量以及如何改进。 DORA历经10年的研究成果为下图所示的DevOps能⼒核⼼模型。 ⽬录 内容提要3 关键发现3 应⽤DORA的⻅解5 软件交付绩效8 四⼤关键指标8 软件交付绩效的演变9 绩效⽔平11 使⽤软件交付绩效指标13 ⼈⼯智能:应⽤与看法14 主要发现15 ⼈⼯智能的应⽤感受18 对AI未来的展望20 AI的深层次影响23 AI时代与DORA23 衡量AI的使⽤情况25 AI对个⼈的影响:显著益处与潜在利弊26 那么,什么是有价值的⼯作?28 AI对开发⼯作流的积极影响30 AI对交付绩效的负⾯影响32 ⾼绩效团队和组织在使⽤AI,但产品收益不明显34 那么,接下来该怎么做?36 未完待续38 关于译者39 推荐阅读40 内容提要 DORA过去⼗多年来⼀直在研究⾼绩效技术团队和组织的能⼒、实践和评估标准。这是我们的第⼗份DORA报告。全球各⾏各业、不同规模的公司中,超过39,000名专业⼈⼠参与了我们的调研。感谢⼤家与我们同⾏,并成为研究的⼀部分! DORA通过每年⼀次的全球调查收集技术及相关岗位的专业⼈⼠的数据。调查问题涉及⼯作 ⽅式和整个组织及员⼯的成就。 DORA采⽤严格的统计分析⽅法,研究这些因素之间的关系,以及它们如何分别推动团队和组织的成功。 今年,我们还加⼊了对专业⼈⼠的深⼊访谈,以获取更深层次的⻅解、验证数据,并为研究结果提供更多背景信息。详情请参阅⽅法论章节。 我们在今天调查中的主要成果和发现包括: 减少倦怠 倦怠是⼀种由于⻓期或过度压⼒导致的情绪、身体和⼼理上的疲惫状态,通常表现为冷漠、疏离感以及缺乏成就感。 流动性-Flow 衡量个⼈在进⾏开发任务时的专注⽔平。 ⼯作满意度 衡量个⼈对⼯作的整体满意程度。 组织绩效 衡量组织在盈利、市场份额、客户数量、运营效率、客户满意度、产品和服务质量,以及达成⽬标能⼒等⽅⾯的表现。 产品性能 评估产品的易⽤性、功能性、价值、性能(如延迟)、安全性等多个⽅⾯。 ⽣产⼒ 衡量个⼈在⼯作中感受到的效率和效果,包括创造价值和完成任务的程度。 团队绩效 评估团队在合作、创新、效率、互相⽀持和适应变化⽅⾯的表现。 关键发现 AI正在产⽣⼴泛影响 AI正在软件开发领域带来重⼤变化。早期的应⽤已经展现出⼀些积极的成果,但也伴随着谨慎的态度。 AI采⽤的优势: ◆流动性 ◆⽣产⼒ ◆⼯作满意度 ◆代码质量 ◆内部⽂档编写 ◆代码审查流程 ◆团队绩效 ◆组织绩效 【译者注:以上是DORA核⼼能⼒模型中的各种能⼒。】 然⽽,AI的引⼊也带来了⼀些负⾯影响。我们发现软件交付的绩效有所下降,且其对产品性能的具体影响尚不明确。此外,随着AI应⽤的增加,员⼯报告他们花在⾼价值⼯作上的时间有所减少。这是⼀个有趣的现象,本报告后续将深⼊探讨。 团队应继续探索AI依赖性增加对⼯作的影响,并在实践中不断学习。 随着对AI信任度的提升,AI采⽤率也在上升 ⽣成式AI(genAI)的使⽤让开发⼈员感到⼯作效率更⾼,⽽那些信任genAI的开发⼈员则更频繁地使⽤它。不过,这⽅⾯仍有改进空间:有39.2%的受访者表示他们对AI的信任度较低甚⾄完全没有信任。 ⽤户导向提升绩效 重视⽤户体验的组织通常能够开发出更⾼质量的产品,使开发⼈员的⼯作效率更⾼,满意度更⾼,并且更不容易产⽣倦怠感。 变⾰型领导⼒的重要性 变⾰型领导⼒不仅能提升员⼯的⽣产⼒、⼯作满意度、团队合作效果、产品表现和组织绩效,还能有效减少员⼯的倦怠现象。 稳定的优先级提升⽣产⼒和员⼯幸福感 组织优先级不稳定会显著影响⽣产⼒,并导致员⼯倦怠的显著增加,即使组织内部具备强有 ⼒的领导、完善的内部⽂档以及⽤户导向的开发⽅法,仍然难以避免。 平台⼯程有助于提升⽣产⼒ 平台⼯程在提升⽣产⼒和组织绩效⽅⾯有显著的积极作⽤,但在软件交付绩效上仍需注意潜在的警示信号。 云计算带来基础设施的灵活性: 云计算提供了更灵活的基础设施,这有助于提升组织的整体绩效。但如果在迁移到云端时未能充分利⽤云计算的灵活性,可能会⽐继续使⽤数据中⼼带来更⼤的问题。因此,成功的迁移需要对⽅法、流程和技术进⾏全⾯转型。 ⾼⽔平的软件交付绩效是可以实现的 表现最好的团队在四个软件交付指标(变更前置时间、部署频率、变更失败率以及失败部署恢复时间)上都表现优异,⽽表现较差的团队在这四个指标上都表现不佳。我们在各个绩效群体中都发现了来⾃不同⾏业的团队。 应⽤DORA的⻅解 利⽤DORA改进团队和组织,需要评估当前的状况,找出需要投⼊和改进的领域,并建⽴反馈机制来监测进展。持续改进的团队往往能够获得最⼤的收益。建议组织投⼊资源,培养出能够⻓期重复改进的能⼒。 我们的研究结果可以为你的实验和假设提供参考。进⾏测试并评估变更效果,找到最适合团队和组织的改进⽅式。这样做有助于验证我们的发现。请注意,你的结果可能会有所不同,欢迎分享你的进展,以便⼤家共同学习。 我们建议以实验为基础的改进⽅法: 1.确定你想改进的领域或⽬标。 2.评估当前的基准状态。 3.制定假设,找出可能帮助你达成⽬标的⽅法。 4.制定并执⾏改进计划。 5.开始⾏动。 6.评估取得的进展。 7.重复这⼀过程。 改进需要通过迭代和逐步推进来实现。 软件交付绩效 技术驱动型团队需要有效的绩效评估⽅法,以了解当前状态、优先改进事项,并验证改进成果。DORA提出的四⼤关键指标,已被验证为衡量软件交付过程成效的有效⼯具。 四⼤关键指标 DORA的四⼤关键指标⽤于评估软件变更的效率和稳定性,适⽤于所有类型的变更,包括配置和代码的变更。 ✓变更前置时间:从代码提交或变更开始到成功部署到⽣产环境的时间。 ✓部署频率:应⽤变更被部署到⽣产环境的频率。 ✓变更失败率:⽣产环境中导致失败的部署百分⽐,通常需要紧急修复或回滚。 ✓失败部署恢复时间:从失败的部署中恢复到正常状态所需的时间。 我们观察到,这些指标通常同步提升或下降。表现最佳的团队在所有四项指标上均表现优异,⽽表现较差的团队在这四项指标上则表现不佳。 软件交付绩效的演变 在分析四⼤关键指标时,变更失败率⼀直是个例外。尽管它与其他三个指标⾼度相关,但统计测试⽅法限制了将四个指标合并为⼀个因素。我们对受访者的回答⽅式进⾏调整后,增强了关联性,但我们认为可能还有其他因素在发挥作⽤。 我们⼀直认为,变更失败率可以作为团队返⼯量的⼀个指标。当交付失败时,团队通常需要通过引⼊新的变更来修复问题。 为了验证这⼀假设,今年我们新增了⼀个问题,询问应⽤程序的返⼯率:“在过去的六个⽉内,您负责的主要应⽤或服务中,有多少次部署是为了解决⽤户可⻅的错误⽽⾮计划中的操作?” 数据分析证实了我们的假设:返⼯率和变更失败率密切相关。这两个指标共同构成了软件交付稳定性的可靠度量。 在软件性能⽔平分析中,我们也发现了这⼀点。今年有超过⼀半的团队在软件吞吐量和稳定性⽅⾯表现出明显差异。基于这些差异,我们将软件交付绩效分为两个因素: 概念软件交付绩效因素 软件交付吞吐量 软件交付稳定性 使⽤的指标 ✓变更前置时间✓部署频率✓失败部署恢复时间 ✓变更失败率✓返⼯率 本报告的分析中,我们使⽤了软件交付绩效及其两个因素的概念。所有五项指标均⽤于描述软件交付绩效。 在描述软件交付吞吐量时,我们使⽤变更前置时间、部署频率和失败部署恢复时间,这个因素衡量变更速度,包括正常变更和故障修复的速度。 在描述软件交付稳定性时,我们使⽤变更失败率和返⼯率,衡量部署是否会⽆意间导致更多的返⼯需求。 绩效⽔平 每年,我们都会询问受访者关于其主要应⽤或服务的软件交付绩效情况。我们通过集群分析 ⽅法,识别出回答中的相似群体,找出不同的绩效⽔平。 我们使⽤原始的四项软件交付指标进⾏集群分析,以保持与往年⼀致性。 在今年的分析中,我们发现了四个不同的绩效集群。我们并不预先设定这些⽔平,⽽是让它们从调查数据中⾃然浮现。这使我们能够获得所有受访者的软件交付绩效的整体情况。 今年的数据中呈现出四个独特的集群,具体如下所示。 绩效⽔平 变更前置时间 部署频率 变更失败率 失败部署恢复时间 受访者⽐例* 精英 ⼩于1天 按需(每天多次部署) 5% ⼩于1⼩时 19%(18-20%) ⾼ 1到7天 每天⾄每周⼀次 20% ⼩于1天 22%(21-23%) 中 1到4周 每周⾄每⽉⼀次 10% ⼩于1天 35%(33-36%) 低 1到6个⽉ 每⽉⾄每半年⼀次 40% 1到4周 25%(23-26%) 89%置信区间 追求吞吐量还是稳定性? 在所有四个集群中,吞吐量和稳定性之间都存在关联。即便是在中等绩效集群(橙⾊)中,吞吐量较低但稳定性⾼于⾼绩效集群(⻩⾊),这种关联依然存在。这表明,除了吞吐量和稳定性之外,还有其他因素影响集群的整体表现。例如,中等绩效集群可能会受益于更频繁的变更发布。 更频繁的部署和更少的失败,哪个更优? 这个问题并没有通⽤的答案,取决于具体的应⽤或服务、团队的⽬标以及⽤户的期望。 我们将速度更快的团队称为“⾼绩效团队”,⽽将速度较慢但更稳定的团队称为“中等绩效团队”。这⼀命名⽅式突显了⼀个潜在的问题:团队应该更关注持续改进,⽽⾮仅仅追求某⼀特定的绩效⽔平。最佳团队是那些实现精英改进的团队,⽽不⼀定是达到精英绩效的团队。 图1:软件交付绩效⽔平 与低绩效团队相⽐,精英团队实现了显著成果。 如何使⽤绩效集群 绩效集群提供了本年度调查受访者的软件交付绩效的基准数据。其⽬的是激励所有团队实现精英⽔平的绩效。相⽐追求特定绩效⽔平,我们认为团队应更加专注于整体的持续改进。实现精英改进的团队才是最佳团队,⽽不⼀定是达到精英绩效的团队。 ⾏业对绩效的影响不显著 我们的研究很少发现⾏业能够预测软件交付绩效;各个⾏业中均存在⾼绩效团队。这并不意味着没有⾏业特有的挑战,但在软件交付绩效⽅⾯,没有任何⾏业具有独特的优势或劣势。 使⽤软件交付绩效指标 每个应⽤或服务的环境都是独特的,因此很难预测任何⼀个变更对系统整体绩效的影响。此外,在组织中⼏乎不可能⼀次只改变⼀个⽅⾯。那么,我们如何有效地利⽤软件交付绩效指标来指导改进? ⾸先,明确您希望衡量和改进的主要应⽤或服务。我们建议召集负责该应⽤的跨职能团队,评估并达成共识,确定当前的交付绩效。DORA快速检查(<https://dora.dev/quickcheck>)可帮助引导讨论,设定基准。团队需要明确是什么在阻碍更好的绩效。 找到这些障碍的⼀个有效⽅法是和团队⼀起完成价值流映射。接下来,确定并同意⼀个改进计划。此计划可聚焦于DORA研究的能⼒之⼀,或针对您应⽤或组织的特殊需求。 制定好计划后,是时候付诸⾏动了!为改进⼯作分配资源,并关注在过程中学到的经验。 在变更实施并产⽣效果后,重新评估四⼤关键指标。变更后这些指标有何变化?学到了哪些经验? 不断重复这⼀过程,将帮助团队建⽴起持续改进的习惯。 请记住:改进需要时间。采⽤迭代⽅法,营造学习、快速流动和即时反馈的环境⾄关重要。 ⼈⼯智能:应⽤与看法 要点 各⾏业的绝⼤多数组织正在调整优先级,以更深层次地将AI集成到其应⽤和服务中。⼤多数开发⼈员也依赖AI辅助完成核⼼任务,并报告⽣产⼒因此得以提升。开发⼈员普遍认为,使 ⽤AI是在当今市场中保持竞争⼒的关键,这⼀观念推动了AI在组织和个⼈层⾯的⼴泛应 ⽤。 简介 随着今年⼤量报道呈现出AI对开发⼯作产⽣的深远影响,⽆论是积极的、消极的,还