阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

为滴滴、头条量化研发效能和代码质量,他们有哪些秘籍?| TGO 专访

  • 2020-09-18
  • 本文字数:2576 字

    阅读完需:约 8 分钟

为滴滴、头条量化研发效能和代码质量,他们有哪些秘籍?| TGO 专访

对研发人员进行量化的绩效考核,是业界难题。


一种思路是通过提交次数(NOC,Number of Commits)或代码行数(LOC,Line of Commits),比如 GitHub 就是通过提交次数给项目的开发者排名,这种方式操作简单,但是只能衡量代码的数量,无法准确衡量代码价值,而且这个统计方式会被代码的空行、注释、个人习惯等干扰。


另一种思路是使用 OKR 等通用管理工具,对项目和业务结果进行考核,结果导向,缺点是考核方式不够精细、研发过程可见度低、高度依赖团队成员的主观判断。


2018 年,当时任微软亚洲研究院研究员的任晶磊、正在加州大学伯克利分校软件工程和应用机器攻读博士学位的殷和政等人希望通过提供深度代码分析系统来解决这个问题。他们在国际级软件工程会议 FSE 上共同发表一篇论文,这样写道:


“我们将代码开发价值分为结构价值和非结构价值两部分。结构价值反映某段代码因被其他代码调用而产生的价值;非结构价值指代码本身的影响,比如修复 bug、增加新功能、维护文档。”


对于结构性价值,他们以谷歌网页搜索的 PageRank 为灵感,创造了基于图的算法(graph-based algorithm)DevRank;对于非结构价值,他们基于自然语言处理(NLP)和机器学习(ML)技术,尝试自动化代码提交分类,来衡量代码提交影响。此外,他们训练了排序学习(L2R)模型,寻找结构性价值和非结构性价值的比例,来形成对代码开发价值的整体评分。


分析代码本身,而非相关过程

同一年,这个年轻的团队在开源社区中验证了思码逸产品原型的评估结果,随后创立思码逸 Merico


Merico 为客户提供代码分析和数据视图解决方案,给出关于工作量、代码模块性、注释覆盖度、测试覆盖度、代码复用度、团队鲁棒性、成员贡献、成员技能等数据。


TGO 鲲鹏会会员任晶磊表示:“开发团队量化绩效的痛点在于三点:1. 快,即效率;2. 好,即质量;3. 又快又好的根本,即人才。”


从这个观点出发,Merico 提供三个视角的报告:工程效率报告、工程质量报告、团队人才报告。


对于工程效率,Merico 优化了前面论文中提到的量化方法,提出以“开发当量”概念来反映代码工作量。开发当量的分析完成了部分编译过程,将源代码解析为抽象语法树,因此可以避免源代码级别的表层修改,如空行、注释、无用代码等噪音。


通过数据视图呈现,客户可以看到各个项目的新增开发当量、变化趋势、个人成员开发当量排行等。



至于工程质量报告,Merico 使用一些重要指标,包括代码复用、测试覆盖度、注释覆盖度、函数复杂度、代码质量。


代码复用,前面提到属于代码的结构价值,大幅降低新的开发工作的边际投入。Merico 系统中可以看到开发者代码被自身复用的情况、以及被团队或公司其他人复用的情况。


此外,很多公司也很关注代码的函数复杂度,比如有的公司规定,函数圈复杂度超过 10,一定要做 review,之后有必要的话一定要做重构和优化,否则一旦出现问题,调整修改的难度很大花费的成本非常高。


代码质量方面,目前,思码逸系统按照阻塞、严重、主要、次要、提示进行分层,不过,客户也可以自定义规则。任晶磊透露,真实开发中,很多公司会对常出现的问题做分门别类的归类,将自身规则导入系统,从而个性化跟踪自身团队的关键问题,让代码问题追踪真正具有使用价值。



开发团队效率问题表面上看是关于代码新增的效率与质量,核心是人的效率。


Merico 的团队人才报告提供团队成员的开发价值榜、开发当量榜。此外,就像 MBTI 的员工能力模型,Merico 也会给人才打上标签,展示人员的各项贡献与能力,比如 “测试”、“远程过程调用”、“自然语言处理”、“第三方接口”,形成员工技能图谱。任晶磊解释说,比如要筹划一个新项目,领导者可以看到团队中擅长数据分析的人有多少、擅长科学计算的人有多少,对已有人力资源心中有数。



下一步,Merico 计划让产品设计更加深入开发团队的日常使用场景,技术层面不断精进并涵盖更多指标,让分析结果更准确。此外,Merico 也将在年内推出服务开源社区的产品。

从边缘到核心,研发效能五个维度指标

除了产品,Merico 还提供解决方案。这家创业公司有专门的咨询团队,针对客户开发团队绩效管理中出现的问题,提供生产管理流程优化的方式方法,帮助发挥每个程序员的优势和特点。


任晶磊告诉 TGO 鲲鹏会,其客户有两个典型特征,“1. 研发团队达到一定规模,一般在五十人或以上,管理半径要覆盖到所有人已经有些困难,需要借助工具来提高透明度、辅助研发决策;2. 对于研发提效有需求、有认知,希望提升研发管理的精细化水平。”


