【华为云技术分享】解析数据治理在过程可信变革中的运作流程-程序员宅基地

技术标签: 数据可信化  数据分析  数据治理  华为云  大数据  技术交流  

摘要:本文针对“数据牵引改进,工具固化规范”这一思路在业务团队落地过程中的动作流程进行详细阐述,并明确了支撑整个流程的关键角色定义和组织运作形式。

 

目的

为实现云服务开发的过程可信,需要基于数据对各个服务产品部的可信变革动作进行数据采集、进展可视、目标牵引、能力评估,最终用数据反映目标达成。与传统的“基于数据晾晒驱动业务团队改进,6+1指标度量”的运作方式有本质的区别,我们是基于统一的作业工具上产生的客观数据呈现,识别研发过程中基本的流程断裂点和质量缺失动作,和业务团队达成一致的目标后,把大部分改进动作固话到作业工具中自动化承载,我们称这个思路为“数据牵引改进,工具固化规范”,也就是我们不仅告诉业务团队哪里有问题,同时也要基于我们的作业工具,辅助业务团队一起改进完善。

本文针对“数据牵引改进,工具固化规范”这一思路在业务团队落地过程中的动作流程进行详细阐述,并明确了支撑整个流程的关键角色定义和组织运作形式。

数据牵引改进,是指关注软件交付过程中各种度量数据的收集、统计、分析和反馈,通过可视化的数据客观反映整个研发过程的状态,以全局视角分析系统约束点,并和业务团队达成共识,提炼出客观有效的改进目标;工具固化规范,针对识别出来的Gap点和重点问题进行分析,制定出可以在作业工具承载的模板规范,以及需要工程师行为做出改变的能力要求,并在作业工具上对这些规范要求的落地效果进行检查,用数据度量改进效果。最后,对改进项目进行总结分享,打造学习型组织,不断驱动持续改进和价值交付,牵引研发团队模式和文化的转变。

2020年的研发过程可信围绕CleanCode、构建、开源、E2E追溯四个领域开展,这也是公司要求的可信变革中最基本、最重要、投入产出比最大的四个点。

4.1   整体流程说明

整个运作流程,围绕数据,按照“定义软件工程规范->定义数据分析模型->工具实现数据度量和分析->数据运营发现实际软件工程活动和规范的偏差->工具辅助团队改进->工具固化软件工程规范”这个流程进行实施,并对最终效果进行阶段性总结。随着业务团队能力的提升以及软件工程规范性、开发模式的改变,对最初定义的软件工程规范,会阶段性的进行完善,循环往复、持续优化,最终让业务团队在遵守公司要求的研发过程可信规范的前提下,实现业务成功。

1) 定义软件工程规范:围绕公司可信变革的目标,BU对各个服务产品部的研发模式规范和能力要求,COE制定适合BU现状的软件工程规范;

2) 定义数据模型:COE针对制定的软件工程规范,提炼出核心的、有针对性、可用工具度量的数据模型,并且和各个服务产品部达成一致;

3) 工具实现数据度量和分析:根据这几个数据模型,数据分析工具自动从数据源进行采集、汇总、计算,并把结果呈现在数据看板上;业务团队可以打开汇总数据,根据明细数据进行动作规范自检和改进;

4) 数据运营发现实际软件工程活动和规范的偏差:数据治理小组在实际运营过程中,分析度量指标的数据,识别业务团队实际的软件工程活动和要求规范不一致的Gap点和关键问题;

5) 工具辅助业务团队改进:COE针对分析出来的Gap点和关键问题,制定相应的改进措施,作业工具承载流程规范模板化整改,并针对业务团队的不规范行为,制定适合各个服务产品部的公约要求,促使业务团队人员能力提升;

6) 工具固化软件工程规范:针对业务团队的公约要求,在作业工具上进行check,最终作业工具承载了整个软件工程规范要求,以及融入到作业流程中的规范要求事前检查。

 

4.2   三层数据分析模型

