睿治

智能数据治理平台

睿治作为国内功能最全的数据治理产品之一,入选IDC企业数据治理实施部署指南。同时,在IDC发布的《中国数据治理市场份额,2022》报告中,蝉联数据治理解决方案市场份额第一。

严选供应商系统边界治理实践

时间:2022-05-29来源:袖染墨凉浏览数:126

在主导供应商版块持续一年半的边界治理过程中,对边界治理的理解也在逐步加深: 除了“能力迁移”本身外,边界治理的核心和挑战在于“认知版块定位”,“表达版块边界”,“对齐版块边界”等事情。

供应商版块由于历史问题,产生了比较严峻的边界问题(涉及采购、品控、仓配、销退、商品中心、售后等6个B端版块),不仅降低了整体的协作效率,也制约着供应商系统的发展。因此从2020年开始,供应商系统开始联合其他版块进行边界治理,至今已完成90%+的边界问题治理,总计迁移代码量超15w,db表超70张;本文对供应商版块历史1年半的边界治理实践进行了总结,希望对大家“边界治理的认知和落地”有一定的启发。 1 边界治理在做什么 简单来说: 团队层面,边界治理是明确版块定位并让团队的职责聚焦版块定位。 从产品技术层面,边界治理是规划领域能力并内聚散落在其他版块的领域能力。 2 为什么要做边界治理 

2.1 历史背景 2017-2020年初,因为历史原因,供应商系统及关联版块业务架构如上。从目前的视角看来: 一方面,【供应商版块】承担了许多非供应商领域的职责,包括外仓相关,采购履约相关,售后相关等等。 另一方面,应归属到供应商版块的“寻源”&“报价”散落在了【商品中心版块】和【采购版块】。 上述边界状态为供应商团队和相关的其他团队带来了以下痛点:2.2 降低研发效能 边界问题由于自身携带“领域能力分散”这个自然属性,进而给研发团队带来了一系列强感知的研发效能痛点,包括: 评估难:逻辑分散带来了“完整性”的挑战,依赖其他团队评估结果又要面临“效率”问题。 排期难:跨团队排期需要解决“优先级匹配”以及“研发节奏同步”。 改动难:核心难点在于烟囱式建设带来的“领域逻辑一致性”的问题,特定情况下需要先解决“历史逻辑不一致”的问题,才能开始后续工作。 测试难:测试往往需要进行跨系统造数,有一定的跨系统熟悉成本。 

2.3 缺少整体性规划 严选的货品一部分放置在内仓(严选负责的仓库),一部分在外仓(供应商负责的仓库)。在边界治理前,内仓和外仓的产品化建设分别归属于【仓配版块】和【供应商版块】,这导致仓配域无法进行“整体性规划”,曾产生的现象包括: 外仓相比于内仓,产品上缺少“库存管理”功能。 外仓相比于内仓,技术上采用的“物流轨迹查询”方案比较滞后,其的一些物流轨迹停滞问题。 …… 上述现象均产生了一定影响,包括: 外仓每年会因为线下手动管理库存,导致外仓次品数量统计出错。 外仓平均每月会有一些物流轨迹停滞问题。 

2.4 偏离团队目标 在边界治理前,【供应商版块】未明确自身定位,导致在与版块相关的核心领域方面的建设比较缺失。

3 如何做边界治理 边界问题的治理依次分三步,“表达边界”、“识别边界问题”、“解决边界问题”。其中“表达边界”旨在明确边界的理想状态,“识别边界问题”指引我们现状与理想边界的不匹配点,而“解决边界问题”即解决消除上述不匹配点

3.1 表达边界 表达边界核心要解决3个问题: 表达语言:语言的粒度要能足够支撑边界描述的丰富性,同时理解成本低。 统一:边界表达后是要用于沟通的,显然语言要统一。 准出:一方面,所有版块的边界要独立不重合,且整体要完整覆盖超域。另一方面,要解决版块间的职责冲突。因此需要有个“准出”环节要把控。 在供应商边界治理的实践过程中,通过严选业务架构解决“表达语言&统一”的问题,通过架构组准出环节来解决“准出”的问题。业务架构有5个元素,包括用户、问题域、业务场景、产品、能力等。可以简单理解“xx版块,为谁解决什么问题,涉及哪些场景,用哪些功能,这些功能有哪些共性”。下述为供应商版块的准出架构的简要介绍(为了方便理解进行一些缩减): 供应商版块核心用户:供应商、采购 供应商版块核心问题域:供应商管理、供应商与严选线上协同的基础能力建设 场景&产品&能力设计如下:

