掘金 阅读 ( ) • 2024-07-02 14:44

一、引言

在当今互联网技术日新月异和企业降本增效的时代,研发效能已经成为衡量一个团队或组织竞争力的关键指标。提升研发效能不仅能加速产品上市时间,还能提高产品质量,增强客户满意度,持续提升企业竞争力。本文旨在介绍得物如何从原则、方法到成功实践,系统性提升研发效能的过程和经验。期待与行业专家深入探讨和交流,共同推动研发效能实践的新突破。

二、背景

得物业务近几年高速发展,技术团队规模增长超过20倍,形成了千人以上的敏捷迭代开发模式。每双周的需求吞吐量达到上千个,应用构建超数万次,应用发布也超过了数千次。这对研发效能基础设施和技术实践提出了非常高的要求。在协同方面,我们通过技术效率调研、流程再造、系统升级等方法,提高了研发生产过程中跨域、跨团队、多职能协同效率;在工程方面,通过自研一站式BizDevOps研发效能平台,提高了构建效率、流水线效率和发布效率等。在不断提升业务需求价值流动效率、反馈效率和持续学习改进效率过程中,形成了得物特色研发效能解决方案和效能实践。

三、得物研发效能提升理念和原则

研发效能的定义和重要性

研发效能指的是在软件开发过程中,团队利用资源(包括时间、人力、技术等)的效率和效果。高效能的研发团队能够以更低的成本、更快的速度和更高的质量完成项目开发。提升研发效能能够帮助组织快速响应市场变化,持续提高竞争优势。

01.jpg

研发效率和研发效能有什么不同?

  • 效率(Efficiency):指单位时间内的产出量,相当于生产力(Productivity)。公式为:效率 = 产出 / 所用时间。
  • 效能(Effectiveness):指对业务有实际价值的效果和成效,强调有效性和效益。公式为:效能 = 有价值的产出 / 所用时间。
  • 研发效能:在软件研发中,研发效能= 对客户有价值的需求 * 效率 。在需求有效的情况下,效率越高,效能也越高。鉴于商业环境变化较快,研发团队还需具备适应环境变化的能力,以保持稳定的、有价值的交付,实现可持续发展。因此,研发效能可以表示为:研发效能 = 有效性 * 效率 * 可持续性
  • 研发效能的一句话定义:“持续地、安全地、高质量、高效率地交付有效价值”。

很明显,提升研发效能更加重要,但是比提升研发效率要难很多。 从经验来看,在团队早期阶段,把研发效率作为首要目标比较合适,毕竟在工具、系统、度量没有非常完备的阶段, 很难清晰地定义出研发效能。 当团队和基建成熟度到了一定阶段, 研发效能就应该成为重要的指标,这时,团队开始注重需求的价值, 而不是一味追求需求吞吐率。我们逐步对需求价值复盘达标率,有效需求交付率提出明确要求,进而提升整体研发效能。

研发效能提升理念和原则

研发效能提升的理念基于系统思考,旨在全局范围内寻找最优解。我们从全局和整个生产线的角度出发,清晰定义从业务到技术实现的端到端系统链路,并分析各个环节的流动效率,发现问题、分析问题和解决问题。

研发效能提升的原则包括精益理论、敏捷原则和持续改进。首先,我们倡导全员参与,在全过程寻找约束项,减少一切形式的浪费。其次,应用敏捷原则,通过技术效率问卷和访谈,从公认的痛点问题入手,快速响应快速迭代解决问题。最后,通过定期调研和数据度量分析,持续解决问题,形成提升效能的增强反馈循环。通过这些方法,我们能够系统化地优化研发过程,提高整体效能。

原则:

  • 精益理论:全员参与,在全过程寻找约束项,减少一切形式的浪费。
  • 敏捷原则:强调灵活性和快速反应能力,重视人本和交互。
  • 持续改进:数据驱动,不断优化过程,形成改进增强反馈循环。

02.jpg

四、得物研发效能提升方法和实践

软件工程的发展经历了几个重要的阶段,每个阶段都旨在应对特定的挑战和需求。总结起来,这些阶段分别为了快速响应市场变化、需求变化和代码变化,以及聚焦业务价值。

