安居客研发效能度量体系介绍及设计方案

1

背景

研发效能是目前互联网和传统软件企业都高度关注的领域,其核心目标是:更高效、更高质量、更可靠、可持续地交付更优的项目。随着安居客技术研发团队的人员规模不断地扩大,业务对研发效能的期望越来越高,业务实现复杂度的提升,技术不断细分化,研发管理面临的问题越加复杂。基于这种情况,安居客QA团队在围绕着研发效能度量体系进行探索,经过几年的建设,目前整个体系已经形成,相应的平台也搭建完成。


2

度量体系建设

2.1 研发效能度量体系

现在一线互联网公司都根据各自团队成熟度情况,进行研发效能度量,以期实现持续的研发能力提升以应对日趋复杂的产品开发,而我们在进行度量体系设计的时候,根据安居客技术研发团队实际的情况以高效率、高质量、更可靠、持续地交付有效的价值为核心目标,进行度量体系搭建。

安居客研发效能度量体系从质量和效率这2方面,结合日常项目把度量贯穿到整个项目的周期,把项目周期划分成4个阶段(需求阶段、开发阶段、测试阶段、运维阶段),分别在每个阶段进行度量指标设计,通过在项目各个阶段中产生的数据,以项目、团队和个人为度量对象,进行一定的分析处理,生成可视化的度量界面,根据度量生成的不同维度数据分析定位到具体问题和需优化点,针对性的解决以达到最终目标。

下图是各阶段可获取的度量数据。质量度量在各阶段中分别以需求质量、交互过程质量、测试能力和最终质量为目标,在各阶段内对单个或多个组合而成的数据以不同度量对象分别生成度量数据,形成质量度量体系的搭建。效率度量是以每个阶段内的耗时、周期、频率等数据为度量标准,并通过项目作为主要度量对象,串联每个阶段内的单一度量数据形成整体的以项目为对象的度量体系。

度量体系的搭建,并不是指标越多越好,而是要根据团队所处的不同阶段,遇到的不同问题,以及当前需要解决的问题,在进行有针对性的度量指标选择和设计搭建。

目前安居客研发效能度量体系由质量度量、效率度量、团队数据和过程监控四部分组成。

1)质量度量模块主要以过程指标(开发阶段和测试阶段)和结果指标(运维阶段)产生的数据进行度量,根据团队情况制定度量数据的标准范围,通过配置转化成分数呈现展示。

2)效率度量模块侧重于以项目为主,使用项目的各周期阶段耗时和不同阶段之间工时比值作为对象进行度量,通过图表的方式进行展示。

3)团队数据通过统计个人数据,逐步聚合成团队、部门数据,以质量和效率度量中的度量数据为基础进行度量统计,并通过下钻的方式逐步细化,直到最小原始数据层,主要用于辅助定位质量度量和效率度量中发现的具体问题。以上三部分通过以图表为主,重点数据采用表格和数据查询功能相结合的模式进行呈现。

4)过程监控,存在于服务层用于检查统计数据的真实有效性和完整性,保证度量结果的准确性,通过各种不同的展示及通讯方式进行通知提醒,提高度量数据的准确性。

2.2 质量度量

主要通过项目中产出的各种数据,进行多种维度组合生成,并以图表形式展示为主:

2.2.1 Dev Bug日清率:24小时内解决bug的比例,体现研发修复bug的效率。

2.2.2 人均bug工时比:通过bug和工时2种数据度量生成。Bug是指团队在测试环境中产生的有效bug总数。工时是以项目排期数据为基础,在项目移交时,针对项目参与人员各自记录任务排期数据,包含有每个任务的时间跨度、具体需要消耗的时间以及任务所处的阶段等信息,利用时间的跨度和消耗的时间计算出每天的工时,在根据实际统计的时间段进行累加得到计算用的工时数据。

2.2.3 服务可用性:线上服务的稳定性指标,项目质量的最终体现,衡量线上质量的一个重要指标。

2.2.4 加权总分趋势图:把自定义的度量指标分别和对应的加权配置进行计算得到结果,通过结果的趋势图展示出各时间段整体项目质量的好坏

2.2.5 自测通过率:项目中测试人员写给研发人员使用的测试用例,需要研发人员在项目提测前完成测试用例并保证用例能够正常通过,以提高项目提测时的质量,保障项目高质量的进行。

除了这些单一数据的图表之外,还挑选一些对项目最终质量影响较大的数据指标:线下质量-过程指标、线上质量-结果指标。

通过映射把数据结果转化成分数,通过分数可以直观的看出单一维度质量指标的好坏,配置加权数据,把各项质量指标融合在一起,体现项目整体的质量情况,同样可以根据团队所处的不同时期对加权配置进行调整,侧重体现主要关注的指标, 在最终度量的时候通过分数找到需改进的部分,进行有效的提升。