3.2 识别边界问题 边界问题可以简单理解“组织、领域、系统的职责处于一种不合理的形态,与理想中的完美设计存在差距”。那么我们具体做的就是为不匹配的部分找到与之匹配的版块。匹配过程可以根据“版块面向的问题域”做自上而下的问题域契合度匹配,也可以如下述案例直接进行能力匹配。下图为【供应商版块】【采购版块】的边界问题识别过程,如图所示【供应商版块】中提到的“签署”、“生产排期”、“入库”等领域,存在于【采购版块】的业务准出架构中,那么这几部分便涉及了边界问题。3.3 解决边界问题 边界问题解决的过程会面临一些落地难点,包括“项目管理”和“技术方案的设计和实施”,前者关系到项目能否顺利启动,后者关系到治理前后的稳定性。后续会对难点进行简单的分析以及提供一些实践过的策略。3.3.1 三大特点 边界问题解决的难点,来源三大特点: 偏产技驱动 跨版块技术重构:能力迁移涉及代码迁移以及相关的内外部依赖改造。 迁入方学习成本高:迁入方要学习业务、产品、技术等等系列细节,包括历史业务产品规则和代码本身,尤其在文档缺失的情况下。 名词约定:职责从A换成B,A为迁出方,B为迁入方3.3.2 三大难点 上述三大特点,主要产生了3个难点: 价值共识:偏产技驱动的需求,往往在与“业务”、“PMO”等角色就价值共识的达成商,会有一定的难点,因为他们无法直观感受到痛点与收益。 研发资源空闲度匹配 :跨版块的协同,需要保障“研发资源在时间上的空限度匹配”,尤其在”迁入方面临高学习成本“时,加剧了对空闲研发资源的要求。 稳定性保障:能力迁移涉及代码迁移以及相关的内外部依赖改造(包括DB、MPS等等基建依赖)改动范围的完整性、改动正确性、生产环境依赖切换的平滑性等方面,均对系统稳定性有巨大影响。而且随着工程量提升到一定程度,难度会指数级提高。例如【供应商版块】【采购版块】的能力迁移,单后端涉及10w+代码,60+张表,150+接口,单纯生产环境切换后的接口验证,就需要耗费大量工作。 