首先,精益理论方法强调破除各种约束,减少一切浪费,以提高整体效率和价值交付。这一理念帮助团队专注于高价值活动,最大限度地利用资源。

接下来,敏捷开发模式,主要目的是为了快速响应不断变化的需求。通过短周期迭代和持续反馈,敏捷开发能够更灵活地适应需求的变化,提高产品的适应性和用户满意度。

随后,DevOps的提出则是为了应对代码变化带来的挑战。通过打通开发(Dev)和运维(Ops)之间的壁垒,DevOps实现了更加快速和高效的代码交付和部署,使得从代码编写到上线的整个过程更加顺畅和可靠。

现在,BizDevOps的概念进一步扩展了这一思路,旨在提升端到端的整体研发效能。BizDevOps不仅关注开发和运维的协同,还将业务(Biz)需求紧密融合到整个研发流程中,从而实现业务与技术的无缝对接。通过这种方式,BizDevOps 确保了从需求提出到最终交付的每一个环节都能够高效运转,全面提升企业的市场响应速度和价值交付能力。

03.jpg

得物在提升研发效能的方法和实践中,完整经历了敏捷迭代、质量工程、DevOps以及BizDevOps四个阶段的演进。结合得物技术精细化管理方法,我们逐渐形成了具有得物特色的研发效能解决方案和实践。在持续探索和应用这一系列实践的过程中,我们有效保障了在技术团队规模不断增长的同时,也实现了得物整体研发效能的稳步提升。

敏捷开发实践

得物是新一代品质生活方式平台,采用社区+电商的业务模式,具有链路复杂度高和玩法新颖等特点。近几年业务快速增长,得物技术团队需要支撑全业务域十几条业务线作业,同时保障横跨四地的研发中心千人以上规模团队的有效协同。这些因素带来了巨大的协作和管理挑战,特别是在保持业务敏捷性和快速响应市场变化方面。

敏捷开发实践 为了有效应对这些挑战,得物采取了一套特色的敏捷开发模式,能够支撑全业务域十几条产线的千人团队进行双周迭代作业。

04.jpg

得物敏捷开发实践, 包含以下主要特点:

  • 标准双周迭代:通过标准的双周迭代周期,确保全业务域在规范的时间窗口内进行跨域协同和标准化排期生产,从而持续推进项目进度。
  • 单双周灵活发布窗口:在固定迭代周期的基础上,引入单双周的灵活发布窗口,能够实现单双三四周灵活发布,提高需求上线效率。
  • 得物特色需求管理系统:自研需求管理系统和协同面板,实现了需求的统一管理、任务分配和跟踪,极大地提高了团队的工作效率。

05.jpg

敏捷开发实践收益 通过实施这套敏捷开发模式,我们能够快速响应业务需求,在每次迭代中能够上线超过1000+需求,并且MRD的吞吐率达到75%以上;PRD的吞吐率更是达到80%以上,对于优先级最高的P0和P1需求,完成率达到了100%。累计下来,通过这套敏捷开发模式我们已经完成了1.2w+个项目和11w+个需求的交付。

06.jpg

质量工程实践

在实施敏捷开发双周迭代模式的过程中,我们面对的挑战不仅仅是需求量的庞大和迭代周期的压缩,还有跨域需求多和电商链路上下游依赖长等复杂问题。在这样的背景下,我们传统的质量保障方法,如功能测试和集成测试,已难以应对快速迭代中需求上线的质量。

为了克服这些挑战,我们实施了一系列质量管理方法和实践,核心在于质量内建的共识和质量工程实践相结合。我们认为高质量的产品并非在测试阶段才能实现,而应当在代码开发阶段就内建其中。在这样的共识下,全体成员都会参与质量内建和质量工程工作,实现了从项目起始到终结的全过程质量保障活动和实践。

质量工程体系 得物的质量工程体系涵盖了质量策划、质量保障活动和质量评估与改进三大核心过程,能够为双周敏捷开发提供全面质量管理保障,保持高水位的需求交付质量和线上服务稳定性。

07.jpg

「质量策划」

  • 质量目标:设定明确的质量目标,确保项目各阶段都有清晰的质量标准。
  • 质量指标:制定可量化的质量指标集,用于评估和监控项目的质量表现。
  • 质量内建:在开发的每个环节中嵌入质量保障措施,确保质量从源头得到保证。