我们采用了三层数据分析模型,由作业工具自动采集用户研发过程行为明细数据,数据分析工具进行准实时汇总计算呈现总体目标,三层数据系统性的辅助业务团队系统性的识别研发过程中的不规范点和能力短板,让业务团队“知其然,知其所以然”。这三层数据模型是层层深入,迭代完善,下层支撑上层的关系。

  • 第一层:目标、进展、结果数据分析;和公司可信变革目标牵引对齐,结合BU实际情况,形成BU的整体可信要求,并在数据分析看板上呈现各个服务产品部要达成的过程可信目标、每日的改进进展和最终完成情况;例如,对各个服务产品部要求达成CleanCode的目标。

  • 第二层:词法/语法分析数据;COE针对第一层的目标牵引,分解出来的具体实施环节的度量指标,只有这些分解的指标都完成,第一层的目标才达成。这一层数据的目的主要是围绕帮助业务团队分析自己的能力短板在哪里,进行有针对性的改进指;通过打开汇总数据的层层下钻,用明细数据来分析业务团队在DevSecOps软件工程规范流程中关键动作执行的缺失点,并针对性的制定改进规范要求,牵引作业工具或者业务团队补齐该部分缺失动作;例如,CleanCode的过程可信目标达成,可以分解成:静态检查配置合规率、Committer合入保障率、代码仓Clean三个目标,只有这三个目标达成,就可以认为CleanCode总体目标达成。

  • 第三层:语义分析数据:COE打开第二层数据,不仅要看这些关键动过做没做,还要看做的效果怎么样,最终效果体现在业务团队的DevSecOps软件工程规范提升;这一层的数据分析聚焦在防止为了指标而做第二层的数据,而是看业务团队是否在真正参考BU制定的规范牵引的目标,提升业务交付过程中的效能、可信、质量能力,以及最终产生实际的业务效果。通过打开各个团队的明细数据分析审视业务团队执行的关键动作是否符合规范,是否在合适的阶段点执行,执行效果是否有效;并阶段性的总结和提炼经验,形成知识资产固化到作业工具。例如,针对第二层的静态检查配置合规率,可以分解为:静态检查配置有效性和静态检查执行有效性。静态检查配置有效性,包括:检查静态检查工具配置的数量、是否符合BU的配置规范,以及是否在代码合入主干master时进行了配置;静态检查执行有效性,主要看是否每一次MR提交时都执行静态检查、是否发现问题在研发活动的最早阶段,拦截的问题的效果怎么样。只有第三层的动作度量都达成后,才可以说第二层的目标是达成的。

 

4.3   数据治理过程流程图

为了实现“数据牵引改进,工具固化规范”这个目标,准确、一致、准实时的数据是核心关键,但因为数据采集不完整、业务团队不规范、数据呈现维度不一致等原因,数据的准确性有一个不断提升的过程,因此需要对各个层级展示的数据进行治理。整个数据治理过程中,由“业务团队/作业工具/治理小组/数据分析工具(阿基米德)/COE”五个角色紧密配合,而且以年/半年为目标,不断总结经验,循环往复、持续优化的过程。

a)  COE:和公司可信变革目标牵引对齐,结合BU能力现状,形成BU的整体可信要求

b)   COE:针对BU的业务现状,定义出适合BU现状的软件工程规范要求;业务团队:和BU发布的各个领域的软件工程规范牵引目标达成一致;

c)   COE:针对规范分解出核心的度量指标,并制定度量数据模型;

d)   研发用户:在使用作业工具进行研发活动;作业工具:承载了BU各个服务产品部在使用过程中沉淀的行为数据;

e)   数据分析(阿基米德):准实时接入作业工具的数据,展示各个服务产品部当前的研发能力现状;

f)   COE:和各个服务产品部达成一致,制定各个服务产品部的年度牵引目标;

g)   数据分析(阿基米德):用数据呈现各个服务产品部的牵引目标和能力现状,统一数据口径;呈现月/周/天的明细数据,以及支撑Gap分析和重点问题的数据视图;

