QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

为滴滴、头条量化研发效能和代码质量,他们有哪些秘籍?| 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 将进行产品开发、服务优化和团队扩张,更好帮助客户以数据驱动管理软件人才。


2020-09-18 21:014981

评论

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

优化 20% 资源成本,新东方的 Serverless 实践之路

Serverless Devs

Serverless

ThingsBoard前端项目的安装与启动

echeverra

thingsboard

新闻速递 | KaiwuDB 亮相 DTCC 2022 线上大会并发表系列主题演讲

KaiwuDB

数据库

为什么新能源汽车上的IGBT会如此火爆?

元器件秋姐

半导体 新能源汽车 新能源 汽车芯片 功率半导体

HIFIVE音加加提供曲库、评分、修音功能的K歌SDK-iOS版本

曲多多(嗨翻屋)版权音乐

ios 泛娱乐 版权音乐 K歌 K歌SDK

2022高通人工智能开发者大会暨高通人工智能应用创新大赛颁奖典礼圆满落幕

科技热闻

Milvus 2.1.x 到 Milvus 2.2.x 升级实践

Zilliz

数据库 Milvus

处理中国式报表,一款合适的BI商业智能工具尤为重要

小偏执o

OpenAI掌门人Sam Altman:AI的下一个发展阶段

OneFlow

人工智能 深度学习 openai

CorelDRAW2023离线下载安装步骤

茶色酒

CorelDraw2023

节能降耗 | AIRIOT智慧电力综合管理解决方案

AIRIOT

物联网 智慧电力

最近大火的高性能计算ChatGPT究竟是什么?

GPU算力

深度学习 高性能计算, ChatGPT

激活海量数据价值,实现生产过程优化|智慧工厂系列专题07

EMQ映云科技

人工智能 物联网 IoT 云边协同 12 月 PK 榜

团队新人多,稳定性经验不足,研发质量怎么保障?|TakinTalks论道

TakinTalks稳定性社区

技术管理

BaseDet: 走过开发的弯路

MegEngineBot

深度学习 开源 目标检测 MegEngine BaseDet

GPR政务流程再造赋能数字政府建设

张磊

人工智能 大数据 数字政务 流程再造 BPR

2021最新百度Java岗四轮面试题,(三轮技术面+一轮HR面)

钟奕礼

Java 程序员 java面试 java编程

airserver2023免费中文版下载

茶色酒

AirServer2023

顶级大咖齐聚云端,赛意信息这场数字化盛宴不容错过

科技热闻

最新2021快手面试Java岗面经,成功手拿offer,开心到飞

钟奕礼

Java 程序员 Java 面试 java编程

Wallys/industrial M.2 card/DR9074E vs DR90746E/Minipcie /qsdk/qcn9074

wallysSK

QCN9074 QCN9024 QCN9072 qcn9064

沉铜/黑孔/黑影工艺,PCB该选哪一种?

华秋PCB

工艺 PCB PCB设计

FLStudio21新版有哪些新功能推荐?

茶色酒

FLStudio21 FLStudio21.0.0

知乎疯转30K+的微服务架构笔记,理论与实战齐飞!

小小怪下士

Java 微服务 架构设计

英特尔梁雅莉:拥抱数字时代,满足日益增长的算力需求

科技之家

阿里三面,讲讲不同场景下并发Map容器最优使用。凉凉送给自己

钟奕礼

Java 程序员 Java 面试 java编程

新一代云原生实时数仓 SelectDB 重磅发布!最全技术亮点解读都在这里了

SelectDB

数据库 云计算 大数据 数据仓库 云原生

中大型企业组织为什么要选择私有化企业IM?

BeeWorks

企业安全的移动办公平台应该具备哪些能力?

BeeWorks

APISIX Ingress 如何支持自定义插件

API7.ai 技术团队

Kubernetes 云原生 api 网关 APISIX Ingress Controller

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