「质量保障活动」

  • 迭代过程质量管理:通过有效的迭代质量管理,确保每个开发周期的质量和进度。通过同比环比等方式,持续优化和改进。
  • 迭代质量评审:迭代中通过质量大盘,进行迭代质量评审,达到准出标准后,方能上线发布。
  • 质量月:定期组织“质量月”活动,协同产研团队,集中力量解决关键质量问题,提升整体质量意识。
  • 质量专项
    • 代码审查:通过严格的代码审查,确保代码质量和规范。
    • 代码Review:系统化的代码Review,提升代码的可维护性和稳定性。
    • 单元测试(UT):实施单元测试,确保每个模块功能正确。
    • 自动化测试:引入自动化测试,提高测试效率和覆盖率。
    • 精准测试:实施精准测试策略,提升测试有效性。
    • 流量回放:利用流量回放技术,模拟真实用户行为,验证系统功能。
    • 线上巡检:定期进行线上基础功能巡检,及时发现和解决服务运行中的潜在问题。
    • 线下监控:通过线下监控手段,持续跟踪系统稳定性,提升NPE等问题拦截率。
    • 全链路压测: 通过全链路压测,保障大促和重要活动的容量支撑, 保障业务稳定性。
    • APP专项: 通过APP性能、APP兼容性、APP体验测试, 保障APP用户体验达到Top水平。

「质量评估与改进」

  • 迭代质量复盘:在每个迭代结束后进行复盘,总结经验,制定改进措施。
  • 质量月复盘:在“质量月”结束后进行复盘,评估项目和实践效果,调整后续质量策略。
  • 研发质量季度报告:每季度发布研发质量报告,全面回顾和评估质量表现,制定长期改进计划。

质量保障活动-迭代过程质量管理 迭代过程质量管理,是值得展开介绍的质量活动之一。在迭代中,质量活动会完整覆盖到需求阶段、研发阶段、测试阶段、发布阶段和运营阶段。 通过全生产链条实施质量专项覆盖,包括自动化、流量回放、精准测试、线上巡检和线下监控等,提升缺陷拦截率和线上稳定性。

08.jpg

质量保障活动-迭代过程质量管理-质量大盘 质量大盘是迭代过程中质量管理的重要度量和可视化工具,能够清晰展示双周迭代中的需求总数、缺陷总数、开发与测试人日比,以及一系列内建质量协同指标,如冒烟测试一次通过率、准时提测率、缺陷日清率和缺陷引入率等。每个迭代都能提供实时反馈,帮助团队更好地进行质量改进。

09.jpg

质量工程实践成果 通过这些系统化的质量策划、保障活动和持续的评估与改进措施,能够确保项目在每迭代需求上线质量都能达到准出标准,并且能够持续提升产品的整体质量和用户满意度。 在观测质量指标方面, 能够看到代码新增技术债归零,缺陷引入率从过去3到现在0.7缺陷/需求以下,线上故障数持续下降,以及线上SLA达到4个9以上的明确结果。

10.jpg

DevOps实践

为了进一步提升研发效能,得物在敏捷开发的基础上引入了DevOps实践。通过定义研发效能的三个主要阶段:规划与协同阶段、研发与验收阶段、发布与运营阶段,并采取分阶段治理的方法,提高了整体效率。

在规划与协同阶段,我们升级了需求管理系统,融合了协同面板,从而提高了需求流转效率和上下游任务流效率。在研发与验收阶段,建立了代码管理系统、流水线系统和测试管理系统,有效提升了编码和测试验收的效率。在发布与运营阶段,通过发布系统的升级、实现蓝绿发布模式等,大幅提升了发布的稳定性和效率。

通过一系列系统升级和流程再造实践,我们显著提高了需求流动、代码流动和应用流动的效率,从而提升了价值流动效率,实现了应用快速部署和需求快速交付能力。

11.jpg

