深度代码分析在研发效能度量中的落地场景

本文内容节录于思码逸Merico CEO 任晶磊在51CTO 与腾讯云TVP 精心打造的 LeaTech 全球CTO领导力峰会进行的主题分享。基于对研发效能领域的全面认知,他分享了深度代码分析在研发效能度量中的落地场景,本文结合演讲内容对研发效能度量总结了三点重要内容,

深度代码分析在研发效能度量中的落地场景

本文共计2300字,建议阅读时间:4~5分钟。

阅读本文你将收获:

1、什么样的程序员是靠谱的?

2、合理量化评估程序员工作量指标:代码当量

3、研发效能度量中的三个应用场景

前言:本文内容节录于思码逸Merico CEO 任晶磊在51CTO 与腾讯云TVP 精心打造的 LeaTech 全球CTO领导力峰会进行的主题分享。基于对研发效能领域的全面认知,他分享了深度代码分析在研发效能度量中的落地场景,本文结合演讲内容对研发效能度量总结了三点重要内容

以下为任晶磊演讲实录:

管理学大师Peter Drucker曾说:“无法度量,就无法管理与改进。”作为技术管理者,提升研发效能是永恒的追求。因此,研发效能度量是必不可少的工具或能力,而代码分析在其中扮演了重要的核心角色。这篇文章将介绍深度代码分析在研发效能度量中的三个应用场景。

01 什么样的程序员是靠谱的程序员

先思考一个问题:什么样的程序员是靠谱的程序员?你希望你的团队成员是怎样的?关于这个问题,个人很认同ThoughtWorks徐昊的一个观点:“估点是靠谱的,那么这个人就是靠谱的。”用大白话讲,你说你用一天半时间能完成一个任务,届时如果可以保质保量交付,那么你就是靠谱的。

从管理的角度来讲,如果团队的所有成员都能精准地预测工作时长,产品的交付和团队运转一定是行云流水。当然这只是美好的设想,现实中无法做到这么理想的状况。

那么怎样让估点靠谱、让程序员靠谱?估点的具体技术很重要,但从技术管理者的角度说,更重要的任务是建立机制,让度量能够真正作用于研发流程的改善。而优秀的机制应当是鼓励正反馈、自进化的闭环。

我们知道,研发中迭代始于计划,迭代的末尾则需要回顾研发过程的好和坏。进行有效回顾,将改进反馈纳入下一迭代的规划中,才能形成闭环,让团队的水平不断提高。

然而现实情况下我们怎么做回顾呢?通常的做法是召集研发团队一起开会,每个人轮流总结迭代中的表现。这些讨论大多是根据主观感受来进行描述,天然地限制了回顾的有效性,也难以归纳出有效的反馈意见。此外,随着团队规模扩大,对彼此的工作了解不足,回顾的效果会进一步弱化。

如何产出有效的反馈,形成闭环?工时和代码行数等侧重“活动”的指标,在侧重“成果”的会议上明显是不适用的,准确性上会出现明显的偏差。(关于指标间的差异,请参见我们之前梳理出的 一文揭秘研发团队的自驱力密码:绩效考核指标 。)

02 如何合理量化评估程序员工作量

思码逸希望用技术来解决这个问题。我们的做法是引入一个新的指标『代码当量』(DevEquivalent),来度量大家的产出代码的复杂度。代码当量与故事点形成了前后呼应——故事点是在开始干活前评估任务的复杂度;而代码当量是活干完以后,从代码层面进行的回顾。

在技术上如何实现这个指标?这里涉及到两个概念,一是『复杂度』,有点类似于算法的时间复杂度;二是『抽象语法树』,编译就是对源代码进行解析-构建抽象语法树-生成字节码的过程。所谓代码当量,简单来说,就是代码在抽象语法树这个数据结构上的复杂度。

