提升研发效能没那么难,看优酷的最佳实践!

作者 | 阿里文娱技术专家 成文

责编 | 屠敏

研发效能期望

随着敏捷、DevOps 等概念的兴起,研发效能成为企业关注的重点,但是研发效能面临的问题和挑战也与日俱增。尤其在互联网行业,版本需要快速迭代,业务与系统越来越复杂,质量和效率经常被放到对立面,随着团队规模越来越大,成百上千人的高效协同面临巨大挑战,研发效能导致的问题形成恶性循环。

本文将结合优酷近两年遇到的研发效能问题分享一下优酷在研发效能领域的实战经验。

问题与挑战

随着移动时代的到来,优酷的主战场也聚焦到以手机、Pad 为主的小屏客户端,以及家庭 电视的大屏客户端。在移动端领域,因为 UI 交互变化快,自动化维护成本高,行业普遍还是以手工测试为主,大部分团队的开发质量意识薄弱,甚至不自测也不提测,研发流程混乱,沟通 成本高。在整个研发过程中每个团队都觉得自己繁忙且“高效”,然而站在全局视角团队整体的研发效能却显得非常迟缓。针对这些问题,大家通常会想到以下三个方案:

1)规范流程,与开发达成一致,形成文档,大家按照约定执行;

2)数据驱动,通过收集各种数据反映研发效能问题,改进不足;

3)自动化,把日常部分重复工作转化成自动化脚本,降低回归成本。这三个方案在初期比较容易取得一些效果,但是到了中后期各自的新的问题和挑战就会逐

渐凸显出来:

1)流程规范靠约定,执行效果很难量化;执行完全依赖个人,约束力不强;

2)数据颗粒度比较粗,反应的问题比较片面;数据与研发流程脱节,很难形成驱动力;另 外,数据的收集成本也在持续增加;

3)自动化一直在投入,但是取到的效果很难衡量;与研发流程脱节,关键节点依靠人来衔 接,自动化的价值难以发挥。

优酷最佳实践

为研发效能提效,优酷也是围绕上面三个方案展开,只不过我们巧妙的把三个方案融合成 一个方案,并融入到不同的研发流程当中。

1. 提测流程

我们首先做的就是把提测流程平台化,把线下的文档形式的规范搬到线上。不走线上提测 拒绝测试,把必须提供的信息设置成必填项,不满足提测要求的提测单打回,在很短时间就统 一了所有业务线的提测标准。

我们打通了打包平台和需求管理平台,对于开发来说只要选包选需求提测即可,大部分提 测单中的信息可根据包信息和代码变更信息自动汇总,反而给开发减少了很多额外的工作。测试收到提测单扫码安装下载后测试,再给测试结论即可。

其次,还有提测卡口功能。测试可以提供手工自测用例给开发,开发在提测时必须先完成 手工用例并通过所有测试才能提测。因为直接融入在提测流程中,所以约束力非常强,让开发 被动提高质量意识。

再次,更酷的是提测流程与自动化融合。与自动化平台打通后,自动化不仅作为测试的一 种减轻回归成本的工具,更作为一种服务化的能力融入到流程中。比较常见的套路是:提测后 自动触发冒烟自动化,通过后才发送提测通知,再自动触发已配置的其他类型的自动化任务, 如稳定性测试、功能回归、性能回归等。当然开发也可以在提测前选一个包就直接使用这些测 试服务,自动化的价值被充分挖掘出来。提测流程,如下图所示:

最后,在平台的使用过程中自动沉淀了非常多的数据,提测次数、提测通过率等对测试形 成比较好的保护,开发的质量意识增强。

2. 移动端研发 Pipeline

随着业务复杂度增高,团队规模扩大,每个版本参与集成的模块可能多达上百个,研发过 程各环节都可能成为瓶颈,高效协同仅靠提测流程很难保证。我们依旧采用三合一的策略,只 不过把整个研发流程,从需求确认到提测到集成到发布全部搬到线上,串联打通各个平台,实 现研发流程的全面数字化。如下图所示:

首先,建立好产品、业务、版本、提测区的基础关系。PMO 在产品中新建版本,各业务接 口人在业务中新建提测区并关联所属产品的版本,产品在提测区关联的需求项目里确认需求, 开发在提测区提测,测试在提测区关联的缺陷项目中管理缺陷。不同角色依旧在各平台按照自 己的方式工作,只不过因为我们维护了研发流程中数据的关系,数据的意义变得大不一样:

1)数据不需要刻意去手工收集,在日常工作中自动沉淀,在版本视角自动汇总各业务情况;

2)数据不是孤立的点,可以传递给上下游。比如产品在需求管理确认需求,开发在提测环 节直接选需求提测,提测以后状态可再同步至需求管理平台;

3)数据融入在流程里,作为关键环节的卡口,驱动力强,不需要等到版本复盘的时候才看。

其次,建立 Pipeline 的过程其实就是在建立各阶段标准的过程,结果不好往往是过程做的不到位。就好比“束水攻沙”,定好标准收紧河道,让水流动更快,把问题和风险尽早暴露出来。以缺陷关闭率为例,如果业务在缺陷关闭率不达标的情况下参与集成,集成效率一定很低,但 实际上这个问题应该在开发测试阶段就解决好。通过设置缺陷关闭率的集成卡口,在集成阶段 到来就前提前预警,让开发和测试人员尽早解决缺陷关闭率不达标的问题。经过一段时间的实 践,我们各业务在集成阶段的缺陷关闭率达标情况得到明显改善,集成效率也得到显著提升。

最后,研发流程各个环节都可以与自动化有机结合,有更灵活的触发规则:集成自动触发、 回归通知自动触发、灰度发布自动触发等。对于性能自动化的结果可以基于版本设立基线,与 自己与行业对比,自动生成版本性能报告。

研发流程规范、数据驱动、自动化三者关系密切,相辅相成,研发效能改进需要有全局视 野,需要结合研发流程让规范落地,需要结合数据驱动变得更智能,需要结合自动化进一步释 放人力,三者融为一体才能更好形成研发效能持续改进的动力。

研发效能展望

研发效能改进和看病救人有很多相似之处,讲究望闻问切,对症下药。两千多年前,《黄帝 内经》就提出“上医治未病,中医治欲病,下医治已病”的理论。目前我们才刚刚摸到“中医治欲病”的门槛,但是要达到“上医治未病”,研发过程还需要不断往前,从编码设计、从系统 架构、从需求上入手,做到防患未然。

【End

热 文 推 荐

联合国为何 Pick 腾讯?

红外光抗疫、成功预测新基建,投资 280 家企业的光学博士到底是谁?

前端机器学习:识别人脸,并在脸颊上画草莓

瑞幸咖啡自曝虚假交易 22 亿,App 反冲 TOP 1

在Kubernetes上部署一个简单的、类PaaS的平台,原来这么容易!

旷视提双边分支网络BBN:攻坚长尾分布的现实世界任务 | CVPR 2020 Oral

2020年,这20个大家都认识的加密交易所过得怎么样?

你点的每个“在看”,我都认真当成了喜欢

发布了1925 篇原创文章 · 获赞 4万+ · 访问量 1793万+

猜你喜欢

转载自blog.csdn.net/csdnnews/article/details/105355435