本文摘自《软件研发效能权威指南》章节中内容
数据驱动不是万能的,没有数据驱动是万万不能的,代码评审活动开展也需要数据作为驱动。
数据分析的六个步骤:明确分析目的和思路、数据收集、数据处理、数据分析、数据展现和报告撰写,只有将每一步都做到位,数据才能起到真正的驱动作用。
不同团队的代码评审活动开展成熟度不一样,从CR发起、CR评论、CR颗粒、评审状态、评审投入等量化指标的设计中可以发现流程活动环节中的问题并改善代码评审的活动开展。
Python自动化数据分析是一种成本较低,功能强大的数据分析实施工具。
背景介绍
代码评审(Code Review,CR)是代码质量保证活动中非常重要的一个环节,该活动的开展对提升产品质量和工程素养及开发人员之间进行技术分享和交流起到重要的促进作用。
CR活动的开展程度需要量化数据做参考,比如,腾讯公司内部的代码管理平台提供了CR开展的原始数据,可以按照组织结构查看或导出每一个发起CR的详细信息和每一条评论开展的信息。但是,数据要产生价值,还需要做进一步分析。
相关组织在2020年就开展了对CR数据分析和报告的尝试,解决了CR数据从0到1的问题。但当时由于历史原因,尚未实现自动化,并且数据分析指标和维度,以及数据分析方法和模型选择有待优化。同时,从数据展现和报告撰写来看,数据图表展现围绕痛点表达的意图不够明显。
这里最大的问题是全部手工开展,每个月外包人员使用代码托管平台导出数据进行分析和展示及报告制定,要完成20多个业务报告处理,保守估计需要大约每个月7人天×2的人力投入,并且数据很容易出错。
由此看来,无论是CR指标和指标维度,还是数据展示方法和样式、报告可视化及自动化方法,都值得探索优化。
CR数据分析设计
01 CR数据分析过程
下面重点介绍用数据分析的方法保持或改善CR活动的开展,这需要从数据分析典型的6个关键步骤说起,看看如何用科学的方法挖掘并展现数据价值,将数据背后的故事讲述出来,达到数据驱动的目的,如图12.5.16所示。
图12.5.16 数据分析的6个关键步骤
(1)明确分析目的和思路:明确度量分析目的和思路至关重要,首先要回答几个为什么:
1.为什么要开展CR数据分析工作?
CR活动是研发过程中的一个关键活动,我们希望通过了解活动的开展状态,促进该活动的推广实施。
2.从哪些角度分析数据?
CR活动包含发起和评论开展活动,一般是先观察发起情况,再观察评论情况,同时CR的颗粒度及开展过程也需要关注。
3.指标设计要注意什么?
除了表征开展情况的绝对指标,还需要看人均数、每日开展等相对指标进行数据观察。
4.分析维度要注意什么?
时间对比、组织结构之间的对比、特殊人群如TL的开展,以及每个开发人员的开展情况等。
5.用什么分析方法最有效?
趋势分析看当前状态和未来走势;对比分析看组织间的开展;结构分析看详细构成(好的原因是什么?哪部分贡献的?哪部分开展没有按照预期进行?);漏斗分析看CR活动在哪个环节不容易执行。
6.数据分析报告如何有说服力?
图表要清晰、有效、可视化强,以达到传递信息引发和改进行动的目的;数据报告要论证充分并给用户总结问题,以准确传递信息,达到推动、改进的目的。
数据分析是有成本的,以上都是为了回答为什么要做数据分析的问题,以及采用什么样的数据分析思路能够达到目的,也就是数据分析实施步骤之前的数据分析设计工作。
(2)数据收集和数据处理:用于本节CR数据分析的数据源来自代码托管平台,有多种方式导出数据。自动化之后,先通过API接口读取平台数据,然后将收集到的数据进行加工、整理,用于后续的数据分析工作。
(3)数据分析:在“明确分析目的和思路”的阶段,就需要确定合适的数据分析方法,其直接决定数据价值挖掘的程度。数据分析的基本方法有对比、细分、预测等,它们大多数是通过软件完成的,这就要求数据分析师熟悉常用数据分析工具的操作,如Excel、SQL、Python等。
ÿ