h)   COE:根据牵引目标和能力现状,分析Gap原因和关键问题;治理小组:在数据运营过程中,根据数据分析团队当前的能力现状是否和数据呈现一致;

i)   研发用户:可以实时登录数据工具(阿基米德)进行查看各个层级的明细数据;

j)   治理小组:根据准实时进展数据,分析当前团队研发过程中的实际问题,并汇总给COE;

k)   COE:结合细粒度的分析数据、以及治理小组汇总出来的各个服务产品部的实际问题,制定规范和改进措施,包括作业工具的规范和研发用户的动作行为公约;

l)   作业工具:承载作业工具上落地的规范要求;治理小组:作为接口人,承接研发工程师的行为规范公约,结合各个服务产品部实际情况来负责落地;

m)   研发用户:按照规范要求和针对数据的自检进行研发过程行为规范化;

n)   研发工具:对研发用户的行为规范是否满足要求进行自动化检查;最终目标是让整个软件工程规范都固化在工具中进行承载;

o)   数据分析(阿基米德):呈现按照规范改进后的明细数据和汇总目标;研发用户:自助查看整改后的明细数据;

p)   COE:根据数据改进的效果,以及过程中暴露的问题进行总结后形成经验资产,并持续改进;

 

4.4   数据流图

    过程可信的数据在各个工具系统中采集、流转、汇聚、分析、呈现,整个数据流图如下:

其中,识别出6个重要的全量数据源:

a)   代码库数据:该数据由伏羲的服务信息树上配置的代码库数据,加上阿基米德上人工配置的代码库,构成各个云服务发布到生产仓的代码全集;

b)   Workitem信息流数据:当前识别vision上的需求、问题、task,加上Gitlab/Codeclub上的issue,构成可识别的Workitem数据全集;

c)   SRE现网包数据:包括普罗部署、CCE、CPS、CDK各种类型部署的包数据,构成全量现网包数据;

d)   开源二进制包数据:开源中心仓数据(java、python、go、nodejs四种)语言,加上公司c/c++的数据构成全量开源二进制包数据;

e)   研发过程配置数据:阿基米德上配置的committer数据是全量的committer数据;阿基米德上识别出来的主分支是全量的主分支(逻辑“master”)数据;

f)   伏羲研发过程数据:伏羲三个库,MongoDB的静态检查、门禁数据;MySQL中的测试、发布数据;MySQL中包和多个流水线的对应关系数据;一起构成了以“包”为维度的全量伏羲研发过程数据;

 

5    运作组织

5.1   数据治理运营团队

按照过程可信在BU的落地策略,在CleanCode、构建、开源、E2E追溯四个领域设置数据治理运营团队,由 “数据分析工具(阿基米德)—COE—各个服务产品部接口人组成的治理小组”三个角色组成,以“指标度量为牵引,数据的客观呈现为落地方式,业务的价值反馈为最终目的”的原则来落地数据治理工作。

COE的职责:

1 和公司可信变革目标牵引对齐,结合BU能力现状,形成BU的整体可信要求;定义出适合BU现状的软件工程规范要求;针对规范分解出核心的度量指标,并制定度量数据模型;

2) 利用作业工具已经产生的数据,和治理小组一起分析识别数据质量的问题,按照三层数据分析模型,层层打开,识别业务团队能力Gap点。

3) 分析典型问题,识别作业流的断裂点进行补齐,和业务团队的不规范动作,制定规范和公约要求,逐步改善数据质量。

4) 事后归纳总结,识别出流程缺失,组织缺失,责任缺失等机制行问题,并固化到作业工具中。

治理小组:

1 结合各个服务产品部的实际情况,承接COE的数据治理规范在各个服务产品部的落地;

2) 识别数据治理动作在各个服务产品部落地过程中的实际问题,和COE一起分析,提出系统性的解决思路,最终固化到作业工具中。