持续集成流水线 通过引入持续集成流水线,将原有的手动构建、部署和测试流程实现了自动化,并大幅提高了整体交付效率。以下是我们常用的几种流水线类型:

  • Push流水线:在代码提交后处理代码审查、单元测试和构建测试,反馈效率在分钟级。
  • MR流水线:在代码合并请求时进行验证,确保合并前的代码质量,反馈效率在分钟级。
  • 提测流水线:在正式测试前自动运行基础功能测试,提升冒烟测试通过率和交付完整性,反馈效率在分钟级。
  • 集成流水线:整合多模块、多团队的代码,确保跨域跨团队实现功能的完整性,反馈效率在小时级。
  • 发布流水线:代码经过测试环境到生产环境的发布,确保发布过程高效且无错误,反馈效率在小时级。

12.jpg

持续发布提效 在得物的双周版本发布中,由于应用数量超过100个且跨域需求和场景较多,应用之间的依赖性较强,导致发布梯队和批次较多,发布时间和验证时间较长。为了解决这一问题,我们采用了蓝绿发布模式,有效解除版本间的依赖,提升了发布效率。

  • 蓝绿发布:从传统的滚动发布到更加灵活的蓝绿发布,解决大版本中上百个应用梯队发布的效率问题,确保每个发布阶段的稳定性和可靠性。
  • 发布场景:支持多种发布模式和场景,包括前端发布、算法发布以及同城多活发布,确保不同业务需求的高效发布。

13.jpg

DevOps实践成果 通过DevOps实践,提高自动化的覆盖范围, 增加流水线在各个阶段和协同场景中的应用, 我们大幅提高了构建效率、部署效率和班车效率。

流水线应用成果 通过Push流水线的应用, 前置反馈代码类问题,实现需求染色环境流水线自动化部署提效;通过MR流水线应用,能够作为代码门禁,在代码合入阶段有效拦截高风险代码问题(例如:编译问题、代码扫描、Jar包检查、DTO实体规范扫描、安全扫描等); 通过提测流水线的应用能够作为研发需求代码测试准入卡口,实现自动化测试左移,保障提测质量; 通过集成流水线能够提升质量保障专项测试和集成测试效率;通过daily流水线, 能够日常巡检当日变更服务的代码质量情况和自动化Case稳定性。 这一系列流水线的应用,有效提高了需求提出到上线的效率。

14.jpg

MR流水线成果 MR流水线作为代码门禁,在代码合入阶段有效拦截高风险代码问题。目前迭代MR流水线各项指标保持在高水位,包括流水线成功率92%+、构建成功率98%+、代码扫描通过率99.9%、Jar包通过率88%+、Semgrep扫描通过率88%+、DTO实体规范扫描通过率99%+。

15.jpg

Daily流水线成果 Daily流水线全域成功率99.6%、构建成功率99.9%、部署成功率99.8%、代码扫描通过率92%、基准集成自动化成功率99.7%、迭代集成自动化成功率99.7%。

16.jpg

班车发布提效成果 通过蓝绿发布和发布场景优化等措施,双周大版本班车的发布时间从过去10小时以上,现已优化至2小时内。显著提高了发布效率,大幅节省了研发和测试在发布过程中的投入。

17.jpg

全域发布提效成果 全域构建成功率平均为97.47%,部署成功率平均为98.71%,回滚率平均为0.63%,热修平均为1.76%,整体法发布效率和稳定性保持在比较高的水位。

18.jpg

BizDevOps实践

为了持续降本增效和更加聚焦业务价值,持续提升研发效能。在DevOps的实践基础上,得物继续引入BizDevOps 实践,通过加强业产研运的协同,提高业务目标、产品需求和技术资源投入的关联度,提高业务有效价值的交付效率,帮助业务更好的增长。

得物一站式BizDevOps平台 为了提高Biz阶段业务目标的感知和管理,得物研发效能平台系统再次升级,通过OKR系统与需求管理系统打通,需求管理系统与时间手账关联等系统功能, 打通全链路价值流、需求流、代码流、应用流和时间流,实现一站式BizDevOps解决方案能力。

19.jpg

业务目标与需求关联 我们采取了以下几个关键的实践方法,包括OKR系统与需求管理系统打通,以及在需求评审和复盘环节增加需求价值判断和高优需求资源占比等分析改进:

  • OKR与需求关联:通过将业务OKR与需求关联起来,我们确保每一项需求的提出和实施都直接对应业务重点目标,从而保障了资源的有效分配和利用,确保团队的工作重心、资源投入与业务目标保持一致。
  • 需求价值判断: 在需求排期和评审环节, 针对低价需求打回,拒绝低价值需求流入生产阶段。
  • 需求价值复盘:在需求上线后,我们不仅评估项目的交付质量和进度,更重要的是对其创造的价值进行复盘,通过量化分析需求给业务带来的价值,不断提高资源投入的ROI。

