一文看懂研发效能提升 | 京东云技术团队

京东云开发者
• 阅读 389

1 什么是研发效能?

对于一个企业来说,最大化企业效能是其必求目标,包括:利润、用户规模、客服满意度、运营效率等。对于自有产品研发的互联网公司来说,研发效能是服务企业效能的重要因素。

一个软件研发的完整流程如下图所示:

一文看懂研发效能提升 | 京东云技术团队

从需求提出到交付整个流程中交付期望产品的效率和能力,即研发效能。

2 为何要提升研发效能?

下面从宏观和微观两个例子说明研发效能在我们日常需求交付中的影响:

(1)站在各自视角,效率高效;站在全局业务视角,反应迟缓。

一文看懂研发效能提升 | 京东云技术团队

上面这张图反映了单个需求的交付过程。绿色线表示需求正在被处理,红色线表示需求在等待中。工作量不大的需求,交付周期却很长,这是因为大部分时间需求都处于等待状态,可能是由于跨部分也可能是因为前、中、后台对工作优先级处理不同,就会导致需求链路局部最优,总体效率不高,相信很多人会感同身受,这已成为产品交付的普遍困境。

(2)API对接处理

在API接口测试过程中,输入参数的临界值没有妥善处理的问题十分常见,比如某个输入参数是String类型,但是代码实现中没有考虑String变量为null的情况。这类问题通常都会在后期调试或者联调阶段才会被发现,此时再去修复的成本就比较高,修复之后还要考虑回归测试的成本。所以我们可以引入一种机制,去主动扫描获取API入参类型,根据参数类型生成容易出错的取值,用这些取值自动调用API,如果发生500错误或者抛出异常就是发现了问题,这样问题可以更早暴露出来,也对之后的开发工作提升了一定效率。

通过这两个例子可以发现不论是产品交付还是实际的开发工作,效能改进的目标就是:持续快速交付价值的能力。可以理解为传统的开发方式对团队能够持续为用户产生有效价值的效率发起了挑战,需要通过研发效能着眼于长期效果,改变我们的焦点从局部最优,转向关注用户价值,保证全局和系统的优化。

3 如何度量研发效能?

管理学之父德鲁克说:“如果你不能度量它,就无法改进它”。

评价一个组织或者团队持续快速交付价值的能力,需要一些度量指标帮助我们更加深刻认识研发效能,设定改进方向,衡量改进效果。

效能度量回答的根本问题就是:一个组织“持续快速交付价值的能力”怎么样?

一文看懂研发效能提升 | 京东云技术团队

任何生产力的提升都离不开三个因素:人、流程和工具,缺一不可。通过下面5个具体指标,或许会对这三个因素有更加深入的理解。

第一:持续发布能力。

发布频率:单位时间内的有效发布次数。

发布前置时间:从代码提交到功能上线所花费的时间,体现了团队发布的基本能力。

第二:需求响应周期。

交付周期时间:从确认用户提出的需求开始,到需求上线经历的平均时长。

开发周期时间:从开发团队理解需求开始,到需求可以上线所经历的平均时长。

第三:交付吞吐率。

单位时间交付用户需求数量:单个团队在单位时间内交付需求的数量。

第四:交付过程质量。

缺陷创建和修复时间分布:缺陷能够持续和及时的被发现,并在发现后尽快修复。

缺陷库存:开发过程控制缺陷库存量,让那个产品始终处于接近可发布状态,这是持续交付的基础。

第五:交付质量。

无论是单位时间问题数目还是线上问题解决时长都是在强调系统可用性。

这5组指标,来自于阿里资深技术专家团队提出,从流动效率、资源效率和质量三个方面讲述了一个完整的故事,回答了组织持续交付价值的能力如何这个核心问题。其中,持续发布能力和需求响应周期这两组指标反映价值的流动效率;吞吐率反映资源效率;交付过程质量和对外交付质量这两组指标共同反映质量水平。

4 如何提升研发效能?

首先来看一个问题:为什么现在各大互联网公司都开始关注“研发效能”?

软件正在吞噬世界。过去20年互联网从无到有,未来,任何一家企业的业务都会构建在互联网的基础上。软件交付能力成为企业的核心竞争力,研发效能成为企业的共同挑战。