2.2.6 质量度量指标:根据团队阶段的配置映射成分数及结果指标明细,根据表格中的数据分数寻找发现问题


2.2.7 雷达图:


2.2.8 数据分析案例:

单一数据分析

1. 过程指标中的异常项目,可以直接的看出在过程指标中项目质量的好坏,通过分析每个异常项目,对异常产生的原因和责任方进行分类整理,制定出相应的标准,形成指导文档,避免异常项目的产生。目前这个数据还是通过人工录入的方式进行记录,后续会根据产生的原因和分析出问题的度量数据进行关联,在出现有超过标准的项目时进行通知以人工确认的方式记录异常项目。

2. 结果指标中的线上bug及时修复率,当线上服务质量较差,及时修复率低时,先筛选出超时bug,确认问题目标,通过bug分析中的时间轴对bug的生命周期进行追溯,定位主要耗时的部分,分类汇总原因后针对性解决。


组合数据分析

EG:某一段时间内自测通过率的分数很高,而线下bug数据或bug工时比分数很低时,可能出现的问题。

1. 查看项目的自测用例数据,是否有覆盖bug较多的项目。

2. 项目的测试用例是否覆盖主要逻辑,且及时提供给研发自测。

3. 正常排期项目,非特殊类限时项目。

2.3 效率度量

效率和质量度量一样按照项目周期划分为4个阶段,其主要的指标分别是:交付吞吐量、需求各阶段交付周期、开发测试工时比、资源分布

2.3.1 交付吞吐量: 统计周期内交付的需求个数,即单位时间交付的需求个数,体现团队承接项目能力的指标

2.3.2 需求各阶段交付周期:从需求提出,到开发,测试,上线,最终验收通过的各个阶段的时间周期,反映了整个团队对客户问题或业务机会的交付速度。

2.3.3 开发测试工时比: 衡量一个项目开发和测试资源投入占比,作为一个项目中测试资源效率的参考指标

2.3.4 QA消耗开发资源情况:周期内研发测试项目工时和总工时占比, 同样是研发测试项目消耗资源占比

2.3.5 资源分布: 统计周期内业务线技术资源分布情况,可衡量不同业务线,模块,重点需求资源的投入和产出比

2.3.6 效能数据分析:

1. 各阶段交付周期的走势图能够直接体现出每个项目在各阶段的耗时,通过相同字段的环比数据和各阶段的绝对数值确定异常周期数据,然后对周期内数据异常的项目进行定位分析。交付周期图中等待开发周期和等待测试周期的数据,体现团队资源情况,结合吞吐量图表,反映出团队消耗项目的能力及阶段周期内的效率情况。

2. 开发测试工时比和QA消耗开发资源这2个图表,反映出QA人员在测试项目中的效率情况和参与研发项目占比。结合项目情况和工时明细数据,可衡量QA实际项目中的效率情况。

2.4 度量应用

借助平台呈现的各种可视化度量数据,能够更容易地对数据进行比较、分析和发现问题。

不同类型的数据采用不同的方式进行度量,通常可以归为3类:

1.直接通过图表展示中各周期的环比数据作为依据,环比数据超过一定幅度的可以归类问题数据,如线上bug数、需求各阶段交付周期等。

2.有些图表是数据越高越好,根据图表中的绝对值作为度量问题的依据,如服务可用性、自测通过率等。

3.根据团队各自的成熟度情况,对部分类型数据制定标准区间,根据标准把超过区间范围内的数据作为需分析的问题,如开发测试工时比、人均bug工时比等。

确定问题数据后,通过平台数据分析功能对问题数据进行深入的解析。团队人员的数据可以利用平台的下钻功能,把数据拆分到团队、个人及具体的项目中,不断缩小问题数据范围后定位具体原因;项目相关数据可以通过产品、业务线及模块等项目字段的分类展示,缩小范围到单个或多个项目中,在对项目进行逐个分析。

分析到具体问题之后,可以对分析结果进行归类:

1.过程指标相关的问题通常可以通过制定流程规范,设置流程节点的方式解决,如自测用例数据低,可以增加测试用例评审;项目质量差,增加自动化任务检查等。

2.结果指标相关的问题通常使用技术手段解决,如服务可用性数据较差,增加性能测试保障服务的稳定;线上bug及时修复率问题,利用自动通知的方式提醒处理人员及时处理。

3.还有部分问题则需要长时间的持续关注,如需求各阶段交付周期,公司各阶段都会有侧重的业务,某些数据的激增可能是因为业务量的增加而增长,长期的关注才能反映出整体数据的实际情况。

4.剩余的问题中也存在可以不用解决的情况,如交付吞吐量,不同周可能相差1,2倍的数据,数据会被项目大小、项目要求的上线时间、公司业务策略、公司活动等各种不同因素的影响。