20.jpg

BizDevOps实践成果

  • 重点需求资源投入提升:通过OKR关联需求,能够看到技术资源投入在重点需求的占比,在试点域达到80%以上。
  • 需求价值达成率提升: 全域重点需求价值达成率保持较高水位,需要复盘重点需求价值达成率达到90%以上。

21.jpg

  • 年度人效提持续提升:通过BizDevOps实践,优化资源配置与业务重心一致性,聚焦业务价值,持续提高研发效能,实现了技术团队人效的持续提升。

22.jpg

五、得物研发效能平台和系统

从敏捷开发实践、质量工程实践到DevOps实践和BizDevOps实践, 研发效能团队不断探索和创新, 自研大量的特色定制化工具和系统, 以加速实践落地效果,确保项目快速、高质量地交付。本节将全面介绍得物在研发效能提升方面所采用的一些具有特色的平台和系统。

23.jpg

在得物研发效能平台系统中,有6大核心研发效能管理系统值得重点介绍和分享,分别是需求管理系统、代码管理系统、测试管理系统、流水线管理系统、发布管理系统和时间手账系统。这些系统分别管理着研发生产流水线中的6种重要的生产过程介质:PRD、Code、TestCase、Pipeline、Service和Time。每一个系统都致力于在最短时间内高质量地交付其所管理的介质,直至其生命周期的结束。

24.jpg

需求管理系统

需求管理系统(PRD-Based Management)是一个以需求管理为核心的平台,旨在全面提升项目和需求管理的效率,同时促进各职能线之间的高效协同作业。该系统不仅能承载所有项目管理、需求管理、需求排期、任务拆分、缺陷管理等工作,还能够支持需求在各职能线之间的顺畅状态流转,形成一个高度集成和协同的工作平台。

功能特点:

  • 项目/项目集管理
  • 需求/需求池管理
  • 敏捷迭代管理
  • OKR-需求关联
  • 需求价值复盘

【RDC需求管理】

25.jpg

【协同管理】

26.jpg

代码管理系统

代码管理系统(Code-Based Management),以代码管理为核心,平台提供仓库管理、分支管理、MR管理和CR管理等功能。 支持在线阅读代码,多需求分支管理(分支规范、分支需求关联、分支版本关联、分支快捷合并移除、分支回收站等特性),线上CR、IDE插件CR以及AI辅助CR等功能。

功能特点:

  • 仓库管理
  • 分支管理
  • MR管理
  • CR管理

【分支管理】

27.jpg

【线上CodeReview】

28.jpg

测试管理系统

测试管理系统(TestCase-Based Management),以TestCase管理为核心, 测试可以根据测试管理系统创建用例、评审用例和执行用例。 测试管理系统,包括手工用例管理、自动化用例管理、资损用例管理等,包括功能测试、性能测试和兼容性测试用例等,是支持快速迭代的全量测试用例管理中心。

功能特点:

  • 测试用例管理
  • 自动化用例管理
  • 资损用例标注
  • 流量用例标注
  • 测试覆盖率统计
  • 精准测试推荐

【集成用例管理】

29.jpg

【自动化用例管理】

30.jpg

流水线管理系统

流水线管理系统(Pipeline-Based Management), 以Pipeline为中心, 包含Push流水线、MR流水线、提测流水线, 集成流水线,发布流水线等。流水线系统是持续集成与持续部署(CI/CD)核心,通过在流水线中自构建和部署,可以快速地将代码变更集成到应用和发布到环境,实现快速集成和交付。

功能特点:

  • Push流水线
  • MR流水线
  • 提测流水线
  • 集成流水线
  • Daily流水线
  • 流水线插件市场

【流水线任务管理】

31.jpg

【流水线插件管理】

32.jpg

发布管理系统

发布管理系统(Service-Based Management),以应用/制品为核心,经过应用依赖编排,根据各应用的服务特征和配置等,通过发布流水线,发布上线。 发布管理系统支持滚动发布、蓝绿发布和同城双活发布功能。 并且支持不同技术栈和发布场景, 包括前端发布、算法发布和社区发布等。

