中台概念大家已经很熟悉了,各种定义满天飞,但是中台到底是什么,怎么做,还是需要做了才知道。我现在以实实在在的案例让大家明白中台。当然了,毕竟接触中台时间还是不够长,免不了出现一些有偏差的观点,有看到的中台大佬可以指出。
一、中台的定义和角色
中台的定义可以从很多公开资料找到,我这里不再做赘述和解释。我在这里期望以更白话、真实的案例和个人经历的方式讲讲对中台的理解,讲讲中台是怎么落地实施的,怎么将一个业务需求转化成中台需求的,好让大家对中台有个非常具象的认知。
谈起角色就要有对象,中台对于前端业务来说,是业务后端。前台业务不是很关心你怎么实现,也不关心是中台实现还是业务系统自己实现,只关心你能否实现我想要的前端展示、交互、逻辑等等。
中台对于前端业务的后端系统来说,类似一个有强大能力的第三方服务商,这个第三方服务商有某个模块的各种接口和能力,我按照这个第三方规范的接口文档给信息,对方就能够实现我这边业务的这个模块想要的底层结果,不需要我针对这个模块再做一次开发。
所以,如果从业务角度看中台,他承担了一部分业务后端系统的角色,也承担了一个第三方服务商的角色。
二、什么样的人适合做中台
我们都知道,业务系统如果做的不合理可以等以后重构,也可以为了应付紧急需求而做很多阉割版功能,甚至可以让产品新人和技术新人操刀,只要实现业务需求就可以。
而对于中台来说,不管多小的中台,都需要有非常清晰的产品规划,产品要知道业务以后可能做什么,会怎么玩,落地下来就是业务某个功能点以后可能怎么做,我中台底层模型如何搭建,才能让中台的扩展性很强很灵活很好支持多变的业务。
中台的重构成本相比于业务侧,是翻倍的,越灵活重构成本越高,对接的业务侧越多,重构成本也越高。
那么问题来了,你如果不懂业务,能做中台的产品吗?
答案肯定是否定的。
所以做中台的人一定是对业务很了解的人,无论是产品还是研发,请记住懂业务是前提条件,不仅仅懂自己的业务,还要懂与自己相关的上下游业务。
由于中台的搭建往往是围绕一个需求考虑具体的产品实现方案和技术实现方案,所以中台产品最好还要对技术有一定的了解,了解越多越容易切入角色,越容易产出更符合中台定位的产品方案。
另外,搭建中台大部分是从零到一,搭建好基础后期比较好维护,而且是多个团队协作,涉及到模块拆分和能力域边界的划分,所以最好要有经历过从零到一的项目的经验,能够知道如何跨团队协作。
如果产品或者研发只懂业务,没做过中台,能做中台吗?
也不是不能,要组一个低成本的高潜力团队。
如果产品没有做过中台,就要求产品具备较强的抽象能力,搭配做过中台的研发。
如果研发没有做过中台,就要求研发有较强的抽象能力,搭配一个懂中台的产品。
以上都是相对好且低成本的团队组合,在配合时保证大家能够在预知未来业务走向的情况下,合理设计中台的产品方案和技术实现方案。
前面说的是技能方面,那从个人追求上面,你适合做中台吗?
答案是看个人方向了。
有的小中台配备的产研人员是既负责业务需求又负责中台需求的,所以离业务可能比较近,对业务侧产品实现方案是有一定决策性的。
但是相对纯粹的中台人员面向的需求方是业务侧产研,会导致离业务较远,此时中台往往无法决策业务该怎么做,只要业务有场景,有一定的合理性,中台就应该可以支持或提前支持,不能让中台成为业务的瓶颈。
在决策过程中最多也就是在讨论或者接收需求的时候,质疑一下业务对问题本质的挖掘深度,质疑问题的博天堂网页的解决方案和优先级,进而提出更优的博天堂网页的解决方案和建议,但是最终的决策权并不在中台。
或者说,因为一个业务流程的完成可能被多个中台配合或分割,如果你对业务有建议和想法,只能在和你中台能力相关的问题上你有一定的影响力(因为你可以不推进需求),而和你中台不相关的内容你是无法干预的。
所以中台有时候会离实际业务比较远,决策性和影响力较小。
根据上面的情况,中台适合非常熟悉业务,抽象能力很强,且在业务上面没有过多奢求的人去做。如果你还想干预业务,还想让业务按照你的想法落地和排期,那么你目前不适合做中台产品,可以过几年再试试。
但是貌似所有研发同学都对中台非常感兴趣,因为中台的实施无论是从性能还是从技术实现方案来说,对研发同学都是一次挑战,是自己能力的体现。
三、中台的划分和交互框架
在日常业务系统规划中,我们会将业务系统划分为多个模块,由不同的团队分工负责,模块划分的颗粒度取决于业务的发展程度,如果一个模块要做重做细做好,这个模块就会被划分的很细,有专人负责做深做强。
日常业务可能会被划分为:用户会员模块、商家模块、商品模块、营促销模块、交易订单履约模块、售后模块、支付结算模块等。
同理中台也会像业务系统一样,按照业务域被分割为多个中台。按照上面的举例,中台会划分成用户会员中台、商家中台、商品中台、营促销中台、交易中台、订单中台、履约中台、支付中台等。
中台的划分在各个公司不是绝对相同的,除了按照业务域划分之外,还有较大的公司特性和团队平衡问题,这里就不再深说。
中台自身又会按照能力域被划分为多个子域,每个子域都有不同的能力。
比如:
- 用户会员中台会被划分为:用户域、会员域、卡券域等。
- 商家中台可能会被划分为:商家域、组织架构域、权限域等。
- 商品中台可能会被划分为:商品域、价格域、库存域等。
上面的中台和能力域说完,大家可能也很清楚了,其实各个中台组合起来就可以支撑一些基本的业务诉求了。
所以一个中台存在,如果要发挥价值,他必须要和业务系统,和各个中台之间共同协作,才能完成一个完整的业务流程。
和中台交互的系统包括各个模块的业务系统和各个中台,由于公司和公司之间的技术约束不同、业务范畴不同,还会有些其他平台用于支持中台和业务系统间的交互,比如一个低代码定义平台等。这里我们不讲交互细节,就从框架上讲一下交互的规范类别。
从大类上来说有两种:直接交互与通过公共平台交互。
- 直接交互会造成的问题是,一个业务系统要对接多个中台时,需要做多次对接,成本较高。优势是对接自由,往往适合团队比较小,业务不是非常复杂的小型中台,流程和约束不那么多。
- 通过公共平台交互的问题是,前期实施成本较高,实施前就要做好相应的规划,每个系统的定位要清晰,公共平台不仅仅用于中台和系统间的对接,还可能承担低代码产品融合的责任。每个业务中台需要将自己的中台能力和接口注册到公共平台上,业务系统按照统一规范进行对接。优势就是即使一个系统要对接多个中台,也可以在公共平台上通过配置的方式完成,对接成本较低,而且容易塑造规范性和标准化。
1. 当业务系统与中台交互时
一种是业务系统直接与中台交互,另一种是业务系统通过一个公共平台与中台交互。
2. 当中台与中台之间交互时
一种是中台之间可交互,另一种是中台之间通过中台对应的业务系统与中台交互。
如下图2,中台 a 和中台 b 之间不可直接交互,如果业务系统 a 或中台 a 有诉求,必须由业务系统 a 发起请求,通过业务系统 b 调业务中台 b 。
四、中台产品架构
当我们在聊中台的产品架构的时候,我们其实是在聊中台的产品规划。
中台的产品规划是完全基于产品对业务的理解,对业务未来的发展方向的理解,进而预测和抽象出中台可能有哪些能力域,能力域里面包含哪些核心能力,最最重要的是我们要能够提前规划出核心能力域的数据流向,这样研发人员才能够打好底子做好模型。
前面我们讲了,中台也会像业务系统一样,按照能力的业务属性划分内部的能力域,除了能力域之外,中台还会沉淀多个业务方的业务数据,还会有一些自己内部通用的基础支撑能力模块,在做产品架构规划时,最好把这些都一并考虑进去。
但是有一点要注意的是,研发在做中台的技术规划时,往往能够看到比产品更多更广的内容,如果产品没有做过中台,能够根据业务抽象出能力域、核心能力、核心数据、通用底层模块就已经很不错了,基本是很难想到还会有哪些技术相关的产品层和能力,所以如果产品经理的中台经历不多,呈现中台产品架构时要多和研发沟通。
这里就以销售中台为例,简单展示一下中台产品架构。
五、中台实践举例
可能前面无论怎么说,没做过中台的同学还是有些迷糊,不知道中台到底怎么做的,这里我就以一些实际案例来讲一下,怎么把一个业务需求转化为中台需求,可以让大家更直观的感受中台是什么。
在说中台案例前,我们先讲一个定义,那就是“能力”。
用百科的解释,能力的定义是:
完成一项目标或者任务所体现出来的综合素质。
所以中台的能力就是,为完成一项业务侧期望的任务所具备的多种通用逻辑和流程的集合。
案例1
比如一个电商商城业务中有个流程是用户提交订单,提交订单后业务系统经过交易流程的多种校验后最终创建了一笔订单,那么这个电商商城接入订单中台,用户点击提交订单后,调用中台的能力就叫做“创建订单能力”。
创建订单时需要根据不同的商品、用户等等信息最终判断是哪种订单类型,不同订单类型有不同的创建订单的逻辑,而这些逻辑在不同业务系统中有很多通用的内容,中台就把这些通用的逻辑和流程沉淀下来,最终完成业务侧期望的创建一笔订单的任务,这就是【创建订单能力】。
而一个业务系统的订单模块会有非常多的功能,他们就对应了中台的多个能力,比如取消订单的功能对应取消订单的能力,在待支付状态下商户修改订单对应中台修改订单的能力等等。
案例2
以销售中台的某个需求为案例具体讲解一下中台能力的落地。
销售中台就是为那些围绕销售员的,通过销售员进行客户管理、营销触达、客情维护的 crm 的,销售过程管理工具的中台。
所以这个销售过程管理工具需要创建销售人员的账号并对这个账号进行各种管理和维护。
这个管理和维护的过程就需要非常多的功能,比如创建销售人员账号,创建时提交各种资料,经过层层审核后,最终完成销售人员账号的创建,在日常管理中还要对账号进行维护,比如休假了要暂时关闭账号,犯错误了要冻结账号,离职了要删除账号等等。
那么这些功能哪些是中台的能力呢,我们看下面的表格。
这个时候我们作为中台,就要从以下几个角度思考。
思考流程大概是这样的:
解释一下这个流程图:
- 哪些业务功能可以沉淀到中台做成能力。
- 做成能力后的系统交互是怎样的,中台的产品方案是什么。
- 不沉淀到中台的那些能力,业务侧可以怎么落地,产品方案是什么。
所以作为一个中台产品,你不仅仅要知道如何抽象成能力,还要知道和业务如何交互,才能满足业务的诉求。
所以中台的产品是所有产品经理里,产品底层能力最强的。这里我们就简单分析一下业务侧的“销售员管理”的需求和“停用删除销售员账号”的两个需求,看看如何沉淀为能力。当我们处理一个具体需求的时候,主要从以下三个角度思考:
- 功能和能力本身的逻辑是什么,功能边界是什么,我的底层模型如何兼容。
- 数据存储的边界是什么。
- 非中台能力的业务博天堂网页的解决方案。
针对销售员管理需求,我们能够想到,业务侧可能有个后台菜单名字叫做销售员管理,页面是一个销售员列表。
- 列表内的操作按钮有:查看详情、删除销售员、账号禁用。
- 列表上方按钮分别是:添加销售员、批量导入、导出销售员、批量删除的按钮。
比如页面可能长这个样子:
按照业务流程,添加销售人员账号的界面可能如下图:
1. 这时候我们要想到的问题是
1)功能本身的逻辑是什么
如何创建账号,创建账号有什么前置逻辑没有,如果有的话,哪些逻辑可以沉淀到中台,哪些逻辑由业务侧自己完成后再调中台创建账号的接口,是如何交互的。
2)数据存储的边界是什么
创建账号时有些销售员的账号相关的资料,这些资料在业务侧都是独立的字段,这些字段是否和我的能力域有密切的逻辑关系,如果没有的话,销售员的账号数据存储在中台,那这些字段也无法存储在业务侧,不存在业务侧的话存在哪儿,怎么存。
3)非中台能力的业务博天堂网页的解决方案
批量导入和导出分别是什么字段,这些字段是否都存在中台了,不在中台的话业务要如何实现导入导出。
2. 除以上三点和需求本身相关的思考内容之外,我们要基于自己的业务形态和场景再进行更深入的思考一些隐藏在需求之外的东西
1)中台内部的底层构造
我们对接的业务是什么特性的业务,如果我们是做 saas 服务的,因为商户组织架构和门店关系的复杂性,一个人可能在多个商户开通销售员账号,也可能在一个商户下开通多个账号,我们中台如何搭建基础的账号体系,才能知道这个人在多少个商户下,以及在一个商户下开通了多少个销售员账号?
2)底层模型的通用性
还有没有这个业务域内其他诉求与这个诉求非常相似的,可以用相似能力的?也就是我这个能力模型是否可以兼容相似的业务?如果有的话,我要把相似业务功能打散再重新组合,看看是一个什么样的底层模型。
以上问题先放着,因为账号和账号状态息息相关,我们再看“停用删除销售员账号”这个需求。
3. 停用、删除销售员账号,其实本质上是在改变账号的状态属性,而不是真的把账号删除了,而每个业务对账号状态的叫法肯定都是不一样的,每个账号状态不同,对业务逻辑的影响也不同,所以我们思考的问题是
1)功能本身的逻辑是什么
我们中台要如何定义销售员账号的状态,才能更加通用和泛化?
2)非中台能力的业务博天堂网页的解决方案
各种状态带来的不同的业务影响,是否要沉淀到中台?
4. 通过这些思考,我们最终沉淀的能力和功能如下
1)提供创建账号的原子能力
做最基础的一个人在一个门店下只能创建一个账号的通用校验,其余业务属性较强的账号数量等等的校验逻辑由业务自行完成,只要调接口,我们就创建。
2)提供与销售员账号属性相关性较强的独立字段的存储
比如所在门店 id(但中台不会叫门店id字段),其余字段作为扩展字段提供存储能力。一些明显与业务域相关性较弱的字段(在导入导出中发现的),中台不存储,但与业务共同商讨如何解决基于这些字段的查询问题。
3)中台的账号体系是内部底层能力品做好规划,并向研发阐述清楚
4)提供通用的账号状态字段
为兼容大部分商户都可能有的审核流程,提供4个账号状态:待激活、已激活、已冻结、已注销。业务侧自行对应,自行控制每个状态带来的业务逻辑,如果业务有审核,可以考虑创建待激活状态的账号,如果没有审核可以直接创建已激活状态账号。
本次案例中业务侧的禁用和启用可以对应中台的冻结和激活。
这样,中台落地的思路就出来了,过程中只是要更注重通用和泛化的逻辑,描述清楚哪些是中台做,哪些是业务侧自行实现,系统交互流程是什么就可以了。
六、最后
我举的两个案例其实比较简单,中台真正落地时还要考虑很多东西,产品的底层能力是通用的,只是中台更注重拓展性和抽象能力。
今天只是讲了一些入门,希望能让看这个内容的人有个具象的感知,虽然各个中台由于领域不同,各自能力域和落地方法也不同,但是各个中台依然能够抽象出一些共性的东西,后续再具体讲解。