在度量平台中有部分数据是来源于人工在各系统平台操作生成的,为避免因数据准确性造成的数据偏差,在度量平台中增加过程监控,通过度量系统、微信公众号、邮件、58IM等各种不同方式的提醒,提高度量数据的准确性和及时性。使用者可以通过系统首页的数据提醒,确认个人或团队度量数据是否完整,以保证查询到度量结果数据的准确。

度量系统首页提醒:


3

架构设计

度量平台的主要作用便是将各种需求、研发、测试过程的离散数据进行有机的组合计算,最终形成各种客观指标数据,再配合多种展现方式,形成具有数据分析能力且可视化的页面数据展示系统。

离散数据主要来源于需求、研发、测试等多个环节和相关工具系统,首先要解决如何方便的进行离散数据采集和存储。通过将离散数据进行有机组合,形成有效的研发效能度量基础数据。最后把基础数据进行不同维度的组合和分析处理,通过多种形式展现,便于用户发现和分析问题。本次研发效能度量平台设计方案如下:


3.1 数据采集

一、度量的离散数据来源于各个不同的系统:采集的策略分为3种:

1. 原数据可以直接作为基础数据记录,eg:bug相关数据,用例相关数据等;

2.需要进行逻辑计算或同类数据合并记录,eg:项目中计算出各阶段的时间,排期任务类型分布等;

3.此外还有些数据来自公司安全性要求高的系统,在获取数据的时候就不能直接的记录保存,需进行相应的数据转化抽象需要的度量数据进行记录,eg:考勤系统,运维系统等。

采集的频率根据度量展示的紧急性,采用不同的更新机制,分为实时更新和固定时间更新,同时每天都会进行全量数据检查,保证数据的准确性。

二、采集主要是通过API,消息队列的方式进行数据采集,将离散数据转为结构化数据并建立各数据间的关联关系。

API采集:通过API的方式可以定时的主动请求获取数据,同时进行数据的初始化处理,能够在异常情况下,主动重复获取数据。

消息队列:对于一些实时变化的数据通过消息队列的方式进行采集,能够保证数据的时效性和及时性,提升度量数据的有效性。

三、采集的数据经过技术清洗,整合相同字段名和数据类型,以人的维度和项目模块的维度落表记录数据。在数据计算时通过聚合可生成不同维度的度量数据,深入分析时有足够明细数据支持,也便于后期数据维护处理及度量逻辑优化。

3.2 数据计算

度量的数据和指标是会随着团队所处时期不同而会有指向性的偏移,也就是度量的计算指标会不断地变化。通过度量数据计算层把指标内容和分值比例作为配置项,单独封装计算逻辑,通过配置调整度量的指标和分值比例,满足不同时期团队度量的需求,提高度量指标变更的效率。同时把计算后的数据,根据项目、团队、个人等不同维度统一汇总成基础数据,用于数据下载。

3.2.1 数据分析

在数据计算的基础上,通过以图表为主,辅以重点表格的形式进行展示,将各种结果数据进行相关的组合、关联生成展示数据,根据不同的指标类型划分为:质量度量和效率度量。

质量度量:线上问题数,线上问题修复效率,系统崩溃率,服务可用性等。

效率度量:团队吞吐情况,交付效率,人员效率,业务线情况等。

数据支持时间和不同维度对象的交叉展示,以最小维度天级别进行聚合生成缓存,保证大数据量展示时的页面响应效率。度量平台除了具备数据展示的功能外,还具备一定的数据分析能力。

3.2.2 趋势分析

通过生成,周、月、季度等维度的数据,进行整体趋势的展示,分析某项指标的走势和环比情况,可以快速定位某项指标的异常变化

3.2.3 关联分析

通过项目的多种指标组合分析,如项目交付周期,项目各阶段的周期,等待消耗时间等关联分析,可以更客观的评估整个项目周期的情况是否合理。

3.2.4 下钻分析

按照聚合维度不断细化,可以从部门->团队->个人,也可从业务->产品->模块等不同维度的细化,更快速的准确定位问题和原因。


4

总结

效能度量数据是没有具体化的标准的,不同团队使用的数据也不尽相同,本文中只是叙述了最适合安居客当前阶段的研发效能度量体系。后续安居客将会在现有的数据分析基础上增加智能化的分析,实现自动生成报告和分析结果的能力。如果大家发现文章中的错误或者有更优的实现方案,欢迎大家一起交流指正。


作者简介

蔡孙君 HBG-安居客质量保障部-高级测试工程师 主要负责HBG全景业务质量保障和度量系统的搭建和维护工作

来源:微信公众号:58技术

出处:https://mp.weixin.qq.com/s/LZdS4yWD8j1-RcPjb_rxwg

展开阅读全文

页面更新:2024-03-12

标签:度量   工时   效能   设计方案   周期   团队   指标   体系   阶段   质量   测试   项目   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top