功能特点:

  • 前端发布
  • 算法发布
  • 滚动发布
  • 蓝绿发布
  • 灰度发布
  • 同城双活

【应用发布】

33.jpg

【蓝绿发布】

34.jpg

时间手账系统

时间手账系统(Time-Based Management),以时间管理为核心, 经过时间分配、时间投入登记、时间分析复盘和时间管理优化等过程, 形成时间管理最佳实践。在时间手账系统上,能够清晰的看到各个职能团队和项目组的时间投入分配、个人工作任务时间花费情况,以及其他工作事项的时间投入的细节。 能够帮助个人和团队优化时间管理,减少低价值工作时间投入, 提升单位时间工作效率,进而提升整体研发效能。

功能特点:

  • 时间登记
  • 时间分析
  • 时间管理和优化

【时间分析】

35.jpg

36.jpg

六、得物研发效能度量和优化

研发效能度量是一个至关重要的领域,值得专门讨论和分享。首先,我们要认识到研发效能度量贯穿于软件开发的整个生命周期,它不应该仅仅被视为某个特定环节的任务。这意味着从需求分析到设计,再到编码、测试、发布,直至软件交付,每一个阶段都需要关注和实施有效的度量。

其次,度量的根本目的在于促进更有效的管理和持续改进。正如管理学大师德鲁克所强调的那样:“如果你不能度量它,你就不能管理它。”这句话指出了度量在管理过程中的核心作用,通过具体、可量化的数据,管理者能够清晰地把握研发过程的效率和成果,从而做出更加明智的决策。

最后,尽管度量的重要性不言而喻,但我们也必须警惕陷入度量指标的陷阱。度量工作应当服务于研发效能和产品质量的提升,而不是单纯为了收集数据而收集数据。我们需要确保度量工作能够真正地为研发过程带来价值,而不是成为团队的负担。简而言之,度量应当被视为提升研发效能的工具,而不是目标本身。

得物研发效能度量体系

得物研发效能度量体系包含 研发效能展示层、研发效能度量评估层、研发效能度量数据层和研发效能数仓,能够提供全流程全视角的研发效能度量能力。

37.jpg

「研发效能度量展示层」

  • 质量大盘:展示迭代过程中的质量数据,包括内建质量、代码质量、测试覆盖率等指标,提供全面的质量概览。
  • 效能大盘:展示迭代过程中的效能数据,包括交付质量、交付效率和交付能力等,帮助团队实时监控效能表现。
  • 效能洞察:通过全域数据、单域数据和组织数据的多维度分析,提供深度的效能洞察,识别潜在问题和改进机会。
  • 研发质量季度报告:定期发布研发质量季度报告,全面回顾和评估质量表现,提供改进建议。
  • 研发效能季度报告:定期发布研发效能季度报告,总结效能表现和趋势,指导后续改进工作。

「研发效能度量评估层」

  • 交付质量:评估产品在交付过程中的质量,包括缺陷数量、严重程度和解决时间等指标。
  • 交付效率:评估团队的交付效率,包括开发周期、测试周期和发布周期等关键指标。
  • 交付能力:评估团队在不同阶段的交付能力,包括构建效率、部署效率和系统流畅度等指标。

「研发效能度量数据层」

  • 业务OKR和项目数据:收集和分析与业务目标和业务OKR以及项目相关的数据,评估项目进展和目标达成情况。
  • 研发过程数据:收集研发过程中的数据,包括代码提交频率、代码审查通过率、开发工时等,监控研发流程的各个环节。
  • 测试过程数据:收集测试阶段的数据,包括测试用例数量、测试通过率、缺陷发现率等,评估测试环节的质量和效率。
  • 发布和线上数据:收集发布和线上运行的数据,包括发布成功率、平均故障修复时间、系统稳定性等,确保产品在生产环境中的表现稳定可靠。

研发效能度量实施步骤

  1. 指标定义和选取

首先,我们需要明确终极指标,即用户价值或需求价值。这通常是我们计算人效的关键,也是最终的结果指标。为了优化这一结果指标,我们需要识别出过程指标和约束项。通过减少约束并提高过程指标,我们可以提升最终的结果指标,从而提升整体研发效能。