3) 跟踪过程可信在业务团队落地的过程中的进展,为业务团队最终达成可信变革目标负责,为改进过程产生实际的业务价值负责;

数据分析工具(阿基米德):

1 确保接入的数据准确、实时、一致,用数据实时反映BU各个服务产品部的能力现状,为COE和治理小组的数据运营提供数据支撑;

2) 系统性的落地COE的方案设计,实现整个BU统一标准的数据看板,能够清晰的通过数据识别出来业务团队的能力Gap,牵引业务团队达成整体改进目标;

3) 按照三层数据模型进行数据展示,层层下钻,让业务团队“知其然,知其所以然”,牵引业务团队中的每一个人都能自己进行改进;

4) 通过数据分析,识别DevSecOps软件工程规范在BU的业务团队落地过程中的重点问题,以及该问题背后的流程、制度缺失,促使最终规范固化在作业工具中。

 

5.2   例会设置

“数据驱动DevSecOps能力提升例会”为研发领域数据治理相关问题的求助和裁决例会。

会议分为三个阶段:

1 第一阶段,例行议题,形式类似于“体检报告”,用数据反映业务团队的现状和问题;

2) 第二阶段,申报议题,形式类似于“专家会诊”,讨论某一个具体数据治理过程中的问题和Top困难求助;

3) 第三阶段,灵活安排议题,形式类似于“问题总结”,针对某一类的具体问题,进行集中讨论和归纳总结定义,形成BU的规范流程和章程总结。

 

6    主数据承载系统

主数据是指具有高业务价值的、可以在企业内跨越多个业务部门被重复使用的数据,是单一、准确、权威的数据来源。和业务型数据、分析型数据相比,主数据主要有以下几个特征:

1 特征一致性:也就是能否保证主数据的关键特征在不同应用、不同系统中的高度一致,直接关系了数据治理成败;

2) 识别唯一性:在一个系统、一个平台,甚至一个企业范围内,同一主数据实体要求具有唯一的数据标识,即数据编码;

3) 长期有效性:贯穿该业务对象的整个生命周期甚至更长,当该主数据失去其效果时,系统采取的措施通常为软删除,而不是物理删除;

4) 业务稳定性:在业务过程中其识别信息和关键特征会被业务过程中产生的数据继承、引用和复制。除非该主数据本身的特征发生变化,否则该主数据不会随着业务的过程中被其他系统修改。

 

6.1   主数据源识别原则:

a)  如果有多个数据源构成同类型数据的主数据,两种处理策略:

1)选取一个源系统逐步收编其他源系统的数据,变成唯一主数据源

2)如果1)不能实现,由阿基米德系统进行封装后屏蔽多个数据源系统,该类型数据的唯一数据源变成阿基米德,待后续1)实现后,阿基米德该类型主数据源失效。

3)当数据在多个作业系统中进行流转时,判断是否作为主数据源的标准是:数据在该系统有实际的业务动作产生,而不是只承载数据的流转。

b)  如果确定为唯一数据源,其他消费该类型数据的系统不能和数据源产生冲突。

所有数据仅能在数据源产生,其它系统只能读取不能修改。下游发现的数据源质量问题,应当在数据源头进行修正。

c)   主数据使用方不得改变原始数据,但可以进行扩展。

数据消费方不得对获取的数据进行增、删、改,但可以在数据的基础上进行属性扩展。

d)  在满足信息安全的前提下充分共享,不得拒绝合理的数据共享需求。

数据如果不流转,不仅不会产生业务价值,还增加存储成本;只有不断流转,对业务团队产生实际价值时,还能得到使用效果的反馈,促进数据价值的进一步提升。

原则为:核心资产安全优先,非关键资产效率优先。

 

6.2   一类主数据源

类型

承载系统

接口人

组织架构

Vision

 

云服务

CSBI

 

微服务组、微服务

伏羲

 

 

6.3   二类主数据源

类型

承载系统

接口人

代码库