据 36 氪报道,Merico 在与大客户合作时,主要提供底层的代码分析服务,并输出数据以满足大客户内部自建管理工具及流程的需要;而针对百人级别的研发团队,思码逸则提供从代码分析、数据视图到优化建议的完整效能提升方案。目前其产品形态以私有部署为主,近期也上线了面向中小型开发团队的 SaaS 产品,二者都是按照活跃开发者人数每年收取 license 费用。


产品上线后,Merico 已经服务了字节跳动、滴滴、长亭科技、知道创宇等客户。


随着全球数字化进程加速,软件行业蓬勃发展,开发者人数不断攀升。根据 Evans Data Group 2019 年报告,全球开发者规模达 2390 万,预计 5 年内将增长至 2870 万。


任晶磊认为,研发效能的指标有五个维度:讨论统计、issue 统计、代码统计、AST(抽象语法树)分析、业务分析。


前两层反映的是开发者的活跃度,具体包括事务积压、交付周期、吞吐量等指标,这类产品一般接入了 JIRA 等事务追踪软件的数据,着眼于开发活动中的动作。也有一些产品做的是第三层,着眼于开发活动的成果,会接入代码库去看代码提交中做了什么,比如提交了多少行代码、是新代码还是旧代码的重构、是否反复修改代码。


“我们做的是第四层,更深入地去理解代码库中某次代码提交的含义,比如增加了多少逻辑复杂度、对整体软件工程质量有什么影响、反映出开发者怎样的技能等等。通过这种自下而上的分析,我们可以给出开发效率、软件工程质量、组织与人才发展等三个视角的数据呈现。”


Merico 实行远程办公, 近 40 位员工分布在中国、美国、巴西、法国、加拿大、印度的 15 座城市。当然,这家公司也使用 Merico 工具管理团队的开发效率。


今年 6 月,Merico 宣布完成数千万元 Pre-A 轮融资,由 GGV 纪源资本领投、联想之星及前轮投资者 Polychain Capital 跟投。获得融资后,Merico 将进行产品开发、服务优化和团队扩张,更好帮助客户以数据驱动管理软件人才。


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-09-18 21:014125

评论

发布
暂无评论
发现更多内容

博睿数据多点开花,数据链DNA加速走进金融、医疗、政企行业

博睿数据

数据链DNA

2021年10年后端开发程序员最新《C/C++Linux 服务器开发》学习路线总结,建议收藏

奔着腾讯去

学习 服务器集群 Linux服务器开发 C++后台开发

【建议收藏】B站上有哪些值得反复观看的Java视频教程?

格致君的planB

4月热搜:揭秘金融级人脸实名认证解决方案背后的技术硬货

百度大脑

百度

仅需几行代码轻松实现第一人称行走

ThingJS数字孪生引擎

大前端 3D可视化 数字孪生

阿里架构师自爆“面试指南(泰山版)”所有的成功都不是白给的

Java架构师迁哥

hive交互的几种方式

五分钟学大数据

大数据 hive 5月日更

花重金购买的“Java面试知识点”真香,知彼知己,百战不殆

Java架构师迁哥

作为骨灰级MEME项目,Grin接下来会走向何方?

猫Buboo

一篇文章带你搞懂Python中的类

格致君的planB

一款优秀数据库中间件的不完全解析

Coder的技术之路

源码阅读 源码刨析 数据库中间件

架构训练营模块 4 作业 - 江哲

江哲

Matlab制作视频并转换成gif动态图的方法

格致君的planB

终于有腾讯云大神把困扰我多年的Redis(分布式锁、延时队列、位图、布隆过滤器、漏斗限流)全部讲清楚了

Java 程序员 架构 面试

比特币披萨节由来:11年前BTC首次在现实世界使用

meio

比特币

打破固有思维(十四)

Changing Lin

并发王者课 - 青铜 2:峡谷笔记 - 简单认识Java中的线程

MetaThoughts

Java 后端 多线程 并发 王者并发课

2021年4月券商App行情刷新及交易体验评测报告

博睿数据

一周信创舆情观察(5.10~5.16)

统小信uos

做了一个开源的在线互动教室,想分享给大家

千竹

开源 WebRTC 在线教育 在线课堂 互动白板

马斯克会在熊市周期里瞄准下一个百倍币么?

猫Buboo

区块链 狗狗币

浅谈 Serverless 开发和应用

网易云信

Serverless

Flutter 混合开发基础

网易云信

flutter

数字货币与加密货币、虚拟货币的区别

meio

比特币 数字货币 加密货币 虚拟货币

TypeScript 开发环境搭建

Emperor_LawD

typescript ts 520单身福利 520 单身福利

指挥中心可视化研判分析系统搭建解决方案

HarmonyOS 的分布式技术,让小朋友爱上涂鸦

科技汇

IPFS与 Filecoin的区别是什么?

meio

IPFS Filecoin

新垣结衣嫁了个“非典型性”程序员

小智

程序员 软件开发 日本

指挥中心可视化研判分析系统搭建解决方案

BOE(京东方)亮相世界智能大会 创新科技强势发力智慧物联新赛道

DT极客

为滴滴、头条量化研发效能和代码质量,他们有哪些秘籍?| TGO 专访_技术管理_王鸿智_InfoQ精选文章