其次,参考DORA 4-key-indicator指标。 DORA在其研究报告中提出了四个关键指标,用于衡量软件交付和运维性能。这些指标在实践中被证明与高绩效团队相关,可以帮助组织更好地了解其当前的软件交付能力,并找到改进的方向。这四个关键指标包括:

  • 部署频率(Deployment Frequency):部署频率指的是在一段时间内,软件更新或新功能被部署到生产环境的次数。高绩效团队通常具有较高的部署频率,这意味着能够快速地将新功能和改进推向市场。
  • 变更前导时间(Lead Time for Changes):变更前导时间度量了从代码提交到代码成功部署到生产环境所需的时间。较短的变更前导时间表示团队能够更快地响应市场需求和客户反馈,从而实现快速迭代和创新。
  • 变更失败率(Change Failure Rate):变更失败率指的是部署到生产环境的更新中,需要进行紧急修复、回滚或导致服务降级的比例。较低的变更失败率意味着团队能够保持较高的软件质量,降低对生产环境的负面影响。
  • 恢复时间(Time to Restore Service):恢复时间是指在出现故障或服务降级时,恢复正常服务所需的时间。较短的恢复时间表明团队具备较强的故障排查和修复能力,能够在问题发生时快速响应并恢复服务。

最后, 结合现有业务场景现状和研发模式, 补充现阶段比较关心的过程指标比如质量内建指标、代码质量和测试效率等。最终形成得物研发效能度量指标集。

38.jpg

基于得物研发协同模式,研发效能度量聚焦在规划与协同阶段, 研发与验收阶段, 和发布与运营阶段三大阶段和大能力域: 「需求管理」、「任务管理」、「缺陷管理」、「版本管理」、「代码管理」、「API管理」、「持续集成」、「测试管理」、「环境管理」、「发布管理」, 在各个能力域分别定义了比较详细的度量指标。

39.jpg

  1. 指标应用和改进
  • 标准迭代度量:重点关注标准双周迭代的数据,持续跟踪和评估每个迭代周期的表现。
  • 同比环比分析:从全域维度进行同比分析,可以评估当前全域的水位;从单域维度进行环比分析,可以监控每个迭代的进展情况,确保持续改进。
  • 因地制宜:根据业务域所处不同阶段,选择合适的指标集,以确保度量的针对性和有效性。

效能大盘-标准迭代度量 在迭代过程中,我们通过跟踪交付效率、交付质量和交付能力的数据,深入分析具体需求和职能团队,识别改进点。通过持续跟踪和优化,确保每个迭代都能有所进步。

40.jpg

效能洞察-全域看板 通过研发效能数据仓库,实现数据聚合功能,我们能够在效能洞察系统中查看全域、多迭代的数据。该系统支持在研发效能的十大能力域内洞察效能水平,为持续改进提供全面的数据支持。

41.jpg

  1. 阶段复盘和归档
  • 研发质量季度报告:通过季度性复盘、分析和全域全职能的质量报告,我们能够全面掌握研发质量水平。这有助于提升研发内建质量、测试质量、发布质量和线上质量。
  • 研发效能季度报告:通过季度性复盘、分析和全域全职能的效能报告,我们能够全面了解研发效能水平。这有助于提升研发编码效率、测试效率、发布效率和整体研发效能。

42.jpg

43.jpg

七、得物研发效能团队和文化

研发效能团队

提升研发效能是一个复杂的过程,涉及到方法论、技术、工具、流程、人员和文化等多个方面。只有当这些元素协同工作,形成一个支持快速学习、持续改进和高效协作的环境时,组织才能真正实现研发效能的提升。

得物研发效能团队演化进程,大概可以分为三个阶段, 分别是工具型团队、平台型团队和业务型团队。 研发效能团队发展的三个阶段并不是刻意定义和驱动形成,而是随着组织对于研发效能需要和解决问题方法逐步演进形成。

