HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

为滴滴、头条量化研发效能和代码质量,他们有哪些秘籍?| 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:014710

评论

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

ImageKnife组件,让小白也能轻松搞定HarmonyOS图片开发

HarmonyOS开发者

HarmonyOS ArKUI 3.0

服务器与普通台式机的对比及发展趋势

Finovy Cloud

gpu 云服务器 GPU服务器 GPU算力

新品发布 | OpenHarmony面向教育行业的发行版+大赛预告来了~

拓维信息

活动 操作系统 OpenHarmony OpenAtom OpenHarmony OpenHarmony 3.1 Release

没日没夜做需求,就能交出满分答卷吗?

LigaAI

敏捷开发 需求

Redis太难?阿里P8总结的Redis灵魂拷问70题解析,还不懂我就哭了

Java架构追梦

Java 后端开发 程序员面试 Redis 数据结构

全网最细的短网址系统设计与实战

星牛君

MySQL redis 布隆过滤器 Java EE

多商户商城系统如何对接电商收付通?

CRMEB

IDC最新报告:澳鹏AI全生命周期数据解决方案在市场上具独特优势

澳鹏Appen

人工智能 大数据 数据标注 训练数据 数据训练

yarn add electron安装失败

空城机

YARN Electron

Flutter 网络请求 Dio 拦截器详解

岛上码农

flutter ios 安卓开发 4月月更 跨平台应用

Tapdata Cloud 2.1.4 来啦:数据连接又上新,PolarDB MySQL、轻流开始接入,可自动标记不支持的字段类型

tapdata

SaaS 云数据库 Real Time DaaS polarDB DaaS

“数聚赋能”,让实时数据中台成为惠企、惠民政策服务应用的源头活水

tapdata

数据中台 数字政务 实时数据 智慧政务

直播回顾:SIMD 指令集在 OpenJDK 中的现状与未来 | 龙蜥技术

OpenAnolis小助手

Java Openjdk simd arm 龙蜥社区

一文看懂博睿数据AIOps场景、算法和能力

博睿数据

时序数据库 VS 工业实时数据库

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

看端点科技如何以行业实践探索企业数字化转型新路径

科技热闻

向着阳光的华为,淬火而行的哪吒

脑极体

算法交易的最佳编程语言是什么?

非凸科技

rust 编程语言 交易系统 策略

首版架构师全栈”成长笔记“一经发布就获得一致好评,我不允许你没看过

Java架构追梦

Java 程序员 java面试 后端开发

基于云效AppStack实现环境管理 | 开箱即用

阿里云云效

阿里云 研发管理 研发 应用交付 环境管理

最佳实践 | 运维效率提升10倍的秘诀

星汉未来

DevOps 云原生 智能运维

观测云新增俄勒冈站点,布局全球可观测服务网络

观测云

「可视化案例Vol.3」数字孪生可视化园区,开启园区智慧管理新篇章

ThingJS数字孪生引擎

物联网 可视化 数字孪生

博云首批通过欧拉技术测评,联合解决方案通过验证

BoCloud博云

新闻

SqlServer主备构建探索

Lane

SqlServer

【国产】ETL自动化调度运维管理平台 TASKCTL 8.0 分布式部署

敏捷调度TASKCTL

Docker DevOps 国产开源 大数据运维 TASKCTL

2022,「大厂云」还在找新着力点

ToB行业头条

Android C++系列:vector最佳实践

轻口味

c++ android 4月月更

浅谈商业模式---《北大-真格创业课》笔记(30/100)

hackstoic

商业模式 创业公司

高级Java面试经验总结:多家大厂简历优化+面试题目+面经+薪酬等

Java架构追梦

Java 程序员 面试 后端开发

TOGAF 10新鲜出炉了!

涛哥 数字产品和业务架构

企业架构 TOGAF

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