3.3.3 三大策略 针对上述三个难点,分别对应有3个策略:业务导向 “价值共识”可以从与业务相关的研发效能收益上去对齐,进而不外乎“减少维护成本”、“减少扩展成本”、“提高稳定性”等几个维度。在边界治理中,上述维度可以因“能力分散逻辑割裂”直观化为以下几个易于业务理解的收益点: 提高需求分析效率:逻辑割裂会提高“分析完整性”的成本,进而导致“业务产品研发“等职能的分析低效性; 提高稳定性&减少运维成本:逻辑割裂会增加“分析改动点不完整”的概率,进而,一方面直接导致线上功能无法使用,另一方面,往往“业务”、“产品”、“技术”等职能要进行数据捞取&订正&验证,经历过的都知道痛(“怎么又漏场景了!”); 加快业务响应:只要涉及外部联动,那么即使是半天的改动量,也会因为优先级不一致而导致交付周期延长xx周,经历过的都知道痛(“要不是不懂,好想直接进依赖方的代码库敲代码”); 减少学习成本:能力分散的情况下,“概念重复”的问题会难以避免,进而引入重复学习的问题(尤其涉及指标时,重复学习的成本更高)。 上述是定性收益分析,如果还需要定量收益分析的话,可以通过“频率*单次收益”来对未来的一段时间做预测,关于频率和收益的相关建议如下: 频率:可以通过“相关领域是否有重点业务项目”来进行简单的推算,一方面重点业务项目本身蕴含着迭代和运维收益,另一方面,相关领域在“重点业务项目”之后会伴随一定的高频迭代收益:对相关类型问题耗时提前做好耗时的采集,进而后续支持分析和推算,这是比较容易被忽视的,同时也较难进行弥补的。 前瞻性&精细治理 提高研发资源空闲度匹配,一方面可以在进行年度/半年度规划时对齐并预留资源,另一方面可以对治理过程进行拆解,进而减少研发资源的单次预留难度,例如: 可以让迁入方先接手增量迭代运维任务,然后再接手历史存在的功能。 可以先交接产品职责,再交接技术职责(包括扩展与维护)。 迁入方可以先在迁出方的代码库里进行代码开发,再择机进行能力迁移(包括代码迁移和DB库迁移)。 在【供应商版块】【采购版块】长达1年半的边界治理中,就是按照上述方式进行。一方面,在2020年中,2021年初,2021年中等3个时间节点,与采购团队对齐了治理节奏并预留了资源。另一方面: 采购团队先负责新增需求,后熟悉存量需求。 采购团队先进行产品交接,再进行技术交接。 采购团队于2020.h2接手运维,2021 全年分两次进行能力迁移。 复杂度降解 上述难点分析阐述了稳定性保障的复杂点来自于保障改动范围的完整性、改动的正确性,生产环境依赖切换的平滑性等方面,那么可以通过以下几个方式来减少相关复杂度: 确保改动完整性 可以基于数据流进行改动逻辑梳理盘点。在技术层面实操时,可以通过DAO层代码从底下上梳理链路。 进行数据迁移时,不要忘了与数仓对齐相关数据源的改动。 迁出方删除所有已迁移的代码并进行回归,进而进行完整性兜底。在进行【供应商版块】【采购版块】间的边界治理时,靠此方式解决了多处“能力迁移遗漏点”。 后置非必要的改动 减少外部依赖改造:对于“迁出方”提供给外部的api,暂时由迁出方作为迁入方的反向代理,进而减少外部依赖的改造。后续择机进行外部依赖的改造。 减少不必要的模型升级:很多时候会想借助能力迁移,对迁入的模型进行升级和整合,但这必然增加改造和验证复杂度,如果不是必须项,可以后续择机升级。 天下没有免费的午餐,上述策略的代价是“额外的时间和研发资源”,实操时可根据容错性进行选择使用。例如在核心资损链路,稳定性是第一准则,那么就可以采用该方式。前置验证“数据清洗逻辑” 进行数据迁移时,有时需要通过“数据清洗”来解决数据异构等等问题。而数据清洗逻辑的测试往往会因“测试数据封不够丰富”、“测试数据量太少”、“线上脏数据”等因素导致测试不全面,该不确定性会增加线上实施的风险。针对此问题,可以提前基于生产环境数据来验证清洗逻辑的正确性。除此之外,“如何应对发布及切换过程中的流量”、“回滚策略的设计与实施”等等也是难点,在此不深入探究。

4 成果 边界治理部分成果如下: 研发效能提升:【供应商版块】通过“供应商报价”边界治理,促使了能力内聚和改动自治,整体达成了易评估、易改动、易排期、易测试的效果,在后续的产品迭代中,最快能单天优化与发布。 提高领域规划完整性:通过【供应商版块】【仓配版块】的边界治理,不仅解决了背景中提到的问题,【仓配版块】还在后续绘制了外仓建设蓝图。 聚焦团队目标:供应商团队完成版块定位,并且后续专注于版块核心领域的建设。 5 小结 在主导供应商版块持续一年半的边界治理过程中,对边界治理的理解也在逐步加深: 除了“能力迁移”本身外,边界治理的核心和挑战在于“认知版块定位”,“表达版块边界”,“对齐版块边界”等事情。 边界治理绝对不仅是技术的事,这个过程是需要产品与技术紧密协作,脱离产品的边界治理会在实践时更容易遇到“边界划分不合理”、“边界腐化”等问题,最终使得边界治理变成闭门造车或不具有可持续性。 边界治理是个常态化的事情,随着业务、技术、组织与人的认知的不断变化,板块的定义与边界仍然需要不断的演进才能适应业务的发展。 本文旨在对供应商系统边界治理进行了体系化基础性的总结,在细节上不会过于深究,包括业务架构产出和技术重构等等细节。

(部分内容来源网络,如有侵权请联系删除)
立即申请数据分析/数据治理产品免费试用 我要试用
customer

在线咨询