44.jpg

  1. 工具型团队阶段 在这一阶段,研发效能团队主要聚焦于工具的开发和快速交付。 我们根据业务域研发、测试团队的明确需求,筛选、开发或定制化工具,以解决特定的开发、测试或部署问题。这个阶段的核心任务是提高工具开发效率,尽快向用户交付工具,减少手工操作等。工具团队的目标是解决明确定义点状问题, 比较典型的类似提供全局可用的测试环境,数据银行,自动化平台等。

  2. 平台型团队阶段 进入平台型团队阶段,研发效能团队的视野和职责范围开始扩大。我们从整个生产线和组织协同的角度出发,统一研发效能解决方案,建设一套完整研发效能解决方案。这个方案包括需求管理、代码管理、版本控制、持续集成/持续部署(CI/CD)、测试管理和发布管理等多个方面。平台型团队的目标是创建一个共享的、可复用的、标准化的研发环境,以促进不同团队之间的协作、提升整体研发效率和软件质量。

  3. 业务型团队阶段 当研发效能团队发展到业务型团队阶段时,我们需要精细化地洞察问题,提出解决方案。在这个阶段,研发效能团队不仅深入理解技术和工具,更能洞察业务场域问题,主动发现并分析问题,并提出具有价值的解决方案,解决问题。团队能够跨越技术和业务的边界,以业务价值为导向,优化研发流程,推动技术创新,促进产品和服务的持续改进。业务团队阶段的研发效能团队是组织内部变革的推动者,我们通过提升研发效能,最终实现业务目标和组织价值的最大化。

研发效能文化

得物技术团队始终以“稳定”“效率”“体验”“成长”“创新”作为核心关键词,致力于打造学习型组织,不断提升技术硬实力,立志成为上海最优秀的技术团队。

在提升研发效能的过程中,我们始终保持高度的共识和行为一致性。团队在工作中具备明确的目标、开放的沟通环境和持续学习的态度。在项目推进过程中,我们逐渐形成了一系列行为习惯:

  • 客观透明,数据驱动:高度重视数据,以全面、全维度的参考指标驱动改进,确保每一个决策都基于客观事实。
  • 鼓励MVP和技术创新:鼓励实践MVP和技术创新,通过探索和实验,形成最佳实践,并将其推广到全团队。
  • 鼓励跨部门协同:鼓励打破部门壁垒,促进跨部门的相互理解和协作,提升整体效率。
  • 持续学习和改进:倡导知识共享和持续学习的理念,鼓励团队成员分享经验和教训,不断改进和提升。

通过坚持这些行为准则,我们确保团队在研发效能提升过程中,始终保持高效协作和持续进步,推动得物技术研发效能不断提升。

技术部荣誉激励 值得一提的是,得物技术团队始终重视并积极激励那些在优秀实践中表现突出的个人和团队。为此,我们专门设立了一系列研发效能实践荣誉激励奖项,以表彰在研发效能方面取得优异成果的贡献者。具体奖项包括:

  • 火眼金睛奖:表彰在CodeReview实践中表现卓越的团队和个人,推动代码质量的持续提升。
  • 妙笔生花奖:奖励在API设计和API联调实践中取得卓越成果的团队和个人,促进系统接口的高效协作。
  • 效率之星奖:鼓励在效率提升和研发效能提升实践中取得显著成效的团队和个人,提升整体开发效率。
  • 最佳项目奖:表彰开发出卓越研发效能工具或成功实践MVP项目的团队和个人,推动技术创新和实践落地。

通过这些激励措施,我们不仅认可了优秀实践的价值,还激发了团队和个人不断追求卓越、持续改进的动力。

45.jpg

46.jpg

八、总结和展望

提升研发效能绝非一朝一夕之事,而是一项涉及全企业、要求全员参与的系统性工程。它既需自上而下的决策引导,也依赖自下而上的执行力支持。过程中不仅要求明确的策略规划和强有力的领导推动,还需要每一位团队成员的积极参与和持续贡献。我们需要构建一个开放的沟通环境,鼓励创新思维,并采纳精益敏捷的实践方法,企业才能逐步构建起一个高效、协同的研发生态系统。未来,随着AI技术不断融入研发效能的各个环节,包括智能问答系统、AI智能编码、流水线问题智能定位以及研发效能Agent应用等,我们有充分的理由相信,研发效能的提升将为企业带来显著的市场竞争力、更快速的响应速度以及更强的创新能力。

47.jpg

*文/ Nik

本文属得物技术原创,更多精彩文章请看:得物技术

未经得物技术许可严禁转载,否则依法追究法律责任!