阿基米德

 

主分支(“Master”)

阿基米德

 

Committer

阿基米德

 

 

点击这里→了解更多精彩内容
 

相关推荐

大数据容器化成趋势,华为云BigData Pro一马当先

唐老师带你秒懂大数据,以及Spark和Flink在干啥咧

大数据容器化,头部玩家尝到了甜头

大数据分析服务器硬件配置如何选择

华为云BigData Pro解读: 鲲鹏云容器助力大数据破茧成蝶

CarbonData:大数据融合数仓新一代引擎

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/devcloud/article/details/107013843

智能推荐

FTP命令字和返回码_ftp 登录返回230-程序员宅基地

文章浏览阅读3.5k次,点赞2次,收藏13次。为了从FTP服务器下载文件,需要要实现一个简单的FTP客户端。FTP(文件传输协议) 是 TCP/IP 协议组中的应用层协议。FTP协议使用字符串格式命令字,每条命令都是一行字符串,以“\r\n”结尾。客户端发送格式是:命令+空格+参数+"\r\n"的格式服务器返回格式是以:状态码+空格+提示字符串+"\r\n"的格式,代码只要解析状态码就可以了。读写文件需要登陆服务器,特殊用..._ftp 登录返回230

centos7安装rabbitmq3.6.5_centos7 安装rabbitmq3.6.5-程序员宅基地

文章浏览阅读648次。前提:systemctl stop firewalld 关闭防火墙关闭selinux查看getenforce临时关闭setenforce 0永久关闭sed-i'/SELINUX/s/enforcing/disabled/'/etc/selinux/configselinux的三种模式enforcing:强制模式,SELinux 运作中,且已经正确的开始限制..._centos7 安装rabbitmq3.6.5

idea导入android工程,idea怎样导入Android studio 项目?-程序员宅基地

文章浏览阅读5.8k次。满意答案s55f2avsx2017.09.05采纳率:46%等级:12已帮助:5646人新版Android Studio/IntelliJ IDEA可以直接导入eclipse项目,不再推荐使用eclipse导出gradle的方式2启动Android Studio/IntelliJ IDEA,选择 import project3选择eclipse 项目4选择 create project f..._android studio 项目导入idea 看不懂安卓项目

浅谈AI大模型技术:概念、发展和应用_ai大模型应用开发-程序员宅基地

文章浏览阅读860次,点赞2次,收藏6次。AI大模型技术已经在自然语言处理、计算机视觉、多模态交互等领域取得了显著的进展和成果,同时也引发了一系列新的挑战和问题,如数据质量、计算效率、知识可解释性、安全可靠性等。城市运维涉及到多个方面,如交通管理、环境监测、公共安全、社会治理等,它们需要处理和分析大量的多模态数据,如图像、视频、语音、文本等,并根据不同的场景和需求,提供合适的决策和响应。知识搜索有多种形式,如语义搜索、对话搜索、图像搜索、视频搜索等,它们可以根据用户的输入和意图,从海量的数据源中检索出最相关的信息,并以友好的方式呈现给用户。_ai大模型应用开发

非常详细的阻抗测试基础知识_阻抗实部和虚部-程序员宅基地

文章浏览阅读8.2k次,点赞12次,收藏121次。为什么要测量阻抗呢?阻抗能代表什么?阻抗测量的注意事项... ...很多人可能会带着一系列的问题来阅读本文。不管是数字电路工程师还是射频工程师,都在关注各类器件的阻抗,本文非常值得一读。全文13000多字,认真读完大概需要2小时。一、阻抗测试基本概念阻抗定义:阻抗是元器件或电路对周期的交流信号的总的反作用。AC 交流测试信号 (幅度和频率)。包括实部和虚部。​图1 阻抗的定义阻抗是评测电路、元件以及制作元件材料的重要参数。那么什么是阻抗呢?让我们先来看一下阻抗的定义。首先阻抗是一个矢量。通常,阻抗是_阻抗实部和虚部

