研发效能定义
研发效能就是更高效、更高质量、更可靠、可持续地交付更优的业务价值的能力
目标问题
研发效能解决的问题:
- 研效中台实现企业级跨产品和跨项目的研发能力复用
- 通过研发效能提升,投入相同的资源和时间,获得更多的产出
- 打破各个环节之间的壁垒,提升价值流动速度,完成流程优化
双流模型
研发效能双流模型:倡导需求价值流和研发工程流的自动联动,需求状态根据代码实际完成情况自动流转
大致场景:
- 分配开发任务后,自动创建分支并拉取到IDE,并自动更新任务状态为开发中
- 发起MergeRequest后,自动发起代码评审流程,并自动更新任务状态为评审中
- 代码评审通过后自动触发CI流水线并更新任务状态为,并自动更新任务状态为待测试
以双流模型理念打造的研发效能平台可以让工程师聚焦在最关键的核心任务上,而不需要人工去做哪些研发过程中的事务性工作,让整个研发过程的价值流动更顺畅,进而提升团队的研发效能
具体实践
提升效能的具体实践大致有:
- All-in-one的开发环境:云端集成开发环境IDE
- AI代码提示插件
- 实时本地代码检查插件
- 单元测试自动生成(EvoSuite)
- 增量编译与分布式编译
- 代码分支策略
- 高度自动化的CICD流水线
- 合适的发布策略
- 引入DevSecOps与DevPerfOps,将安全测试与性能测试转化为安全工程和性能工程
需要注意的是,研效平台和工具往往具有非标准的长尾效应(支持特殊场景需要开发的量很少但是特殊场景特别多,因此总的开发量很大),我们很难打造一套统一的研效解决方案来应对所有的业务研发需求,各种业务研发流程的特殊性不容忽视,灵活性与易用性往往是一个trade off
黄金三角
研发效能提升体系(黄金三角):效能实践、效能平台和效能度量
黄金三角关系
- 优秀的效能实践固化并沉淀到效能平台中;效能平台支撑效能实践的落地
- 效能平台产生的研发数据形成了效能度量中的效能洞察;效能度量可以持续观测效能平台产生的数据,进行下钻和深入分析
- 效能度量中的洞察和分析结果可用于针对性地优化效能实践;效能实践可以给效能度量带来更多的输入,帮助其完善度量指标集和分析方法
黄金三角核心
- 效能实践核心:产品导向(而非项目导向) + 工程卓越
- 效能平台核心:自动化 + 自助化,生态化 + 场景化
- 效能度量核心:效能指标体系 + 指标数据收集 + 指标分析模型 + 效能展示工具 + 效能运营体系
研发效能宣言
业务价值 高于 职能目标(业务视角)
效能为业务价值服务,而效率为职能目标服务,效能让人更接近目标从而创造业务价值,效率让人更快地完成职能目标,如果方向错了效率再高也没有用
全局流动 高于 局部优化(流程视角)
全局的流动的含义是聚焦IT系统的整体价值流,进行全局优化,从而确保价值从上游到下游的快速流动;局部优化一般是对于研发过程中的某一部分或某个环节通过技术或者工具进行调优
有一个常用的效能度量指标就是流动效率,即工作处于活跃状态的时间与总交付时间的比值
工程卓越 高于 工具平台(技术视角)
工具平台提供的工具是工程卓越的载体,同样的工具应用在不同的工程实践中带来的效能提升也必然大不相同
用一块白板加便利贴同样可以实现真正意义上的敏捷开发,而全套的敏捷工具也可以被用作”披着敏捷外衣的瀑布模型“
数据思维 高于 经验沉淀(数据视角)
让专家经验通过数据思维沉淀下来,实现标准化,进而实现批量复制
工程师文化 高于 绩效管理(组织视角)
绩效管理只是一个达成目标的工具,而工程师文化是一个体系,研发效能的优化方向不应该只是面向管理者服务,为管理者提供绩效管理手段,研发效能更应该要拥抱开发者体验,给工程师提供更明确的目标、更人性化的工作环境、更优秀的研发工具以及更精简的协作流程
参考
- 《软件研发效能提升实践》
- 公众号 - 《DevopsClub》