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

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

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

 

目的

为实现云服务开发的过程可信,需要基于数据对各个服务产品部的可信变革动作进行数据采集、进展可视、目标牵引、能力评估,最终用数据反映目标达成。与传统的“基于数据晾晒驱动业务团队改进,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

智能推荐

google vr 入门之制作简易的VR播放器(三),android学生管理系统项目视频_自己的android app中集成vr浏览器-程序员宅基地

文章浏览阅读192次。// 使用google vr 添加的compile ‘com.google.vr:sdk-base:1.40.0’compile ‘com.google.vr:sdk-audio:1.40.0’compile ‘com.google.vr:sdk-videowidget:1.40.0’添加这些依赖包之后google给我们的生成了哪些library库呢?![](https://img-blog.csdn.net/20170427162756208?watermark/2/text/aHR0cDovL_自己的android app中集成vr浏览器

db和dbm_it dbm-程序员宅基地

文章浏览阅读1.8k次。DB :DB是一个纯计数单位:dB = 10logX。dB的意义其实再简单不过了,就是把一个很大(后面跟一长串0的)或者很小(前面有一长串0的)的数比较简短地表示出来。如:X = 1000000000000000(多少个了?)= 10logX = 150 dB X = 0.000000000000001 = 10logX = -150 dB DB在缺省情况下总是定义功率单位,以 1_it dbm

芯片验证从零开始系列(一)——芯片验证概论-程序员宅基地

文章浏览阅读1w次,点赞7次,收藏78次。芯片验证从零开始系列(一)——芯片验证概论芯片开发流程动态验证技术静态验证技术Emulation和FPGA原型开发由于最近一个比赛要用到UVM验证,顺便多一门以后求职的手艺,准备系统地学习一下SV和UVM,也可以为之后的毕业论文和发展方向做一些准备。芯片开发流程1)市场人员和客户沟通确定用户需求2)系统设计人员按照功能划分为各个子系统3)子系统由设计团队开发实现4)验证人员对设计功能展开验证,发现设计缺陷,交由设计人员修正5)验证没有出现漏洞后,交由后端人员进行综合,布局布线6)后端人员将_芯片验证

RabbitMQ详解(一):RabbitMQ相关概念_obpmq-程序员宅基地

文章浏览阅读8.9k次,点赞24次,收藏26次。RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。作为一名合格的开发者,有必要对RabbitMQ有所了解,本系列是RabbitMQ快速入门文章,主要内容包括RabbitMQ是什么、RabbitMQ核心概念、五种消息模型、用Docker安装RabbitMQ等。_obpmq

HTML 网页自动刷新_html多线程刷新网页-程序员宅基地

文章浏览阅读5.2k次,点赞2次,收藏24次。HTML网页自动刷新方法在进行HTML网页编写的过程中,往往需要及时的编写反馈,反复的在编辑器和浏览器窗之间进行切换是一个很繁琐的事情,如果在编辑器上使用插件,我也不太愿意,繁琐而且不安全。下面介绍三种不需要插件的自动刷新方法。第一种使用meta标签在html的文档头中,在<head>标签中添加meta属性,像下面“ <meta http-equiv="refresh" content="10">其中前面是刷新所需的meta标识,后面的content是刷新的秒数。第二_html多线程刷新网页

使用@EventListener注解,只启动一次监听事件_@eventlistener 被启动了2次-程序员宅基地

文章浏览阅读726次。背景:当在写一个Spring项目时,配置了事件监听器,在项目启动的时候会自己启动一次,之后如果再调用Controller接口的时候,他还会自己再启动,这个时候我们的业务场景只需要启动一次该怎么办呢?解答: @EventListener public void listener1(ApplicationEvent event) { //解决controller调用接口的时候多次启动event实例 ContextRefreshedEvent event1 = _@eventlistener 被启动了2次

随便推点

Halcon 3D定位方法-程序员宅基地

文章浏览阅读1.9k次。Descriptor-based Matchinguncalibrated mathcing return perspective map,calibrated matching return pose.find_calib_descriptor_model()Deformable MatchingFind objects with perspective distort..._halcon 3d定位

用 Hadoop 进行分布式并行编程, 第 3 部分_hdfs dfs -copyfromlocal /home/hadoop/temp/* /tempd-程序员宅基地

文章浏览阅读706次。Hadoop 是一个实现了 MapReduce 计算模型的开源分布式并行编程框架,借助于 Hadoop, 程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的计算。在本文中,详细介绍了如何部署 Hadoop 分布式运行环境,如何让程序分布式运行于多台普通的计算机上,如何使用 IBM MapReduce Tools 轻松地将 MapReduce 程序部署到 Hadoop 分_hdfs dfs -copyfromlocal /home/hadoop/temp/* /tempdir

Linux进阶 apache服务器;虚拟主机_虚拟机安装开启httpd服务-程序员宅基地

文章浏览阅读309次。1.关闭防火墙systemctlstopfirewalld(暂时关闭,重启后恢复)修改前------将index.html改为hello.html。2.设置宽容模式setenforce0(暂时性设置)配置同一ip不同端口的虚拟主机访问apache服务器。(1)安装httpd(先挂载,用yum安装)(4)修改配置文件httpd.html。(3)创建文件hello.html。(2)启动httpd服务。(5)重启httpd服务。(5)重启httpd服务。(5)重启httpd服务。..._虚拟机安装开启httpd服务

软件测试随笔-程序员宅基地

文章浏览阅读73次。记录一些软件测试工作中的想法。1)软件测试岗位价值在IT行业里是比较低的,为了更好的体现自身价值,我认为软件测试从业者应该比业务更懂技术,比技术更懂业务。同时具备很好的沟通协调能力。让自己变成万能胶。2)软件测试体现价值的点:1.发现bug2.提供信心3.提供信息4.预防缺陷3)软件测试一定要考虑测试的覆盖率4)测试工作要体现测试技术,而不是测试工..._软件测试随笔

VB程序设计教程(第四版) 龚沛曾_龚沛曾vb.pdf-程序员宅基地

文章浏览阅读1.6w次,点赞17次,收藏47次。VB程序设计教程(第四版) 龚沛曾 课后习题答案目录第一章课后答案第二章课后答案第三章课后答案第四章课后答案第五章课后答案第六章课后答案第七章课后答案第八章课后答案....第一章课后答案1、简述Visual Basic的特点。答:(1)具有基于对象的可视化设计工具(2)事件驱动的编程机制(3)提供易学易用的应用程序集成开发环境(4..._龚沛曾vb.pdf

Matlab神经网络语音增强,基于BP神经网络的语音增强研究-程序员宅基地

文章浏览阅读452次。曰髯?分类号:论文编号:2丛坦丝旦生丛密级:公开贵州大学2009届硕士研究生学位论文基于即神经网络的语音增强研究学科专业:电路与系统研究方向:模式识别导师:刘宇红教授研究生:周元芬中国贵州’贵阳2009年5月摘要-5Abstract-6第一章绪言11.1引言11.2语音增强的意义与研究现状21.2.1语音增强的目的21.2.2语音增强的意义21.2.3国内外语音增强研究现状41.2.4语音增强的算..._基于神经网络的语音增强