如何使用DORA工程指标来改进软件开发团队但长期以来,使用这些数据或指标来衡量软件开发的想法被认为是不可能的。MartinFowler和JoelSpolsky等软件开发专家也认为这是不现实的。显然,衡量软件开发工作是一项具有挑战性的任务,这让一些软件开发人员感到沮丧。现在,随着Git、Jira和其他项目管理工具等工具的兴起,指标开始变得清晰,从而能够以数据驱动的方式更仔细地了解软件开发项目内部的情况。当然,许多组织已经在采取行动。DevOps研究与评估组织(DORA)完成了一项最重要和最著名的成果。该组织在六年的时间里调查了数千名DevOps工程师和领导者,最终得出了四个被认为对软件开发项目的成功至关重要的指标。四个DORA工程指标是:(1)部署频率(2)变更的平均提前期(3)平均恢复时间(MTTR)(4)变更失败率部署频率和变更的平均提前期用于衡量开发开发团队的速度。平均恢复时间(MTTR)和变更失败率用于衡量项目质量和稳定性。所有四个指标都可以通过深入研究开发团队当前使用的工具来得出。这四个DORA工程指标旨在让开发团队将他们的工作与业务目标保持一致,已成为组织中首席技术官(CTO)和工程副总裁深入了解其组织绩效的标准方式。通过密切监控和改进DORA指标以推进开发团队的工作,开发团队可以确保他们正在做正确的事情来推动他们的项目,更重要的是他们的业务如何向前发展。当然,了解指标实际测量的内容及其含义对于它们的有用性是必要的。此外,了解这些指标的当前状态是开发团队改进它们的必要条件。在下面了解这四个关键指标。1.部署频率(1)是什么?部署频率衡量代码部署到生产中的次数。通常在“每日部署”中报告。今天的生产对不同的客户意味着不同的东西。对于SaaS公司,这通常意味着将代码物理地交付到客户实际使用的生产平台。对于其他公司,这可能意味着提供客户可以使用的版本。(2)为什么重要增加部署频率显示了开发团队的效率和对其过程的信心。可以更频繁地部署的团队能够更快地将工作转移到他们的管道中,并更有效地开发和处理他们的产品。(3)如何计算?它记录了组织在一天内进行的部署总数。如上所述,“部署”的定义因组织而异。如果软件开发团队拥有为其活动提供API的持续集成(CI)/持续交付(CD)工具,则可以自动执行此指标。(4)如何改进?如果一个组织想要增加部署频率,它应该:提高自动化测试覆盖率。与持续集成(CI)/持续交付(CD)工具集成。自动化发布验证阶段和发布过程。减少生产中的错误恢复时间。2.变更的平均提前期(1)是什么?更改的平均提前期是从提交代码到将代码发布到生产环境所需的平均时间。一些组织从项目代码的第一次提交开始计算时间,而另一些组织从将代码合并到master分支开始计算时间。许多组织将变更的平均提前期转化为称为周期时间的指标,下文将对此进行讨论。(2)为什么重要较低的平均交付周期意味着组织的开发团队可以有效地编码和部署项目并及时为其产品增加价值。试图降低平均值会激励团队适当地划分工作、彻底审查代码并快速部署。(3)如何计算?每个项目都从开始到结束进行测量,并计算这些时间的平均值。(4)如何改进?可以通过以下方式改进此指标:向部署过程添加自动化。确保您的持续集成(CI)/持续交付(CD)流程尽可能高效。将项目分成更小、更易于管理的块。创建高效的代码审查流程。3.平均恢复时间(MTTR)(1)它是什么?该指标衡量团队从系统故障中恢复所需的平均时间。“失败”可能意味着从生产中的错误到生产系统崩溃的任何事情。(2)为什么重要很明显,停机时间越少越好,团队需要更快地恢复。关注平均恢复时间将鼓励构建更强大的系统并加强对这些系统的监控。快速恢复时间反映了开发团队诊断问题和纠正问题的能力。测量平均恢复时间可以让团队在整个开发过程中更加谨慎并专注于质量。(3)如何计算?通常,通过测量在系统中创建生产错误报告和解决错误报告之间的平均时间来跟踪此指标。或者,它可以通过测量创建报告和将修复程序部署到生产之间的时间来计算。(4)如何改进?通过以下方式可以改善平均恢复时间(MTTR):构建可快速报告故障的持续集成(CI)/持续交付(CD)系统。确保有一个对故障立即采取行动的流程。将故障恢复优先于所有其他任务。减少部署时间。4、变更失败率(1)是什么?更改失败率衡量代码更改导致生产失败的频率。导致回滚、生产故障或生产错误的更改可能会影响此指标。(2)为什么它很重要这个指标很重要,因为所有花在处理故障上的时间都不是花在为客户提供新功能和价值上的时间。显然,减少软件中的问题是可取的。(3)如何计算?通常,此指标的计算方法是计算部署导致故障的次数,然后除以部署总数以获得平均值。平均值越低越好。(4)如何改进?当组织执行以下操作时,更改失败率会得到改善:确保所有新代码都包含在自动单元测试中。作为持续集成过程的一部分改进自动化测试。进行彻底和完整的代码审查,以帮助防止问题被引入生产。跟踪DORA指标的好处(1)决策持续跟踪DORA指标将使开发团队能够更好地决定在何处以及如何改进开发过程。这样做将揭示瓶颈,并允许开发团队专注于流程可能停滞的地方、识别趋势并验证关于重点关注的决策的质量。跟踪DORA指标可以帮助开发团队和业务主管专注于真正可以推动价值的事情。它们使开发团队能够根据指标做出决策,而不仅仅是直觉。(2)交付价值DORA指标可以衡量开发团队交付的价值。如果DORA指标是有利的,组织的开发团队将向其客户交付价值并保持必要的质量,以免失去重点。这是组织的主要目标——为客户提供价值。(3)良性循环当任何事物被测量时,它很可能被操纵或改变——也就是说,人们改变行为以优化被测量的事物。很多时候这会对开发团队的工作产生负面影响。组织期望开发团队努力优化这些DORA指标,这可以提高效率并减少浪费,将产生良好的结果。通常,追求指标会对开发团队产生负面影响,因为这些指标是为完全相反的目的而精心设计的。LinearB帮助组织衡量和改进DORA工程指标DORA指标很重要,LinearB使跟踪它们变得容易,为组织提供了易于显示和跟踪的开箱即用的DORA指标。通过为开发组织的执行官提供他们的DORA指标的更高级别的视图,这样的仪表板可能会很有用。通过一个简单的视图,管理人员可以一目了然地了解开发团队的工作情况以及可能需要进行哪些中途修正。除了DORA指标外,LinearB还可以跟踪其他有助于提高组织绩效的指标。可以监控和改进拉取请求大小、拉取请求审查深度和拉取请求审查时间等指标,以减少平均提前期和更改部署频率。LinearB超越DORA指标LinearB超越DORA的更改平均提前期指标以提供周期时间指标。周期时间是一个强大的指标,用于衡量给定代码单元从分支创建到生产部署所需的时间。它实际上是衡量给定任务或子任务交付给最终用户的速度。当然,交付功能是每个开发组织的目标之一。周期时间分为四个部分:(1)编码时间——通常是第一次提交给定分支和为该分支创建拉取请求之间的时间。(2)拉取请求时间——这是创建拉取请求和开始审查该拉取请求之间的时间。(3)Pullrequestreviewtime——从pullrequestreview开始到代码合并的时间。(4)部署时间——部署时间是从代码合并到代码实际部署到生产之间的时间跨度。缩短周期时间有很多好处:密切跟踪编码时间可以鼓励开发团队将开发工作分解为更小、更易于管理的块。如果给定的分支或项目很大并且需要很长时间,那么周期时间就会增加。相反,它鼓励较小的工作量。推动团队及时处理拉取请求。它有助于防止缓慢的拉取请求和太大而无法有效审查的拉取请求。跟踪部署时间的团队被激励专注于改进和简化构建和部署过程。周期时间的增加可能是项目遇到困难的预警系统。如果您必须为您的团队选择一个指标来衡量,那就是周期时间。WorkerB改进了DORA指标空闲时间是在软件开发期间等待事情发生的时间——闲置和未审查的拉取请求就是一个很好的例子。它是影响DORA中部署频率和平均变更提前期这两个重要指标的主要因素。WorkerB是LinearB提供的一项功能,可以减少对空闲时间的积极影响,从而提高组织的DORA指标。通过通知团队成员有关存储库事件,它确保团队立即了解周期时间的组成部分(例如拉取请求提取时间和拉取请求审查时间),并允许他们更及时地做出反应。根据一些LinearB用户的反馈,在使用WorkerB的前四个月内,周期时间减少了50%以上。衡量成功DORA指标基于对软件开发团队多年的研究。通过DORA指标衡量成功将通过组织的开发管道提供更多价值。LinearB可以帮助组织的开发团队始终如一地跟踪它们,从而对其软件开发流程和业务产生深远而持久的影响。原标题:HowToUseDORAEngineeringMetricsToImproveYourDevTeam,作者:NickHodges