一方面,随着竞争的加剧,业务对研发效能的期望越来越高;另一方面,随着互联网向产业纵深的发展,产品和协作的复杂度越来越高,研发效能有下降的趋势,这是期望和理想的差距,也是研发效能提升必须要解决的问题。

在推行研发效能的早期阶段,通常可以采用自上而下的策略,从一个工程实践中的实际痛点小事入手,以解决问题为提升研效的目标,这个阶段我们追求的是“短平快”,问题逐个击破。这些问题包括但不限于:

  • 本地编译时长消耗大
  • 本地测试困难,测试环境准备复杂且耗时
  • 自动化测试用例维护成本高
  • 测试数据准备困难
  • 研发后期代码提交集中,缺陷数激增
  • 性能缺陷在研发后期发现,修复成本高
  • ……

进入中后期阶段,回到软件研发领域,从全局切入进而优化工作。在引入敏捷解决方法之前,先来看一个度量图表:

一文看懂研发效能提升 | 京东云技术团队

上图中,横坐标是日期,横坐标上方红色竖条代表这一天发现缺陷数量;横坐标下方绿色竖条代表当天解决的缺陷数量;橙色曲线代表缺陷存量。图中左右两个部分比较了两种交付模式。

左半部分,即小瀑布开发模式。在迭代前期,团队集中设计开发,引入缺陷,但为及时验证解决。缺陷一直隐藏在系统中,直到后期测试和集成阶段,缺陷集中爆发,带来大量的返工、延期和交付质量问题。

右半部分,即持续交付模式。在整个迭代过程中,团队以小粒度需求为单位开发,持续地集成和测试它们,即时发现和解决问题。缺陷库得到控制,系统始终处于接近可发布状态。

实际上,持续交付模式与敏捷开发原则十分相近,敏捷=价值观+原则+一系列符合价值观和原则的方法。敏捷团队迭代周期为两周,通过透明、协作、有纪律性的持续改进,是的如那件一直处于可工作状态,每个迭代都能将软件部署到类似生产环境中,并向用户演示。通过敏捷方法,可有效避免“小瀑布”问题,按照需求粒度优先级排序,将需求拆分为能够独立测试的需求,在整个流程中发现问题可以及时解决并进行复盘总结。

从个人角度来看,必须从实际出发,从原则出发,从个人转变为关注价值流动:待开->设计->开发->开发自测->代码评审->测试->完成。不断地学习新的开发技能,从而提升自己的开发效率。

从团队角度来看,团队文化是团队成员共同认可的价值观和行为准则,良好且有效的文化是保障团队高效产出的关键部分,文化价值观的贯彻执行是保证一个敏捷团队高效工作的制胜宝典。当然,任何措施若涉及个人利益,必然会有坏味道产生,只能看这个措施是否能引导团队往正确的方向走,是否利大于弊。

感谢阅读。

参考资料:

[1] 腾讯技术工程 https://zhuanlan.zhihu.com/p/202972178?utm_source=tuicool

[2] 过河卒冲http://www.360doc.com/content/20/0915/11/31263000_935733089.shtml

[3] 阿里云云栖号 https://zhuanlan.zhihu.com/p/57029968

[4] huver2007 https://blog.csdn.net/huver2007/article/details/103260847

[5] 研发效能提升和敏捷实施36计 https://www.sohu.com/a/340050349_612370

[6] 书籍参考:《持续交付》,《研发效率破局之道》

作者:京东零售 李泽阳

来源:京东云开发者社区 转载请注明来源