代码当量的优势在于:

  1. 排除源代码级别的噪音,比如空格、死代码等;
  2. 大部分程序分析和语义理解技术都是构建在抽象语法树这一数据结构上,相比于解析更靠后阶段的字节码、机器码,抽象语法树更能反映出程序员本身的表达;
  3. 可应用编译优化技术,使评估更加准确。

综合起来,基于代码分析的代码当量能够达到一些简单统计所达不到的效果。那么如何将其应用于研发效能回顾的具体场景呢?

03 研发效能度量中的三个应用场景

场景一:估点回顾,对研发计划进行校准

在迭代回顾会议上,研发团队需要将实际开发工作量与前期估点比对,看看是否有显著差异。这个时候,代码当量指标就可以清晰反映出已完成工作的复杂度。

以下的产品截图是根据开发者来进行估点和代码当量的对照,这是角度之一;另一个角度是根据事务或 issue 来进行对照。

这个数据具体怎么看?一般有两种方式:

  • 如果研发团队成熟度较高,可以计算该迭代或近几个迭代内,平均每个故事对应多少代码当量,乘以每个人在计划时提报的故事点数,再与实际代码当量进行对比
  • 如果研发团队的成熟度没有那么高,则可以对故事点数量进行排序,找出明显的代码当量偏差(图中标红的几项),再对偏差进行具体分析。

通过这种方式,研发团队能快速发现计划与实际开发中的偏差,分析原因并校准,不断提升开发团队预估和计划的有效性。

场景二:建立简单基准,提升研发稳定性

谈到研发成熟度就不得不提到CMMI,这个模型虽然传统,但其推崇的理念还是很有参考价值。CMMI第四级(量化管理级)的要求中就包括“数据驱动的组织目标”与“用基线控制项目过程”。

在实践中,CMMI落实的难度较高,但这些理念可以以低门槛的方式落地:根据过往的研发数据,用简单的统计手段找到简单清晰的基准(比如拟合线、上下限等、离散系数等),进而检验研发过程进行稳定性。比如,在下面的例子中,我们很容易就能看出右图团队的整体研发稳定性更优,但也需要对其可能存在超负荷工作的情况进行分析。

在很多时候,研发稳定性的重要程度高于产出量的绝对值。基于这个简单的基准,研发团队可以化繁为简,及时复盘分析波动异常情况,并给出相应的指导、建议或要求。

场景三:横向对比,为度量结果找到参照系

组织内部有多个团队/项目,很自然就会希望将相近的团队/项目对比,分析变化趋势的差异。从下图来看,折线靠上的三个项目的开发进度、阶段大体是相似的,那么就可以拿来进行更细致的比对。除了代码当量本身,还有其他指标是可以拿来对比的,比如代码复用度。提高代码复用度是软件工程的关键目标之一,不仅能减少重复造轮子的浪费,也有助于提高软件制品的可维护性。

除了内部对比,研发团队可能也希望与同行业相近项目/团队对比。我们的产品中也提供了与近似开源项目对比的功能,研发管理者可以迅速了解团队当前的研发水平是怎样的。

内部与外部的横向对比,是将度量结果放进参照系中,进而转化为更有针对性、更加明确的改进建议,帮助研发团队获得整体的成长。

如果您想了解更多关于本次演讲的内容,可以联系思码逸团队获取演讲视频和演讲PPT;

思码逸 Merico 研发效能分析平台,致力于帮助研发团队解决研发效率、研发质量和人才发展三大痛点,提升研发效率与软件工程质量;

如果您想要与思码逸团队交流,欢迎在网站留下联系方式,我们将在24小时内回复。

与先进研发团队并肩

“软件工程在工业生产中越来越重要。一方面,软件供应链快速演进,软件研发越来越复杂;另一方面,市场的快速变化对研发能力提出各种新的要求。而思码逸作为客观的研发效能平台,立足于对软件开发给出创新性的解释,并尝试将研发效能指标标准化。这对由管理者视角、业务视角、人员视角等更多维度更加全面地看待开发过程有很大帮助。”

Mars Sun

