建立数据指标体系,推动 DevOps 全链路度量闭环
作者简介
顾黄亮,十年研发运维经验,涵盖基础架构、应用架构、数据库、DevOps,有互联网,电商,金融从业经历。专注于 DevOps 在企业中的应用和落地,致力于企业智慧运维体系的打造。参加多个行业、国家标准的编写,《开源许可证使用指南(2018)》作者之一,国标《研发运营一体化(DEVOPS)能力成熟度模型》作者之一,《企业IT运维发展白皮书》作者之一,曾供职于航天晨光、上汽集团云计算中心,现任苏宁消费金融安全运维部负责人。
前言:
上一篇文章《苏宁消费金融在DevOps阶段度量设计的落地》中,我们提到金融行业的信息化和数字化的进程不断加快,促使IT部门的敏捷交付和精益运行的能力急需提高,因此 DevOps 的全链路度量体系也应运而生,建立健全的度量体系的需求在 DevOps 领域具有普遍性,有助于在更大范围内快速实现可度量的价值交付,拓展了业界的 DevOps 适用范围,有助于更好提升组织级的质量和效率。
一、指标体系的作用
二、数据指标是什么
为啥需要数据指标,根据度量的三位一体方法,点、线、面。度量的点,管理者需要帮助个体和团队提升交付能力,推进既定的时间点完成目标达成的任务;度量的面,管理者需要控制风险,在度量数据的配合下,形成数据趋势性的结果和目标达成的里程碑的高度契合;度量的面,管理者需要根据度量结果来进行资源的动态调配,梳理标杆,帮扶落后,同时进行团队和组织的横向考评和调整。
通过度量的三位一体方法,最终达到优化的目的。从上述的方法中,我们可以得出一个结论,数据指标是度量体系最直接的支撑,也是数字化的底层结构,数据指标存在的意义就是对抗不确定。
回到我们面临的上述问题,可以这么回答,5天后正常按计划上线没有问题,有20%的需求优先级较低可以延后,可以调剂出300人天的资源配给,这部分需求已提供准确的运营测算,上线后可以达到预期的效果,这个版本有时间进行二轮回归,能够覆盖95%的问题,能够保证投产质量。如果我们这么说是不是觉得很爽快,这就是数据指标的直接用途。
三、数据指标体系是什么
四、数据指标体系五大关键要素
1、全局指标
2、细分指标
以 DevOps 交付流水线为例,项目经理负责管控整个交付流程,所以项目经理除了把控项目进度和项目风险外,相应的全局指标应该包括交付效率、交付质量、交付能力,交付效率为了端到端的快速的交付,交付质量为了端到端的质量交付,交付能力为了提高工程效率达到高效的持续交付能力。
项目经理和产品经理、开发技术经理、测试技术经理、运维技术经理形成矩阵式管理,因此整个交付阶段的全局指标应该分解到需求、开发、测试、发布、运维各个关键节点中。每个关键节点又有各自的全局指标,如需求交付周期、开发交付周期、需求交付吞吐量。下面列举在DevOps的全链路交付流水线中,全局指标和细节指标的一些对照关系。
全局指标 | 二级指标 | 三级指标 |
交付效率 | 需求交付周期 | 需求数量 |
需求交付吞吐量 | 需求状态分布 | |
需求颗粒度 | ||
开发交付周期 | 代码库数量 | |
开发能效饱和度 | 代码提交量 | |
代码复杂度 | ||
代码重复度 | ||
测试交付周期 | 测试用例数量 | |
缺陷解决时长 |
全局指标 | 二级指标 |
交付质量 | 需求评审通过率 |
需求变更率 | |
需求价值达成率 | |
代码评审通过率 | |
单元测试覆盖率 | |
代码扫描问题数 | |
代码提测成功率 | |
缺陷密度 | |
缺陷逃逸率 |
选择主指标不同,拆解细分指标也不同,如上图的逻辑,如果选择个人能效作为二级指标,往下拆解的细分指标一般为代码提交量、代码重复率、代码注释率,相对于的还有承接需求数,承接任务数等细分指标作为关联。如果选择个人代码质量,往下拆解的还有代码评审通过率、代码提测成功率、bug解决数等指标。
但有些指标并非越大越好,在细分指标领域,存在较多的虚荣性指标,如研发阶段的人天代码量指标,需要跟代码注释率、代码重复率、冒烟通过率、bug数等指标相结合,属于颗粒度较细的过程指标,在度量上需要更为审慎。
3、过程指标
4、分类维度
需求分析时长 | 需求评审时长 | 研发排期时长 | 开发时长 | 测试时长 | 部署时长 | 提交验收时长 | 验收处理时长 |
5、判断标准
五、结语
在《苏宁消费金融在DevOps阶段度量设计的落地》一章节中,我们讲到,通过DevOps交付全链路的度量,不断的优化交付链路过程中的问题和缺陷,从而确保度量设计的价值输出。对于软件交付来说,提高软件交付的质量和效率不是根本目标,而通过提升软件的价值交付,来促进产品达到商业目标才是最终的目标。因此构建数据指标体系也是为了构建 DevOps 度量体系,数据指标体系是度量体系的前置条件,所以在度量体系的范畴内,我们也遵循相应的准则。
1、明确工作目标
明确工作目标,应具备主指标清晰的效果。在此之前,我们需要了解做指标为了什么,指标能够赋予我们什么,先把主指标的管理和优化的定位考虑清楚,后续的判断标准才能确定目标,相应的细分指标对应哪些管理流程。
2、清晰的判断标准
在做工程效率领域,总有一个参照物,而这个参照物能够返回你一个明确的结果,好或者是待改进。因此一个清晰的判断标准很重要,决定了你所看到的分析结果是一堆有用的数字还是一堆花花绿绿的数字。在 DevOps 度量体系内,涉及到项目后评价,一方面能够完成成本的复盘,另一方面也能对过程管理中的判断标准进行结果的回溯,因此判断标准是不断演进和优化的。
GNSEC 2020 全球新一代软件工程
限时峰会门票免费领
仅限 15 名
长按识别二维码报名 ▲
一文弄懂 Gitflow、Github flow、Gitlab flow 的工作流
一个成功的微服务,这 9 个要素必不可少~
从技术小白到团队 Leader,女工程师的逆袭之路!| DevOps 专家王晓翔专访
“DevOps 时代”公众号诚邀广大技术人员投稿,
点击阅读原文,访问 GNSEC 大会官网