点赞
收藏
评论区
推荐文章
待兔 待兔
3年前
理解软件设计的基本原则
任何软件唯一不变的真理是变化,毕竟软件是"软"的。软件研发需要快速响应市场、需求的变化。为了快速响应,我们可以通过增加人手来达到部分目的,但软件开发属于知识密集型工作,当人数增加到一定数量后,不仅不能够提升研发效能。反而增加管理成本,沟通成本及由于人与人沟通、理解上产生的歧义而最终造成软件实现的混乱和复杂度。所以软件本身需要能够轻易的扩展,适应各种需
【敏捷研发系列】前端DevOps流水线实践
软件开发从传统的瀑布流方式到敏捷开发,将软件交付过程中开发和测试形成快速的迭代交付,但在软件交付客户之前或者使用过程中,还包括集成、部署、运维等环节需要进一步优化交付效率。因此Devops的产生将敏捷的相关理念扩展到运维侧,从而将产品、设计、开发、测试、运维团队更紧密的结合在一起。而从交付给客户产品视角看,前端研发通常又是在整个产品设计开发链条的最终节点,意味着前端团队受到上游变更的影响是最大的,并且从经营理念效率出发,提升前端交付效率是至关重要的。
软件架构生态化-多角色交付的探索实践
作为一个技术架构师,不仅仅要紧跟行业技术趋势,还要结合研发团队现状及痛点,探索新的交付方案。在日常中,你是否遇到如下问题“业务需求排期长研发是瓶颈;非研发角色感受不到研发技改提效的变化;引入ISV团队又担心质量和安全,培训周期长“等等,基于此我们探索了一种新的技术体系及交付方案来解决如上问题。
待兔 待兔
3年前
软件开发外包的优势,哪些企业适合软件开发外包?
软件开发涉及到需求、设计、研发、交付、维护,很多企业并没有软件开发能力与经验,将软件开发项目外包出去成为一种选择。外包出去企业会少走很多冤枉路,那么进行软件开发项目外包的好处有哪些呢?提高企业工作效率专业的软件开发包括了后台开发、前端设计、实施、后期推广维护等各个方面,团队专业,人员齐全,企业把软件应用交给外包公司来做,自己基本不用花费太多精力,而且
Stella981 Stella981
3年前
CODING DevOps 线下沙龙回顾一:DevOps 代码质量实战
11月22日,由CODING主办的DevOps技术沙龙系列「质量」专场在上海圆满结束。在活动现场,四位来自腾讯等知名企业的技术大咖们分享了研发质量与效能的实战经验,与观众们共同探讨如何采取有效手段以保证和提高软件质量。!(https://static.oschina.net/uploads/img/202012/07210111
Stella981 Stella981
3年前
Serverless对研发效能的变革和创新
!image.png(https://imgblog.csdnimg.cn/img_convert/0916969b86b2b012dde8b833d3d15480.png)对企业而言,Serverless架构有着巨大的应用潜力。随着云产品的完善,产品的集成和被集成能力的加强,软件交付流程自动化能力的提高,我们相信在Serverless架构下
Stella981 Stella981
3年前
Serverless 对研发效能的变革和创新
!Serverless对研发效能的变革和创新(https://p6tt.byteimg.com/origin/pgcimage/15c5331200954637874ef1f6a7808ee1?frompc)对企业而言,Serverless架构有着巨大的应用潜力。随着云产品的完善,产品的集成和被集成能力的加强,软件交付流程自动化能力的提高,
京东云开发者 京东云开发者
6个月前
京东内部研效架构师训练营,首次对外公开课,不可错过的研效之旅!
五月繁花似锦,让我们带你走进京东,开启研效实战之旅!四大单位联合发起本次活动由“全国云计算技术行业产教融合共同体”发起,联合工业和信息化部电子第五研究所、E³CI软件研发效能度量工作委员会、京东云共同主办,重磅推出“卓越研效架构师”研习营,邀请30名企业研
「案例分享」研发效能提升之第一性原理
作者:樊思国一、引言被埃隆·马斯克多次提及的第一性原理Firstprinciplethinking,是计算物理学领域的一个专业术语,在商业领域依然具有鲜活的生命力。读过《硅谷钢铁侠》这本书的知道,正是因为应用了第一性原理对问题进行分析,
我在京东做研发 | 揭秘支撑京东万人规模技术人员协作的行云DevOps平台
随着业务变化的速度越来越快各类IT系统的建设也越来越复杂大规模研发团队的管理问题日益突出如何提升研发效能成为时下各类技术团队面临的重要挑战京东云DevOps专家将带您深入研发一线揭秘支撑京东集团万人级研发管理的行云DevOps平台分享企业应该如何规划Dev