腾讯CODE平台产品负责人

“看清组织研发过程、合理有效地进行研发效能度量是牵引组织研发效能提升的关键。思码逸实现了深入代码语义的AST分析能力,引入代码当量将常规的基于代码行的相关研发效能度量方式提升到了一个新的高度,并通过代码层面的分析提供了研发人员的技术栈相关的标签数据,为组织研发选型提供有力的数据支撑,在行业内有很强的借鉴意义!”

杨永强

原滴滴出行代码团队技术负责人

“相信很多产品技术团队把研发效能提升列为重要的目标。然而,到底什么是好的研发效能,却很少有人能够表达清楚,而代码度量指标种类繁多且相对浅层。如何有效对程序员的工作合理量化测量,思码逸团队围绕每次代码提交对应的抽象语法树的变化进行有效评估,去除了代码中的一些干扰和噪音,为我们提供了新的思路和相对准确的一种测量基础。”

唐洪山

原京东科技研发效能部

“思码逸研发效能平台的专业性令人兴奋,非常适合中国快速发展的互联网软件企业使用。很好的帮助我们解决了团队和项目快速增加过程中遇到的研发效能度量、研发质量规范和人才组织发展的问题。后期的咨询和落地解决方案针对性强,问题分析和解决专业、高效。”

应阔浩

自如基础架构部总监

“在越来越多的企业把数字化转型作为核心战略落地主要抓手的大背景下,思码逸作为基于源代码并扩展至项目管理领域的研发效能平台分析工具,能够为企业数字化转型提供明显助力。和讯网在和思码逸合作共创的2年时间里,2020年主要集中于降本增效领域(提升下限),当年技术部的年度绩效位列全公司第一;2021年主要集中于价值达成领域(提升上限),当年技术部被公司评为年度优秀团队。”

杨扬

和讯网CTO

“开发人员状态有起伏是很正常的。采用思码逸的研发效能度量工具,我们不仅能及时发现表现优秀的开发者并给予激励,也能快速发现工作有待改善的开发者,给他们提供精准的指导与帮助,推动整个团队共同进步。”

朱文雷

长亭科技CTO

“思码逸在代码度量层面给出了创新性的解释,给技术管理者带来全新的研发效能度量提升思路和指标抓手工具,看清团队研发效能的短板,知道该往什么地方提升和改进。结合历史数据、行业数据的比对,让管理者、开发者可以看到努力的成果,并且用数据说话,研发团队日益精进。”

周彦斌

云货优选 研发部门负责人

“研发成果的度量可以说是一个世界性难题,开发者的工作之间内容不同、起点不同、用户不同、代码质量不同,既难以简单量化,也难以横向比较。思码逸作出了一个非常有意义的尝试,它一方面找到了有效的研发效能度量方法,另一方面打通了企业边界来开展数据比较,为研发数字化变革提供了一个非常有意义的新角度。”

谢超平

索贝数码副总裁/总工程师

在数字化的浪潮里,研发效能的高低是企业的核心竞争力。我们面对的产品研发都是脑力工作者,研发效能的度量也变的更复杂和有挑战性。思码逸的深度分析系统,用代码当量来更科学的评估开发的工作量,有效避免人为对代码量的干扰。通过MARI模型产出分析报告,帮助我们在公司内研发效能的推进和落地提供新的思路和方法。

谢超平

王蕾 贝壳工程效率负责人

长期以来,我们一直努力在复杂的市场环境中保持和不断提升研发效率及质量。思码逸为我们提供了重要的量化工具,较传统量化方式更客观和实用。目前思码逸的量化结果已经成为我们评价和提高研发效能的重要组成部分。

谢超平

妙盈科技联合创始人&CTO 刘涛

我们的客户

打开研发管理黑盒,数据驱动研发效能
立即试用
立即预约
在线客服
扫码添加咨询微信
售前电话
在线客服
免费试用
扫码添加咨询微信
长按二维码下载

取消