← 案例研究
决策#产品信息管理#接口#数据建模#工作坊引导

接口还没开始做,“产品”先有了三个意思

SAP、Akeneo 和业务团队都在谈“产品”,直到要开发接口时,大家才发现这个词下面放着三套不同的东西。

专业方向
业务分析
项目类型
已匿名的真实项目

项目一开始,看起来只是把几个系统连起来

客户要把 SAP 里的产品数据送进 Akeneo,再分发给其他系统。项目清单看上去很技术:整理字段、开发接口、迁移数据、测试同步。

接口还没开始做,真正的问题先冒了出来。市场说的“产品”、数据团队说的“产品”和 SAP 里的“产品”并不是一回事。大家平时用同一个词,直到需要让系统交换数据,才发现这个词下面放着几套不同的东西。

如果不先把这件事说清楚,接口当然也能开发。系统会非常稳定地把一边的误解传到另一边。

先把几个名词说成人话

这篇案例会反复出现四个缩写和产品名,先把它们放回具体工作里。

SAP 是客户原来使用的企业管理系统。这里可以把它理解成现有产品和物料数据的重要来源:很多历史数据、编码和业务规则已经在里面运行了多年。

PIM 是 Product Information Management,也就是产品信息管理。它不负责库存结算或财务交易,主要负责把产品名称、描述、属性、分类等信息集中管理,再提供给网站、目录和其他渠道。

Akeneo 是一套 PIM 产品。这个项目选择 Akeneo 来承接未来的产品信息管理,所以团队不仅要“把数据搬进去”,还要决定搬进去以后,产品应该怎样被组织、补充和维护。

SKU 是 Stock Keeping Unit,中文常说“库存保有单位”或“最小库存单位”。一件商品因为颜色、尺寸或包装不同,可能对应多个 SKU。但“一个 SKU 是否等于一个产品”,并没有放之四海而皆准的答案,它取决于业务怎样销售、管理和描述产品。

问题就在这里:SAP、Akeneo 和业务团队都能使用“产品”“变体”“SKU”这些词,却不一定指向同一层东西。

接口没问题,“产品”有问题

SAP 里已经积累了不少历史例外。有些编码代表现在仍然有效的业务差异,有些只是旧系统当年不得不这样存,还有一些已经没人敢肯定为什么存在。

如果把它们原样复制到 Akeneo,迁移会很顺利。旧问题也会顺利获得一个新地址。

所以项目最先要决定的不是哪个字段连哪个字段,而是几个更基础的问题:什么算一个产品,什么只是同一产品的不同 SKU,哪些变体需要被单独管理,哪些历史差异到了新系统里已经没有继续保留的必要。

这些问题不属于某一个系统。市场关心客户怎样看到产品,产品团队关心目录怎样组织,数据团队知道历史编码从哪里来,IT 则需要确认最后的定义能不能被系统实现。任何一方单独回答,都只能得到一部分。

客户带来的是抱怨,我们不能直接把它们写成需求

工作坊里出现了很多真实摩擦:属性没人相信,产品信息要反复手工更新,创建流程很别扭,某些步骤大家已经绕着走了很多年。

这些抱怨都是真的,但不一定都应该进入未来系统。有些是业务必须解决的问题,有些只是当前工具造成的限制,还有一些是局部不便,不值得为了它重做整套产品结构。

每轮工作坊以后,我们会先整理自己的理解,再在下一轮交还给参与者确认。不是问“这个需求写得对不对”,而是问:“我们理解的麻烦,是不是你每天遇到的那个麻烦?”

这一步很重要。否则 PIM 很容易变成一套更现代的旧流程:页面更新了,字段换了位置,大家仍然用同样的方法绕过去。

先在 Akeneo 里做一遍,再谈系统怎么连

进入配置以前,团队先把数据模型和关键工作坊设计好,让市场、产品、数据和信息技术团队在同一个模型里核对各自的要求,也把容易被忽略的边界情况提前带进讨论。

产品、SKU 和变体的定义逐渐清楚以后,业务分析师根据已经确认的数据模型,在 Akeneo 开发环境里完成配置。未来真正使用系统的人再亲自创建产品、修改属性,并按照新的流程完成工作。

演示时看起来顺畅的流程,轮到使用者自己操作,往往会突然长出细节。有些测试证明定义能工作,有些则暴露出工作坊里没有出现的情况。业务分析师调整配置,再测一次。这时候接口开发还没开始,调整数据模型只需要改定义和配置,不必返工已经写好的接口。

这个项目怎么做决定

  1. 01

    先分清哪些抱怨值得进入未来流程

    我们看了什么
    工作坊里的手工操作、低信任属性和各种绕路
    谁来判断
    真正使用目录的人、产品、市场、业务分析师和资深顾问
    怎么确认
    下一轮工作坊先确认我们有没有理解错问题
  2. 02

    把产品、SKU 和变体说成同一种语言

    我们看了什么
    互相冲突的业务定义,以及 SAP 里的历史例外
    谁来判断
    数据专家、产品团队、业务分析师和负责数据模型的资深顾问
    怎么确认
    拿真实产品和边界情况逐个检验定义
  3. 03

    先测试未来流程,不急着做接口

    我们看了什么
    业务分析师根据已确认的数据模型在 Akeneo 中完成的配置
    谁来判断
    未来使用者、产品、市场和负责配置的业务分析师
    怎么确认
    让使用者亲自完成任务,修改后再测
  4. 04

    最后确认系统之间交换什么

    我们看了什么
    经过测试的产品结构和已经明确的技术限制
    谁来判断
    信息技术团队、业务分析师、技术顾问和交付团队
    怎么确认
    以共同定义检查字段映射、校验规则和接口行为

等接口开始,最难的决定已经做完了

进入接口和字段映射阶段时,团队至少已经知道每个字段在业务上代表什么。产品、市场、数据和信息技术团队不需要一边开发接口,一边继续争论一个 SKU 到底是不是一个产品。

集成没有因此变得简单。SAP 的历史数据仍然复杂,下游系统也有自己的限制。但技术问题终于只是技术问题,不必顺便替整个组织决定“产品”是什么。

这个项目里,最有价值的工作发生在系统真正连接以前。我们先把日常抱怨还原成问题,再让对的人决定产品、SKU 和变体各自意味着什么,最后用真实操作检验这些定义。

系统当然需要接口才能交换数据。但在那之前,人得先同意自己究竟在交换什么。