小学生python游戏编程arcade----基本知识1_arcade语言 like-程序员宅基地

文章浏览阅读955次。前面章节分享试用了pyzero,pygame但随着想增加更丰富的游戏内容,好多还要进行自己编写类,从今天开始解绍一个新的python游戏库arcade模块。通过此次的《连连看》游戏实现,让我对swing的相关知识有了进一步的了解,对java这门语言也有了比以前更深刻的认识。java的一些基本语法,比如数据类型、运算符、程序流程控制和数组等,理解更加透彻。java最核心的核心就是面向对象思想,对于这一个概念,终于悟到了一些。_arcade语言 like

随便推点

【增强版短视频去水印源码】去水印微信小程序+去水印软件源码_去水印机要增强版-程序员宅基地

文章浏览阅读1.1k次。源码简介与安装说明:2021增强版短视频去水印源码 去水印微信小程序源码网站 去水印软件源码安装环境(需要材料):备案域名–服务器安装宝塔-安装 Nginx 或者 Apachephp5.6 以上-安装 sg11 插件小程序已自带解析接口,支持全网主流短视频平台,搭建好了就能用注:接口是公益的,那么多人用解析慢是肯定的,前段和后端源码已经打包,上传服务器之后在配置文件修改数据库密码。然后输入自己的域名,进入后台,创建小程序,输入自己的小程序配置即可安装说明:上传源码,修改data/_去水印机要增强版

verilog进阶语法-触发器原语_fdre #(.init(1'b0) // initial value of register (1-程序员宅基地

文章浏览阅读557次。1. 触发器是FPGA存储数据的基本单元2. 触发器作为时序逻辑的基本元件,官方提供了丰富的配置方式,以适应各种可能的应用场景。_fdre #(.init(1'b0) // initial value of register (1'b0 or 1'b1) ) fdce_osc (

嵌入式面试/笔试C相关总结_嵌入式面试笔试c语言知识点-程序员宅基地

文章浏览阅读560次。本该是不同编译器结果不同,但是尝试了g++ msvc都是先计算c,再计算b,最后得到a+b+c是经过赋值以后的b和c参与计算而不是6。由上表可知,将q复制到p数组可以表示为:*p++=*q++,*优先级高,先取到对应q数组的值,然后两个++都是在后面,该行运算完后执行++。在电脑端编译完后会分为text data bss三种,其中text为可执行程序,data为初始化过的ro+rw变量,bss为未初始化或初始化为0变量。_嵌入式面试笔试c语言知识点

57 Things I've Learned Founding 3 Tech Companies_mature-程序员宅基地

文章浏览阅读2.3k次。57 Things I've Learned Founding 3 Tech CompaniesJason Goldberg, Betashop | Oct. 29, 2010, 1:29 PMI’ve been founding andhelping run techn_mature

一个脚本搞定文件合并去重,大数据处理,可以合并几个G以上的文件_python 超大文本合并-程序员宅基地

文章浏览阅读1.9k次。问题:先讲下需求,有若干个文本文件(txt或者csv文件等),每行代表一条数据,现在希望能合并成 1 个文本文件,且需要去除重复行。分析:一向奉行简单原则,如无必要,绝不复杂。如果数据量不大,那么如下两条命令就可以搞定合并:cat a.txt >> new.txtcat b.txt >> new.txt……去重:cat new...._python 超大文本合并

支付宝小程序iOS端过渡页DFLoadingPageRootController分析_类似支付宝页面过度加载页-程序员宅基地

文章浏览阅读489次。这个过渡页是第一次打开小程序展示的,点击某个小程序前把手机的开发者->network link conditioner->enable & very bad network 就会在停在此页。比如《支付宝运动》这个小程序先看这个类的.h可以看到它继承于DTViewController点击左上角返回的方法- (void)back;#import "DTViewController.h"#import "APBaseLoadingV..._类似支付宝页面过度加载页

推荐文章

热门文章

相关标签