数据源发生变化时需要注意的点

1 评论 2799 浏览 3 收藏 19 分钟

编辑导读:很多产品的数据是在三方平台的源数据基础上设计的,源数据的内容发生了变化,将直接影响这类产品的功能。本文作者从调研变化和如何应对这两个点进行分析,探讨当数据源发生变化时需要注意的点,希望对你有帮助。

一般意义上的产品,其底层数据是由用户在产品上的行为产生的,例如淘宝中的订单数据,是由消费者在淘宝上进行下单动作而产生的数据,然而有一部分产品,依赖的是三方的数据。

例如帮助淘宝商家分析,下单的用户是新用户还是老用户,在这个产品上,使用的并不是用户在该产品上产生的行为数据,而是使用了淘宝上的用户行为数据,数据源也是由淘宝开放提供的。

因这类产品的源数据非自有数据,是由三方平台产出的,而三方平台会因为其业务变动、政策变更等因素导致需要变更源数据,具体包括数据格式的变更,数据内容的变更,数据传输方式的变更。

而这类产品提供的功能是在三方平台的源数据基础上设计的,源数据的内容发生了变化,将直接影响这类产品的功能,导致统计出错等问题,严重地将会直接导致功能无法使用,对产品造成严重影响。

一起看下这个场景,因消费者数据隐私等政策出台,某电商平台为了合规,将开放的订单接口的订单中的“买家手机号”字段做了模糊处理,返回值例如157****6037。

小明所负责的产品A是一款营销短信类产品,通过“订单接口”中的“买家手机号”字段,来实现对店铺订单的消费者发送一些营销短信,包括促销信息提醒、二次购买邀请等。这次某电商平台的变更就给产品A带来了重大的影响:

变更前,买家手机号字段展示的是明文数据,产品A直接根据订单中的手机号码,发出相应的短信。

变更后,买家手机号字段展示的是模糊化的数据,无法获取到短信接收方的号码,因此无法将短信发送到产生过订单的消费者手机号中,不再能够达到对此类消费者进行提醒、邀请、回访等营销动作,对用户、该产品的业务都产生了严重影响。

作为用户,所使用的产品,不再能提供相应的服务,没有办法对用户店铺中的消费者进行营销活动,给用户造成了需要重新寻找新产品的成本和错失营销时机的损失。

作为小明所在的公司,这一项改动会直接导致产品A的核心功能受阻,影响力公司业务,甚至可能造成现有用户的大量投诉、退款和流失,对公司产品A的业务带来的影响是毁灭性的。

从这里我们可以看出,受到平台接口对于字段内容的变更,对于产品A,对于产品A所在的业务和公司产生的影响是巨大的,小明作为负责产品A的产品经理,需要对本次变更作出应对动作,避免或降低这种情况的发生。

那么在面对这样的情况时,应该去如何应对呢,本文就想从调研变化和如何应对这两个点来和大家讨论,当数据源发生变化时需要注意的点。

一、什么情况下数据源会发生变化

在讨论如何应对变化前,想和大家一起先讨论个问题,什么情况下数据源会发生变化?数据源为什么要变化呢?在文章开头我们了解到底层数据从来源进行分类,能分成自有数据和三方数据两个类型,不同的数据类型发生的变化情况不同。

首先,我们来看自有数据,指储存在本产品数据库的数据,其来源可以是该产品用户在应用的行为产生的数据,是该产品运营方生产的数据,甚至可以是从其他产品或线下获取数据后加工存储下来的。

只要最终数据存储到了产品自身的数据库,就属于自有数据范畴。例如微信朋友圈中的动态和评论,是微信用户产生后并存储在微信数据库中的,属于自有数据。

因自有数据,存储在自己数据库中,对于数据的把握,是相对较为可控的。当因业务变更导致会产生数据改变时,是可以提前预料的,我们就可以在功能改变前,作出相应的调整,就能避免出现因自由数据变化带来对产品功能的重大影响。

再来看三方数据,三方数据是指非存储在本产品数据库的数据,数据的来源和维护需要依赖其他产品,例如产品B是个交易软件,其交易数据是实时从交易所获取的,这部分数据是由交易所提供和维护的,就属于三方数据。

从三方数据的定义中,我们能认识到三方数据不是由本产品存储的,对其变化是不可提前预知的,因此当三方数据做出导致数据变更的行为时,我们知晓这个变化也经常是后置的。

但不论是哪一种数据类型的数据源发生了变化,其共同特点是,如果放任不理,都会给产品带来重大影响,所以需要我们面对变化作出调整方案。

二、数据源变化后应对方案

我们已知数据源变化会给产品带来重大影响,因此需要对此作出应对方案,这个方案需要包含变化前后的差异和可能带来的影响,以及解决方案(不局限于产品方案,也可以是运营方案等)。应对方案是为了尽可能地降低数据源变化所带来的影响,避免出现严重的负面情况,具体应对方案中我们可以根据下面二步进行展开,一起来讨论下吧。

1. 充分了解变化前后的数据差异

变化前后的数据差异,是问题产生以及带来负面影响的直接原因,因此我们需要分别在相同条件下获取1份变化前的数据,和1份变化后的数据,充分了解两者之间的差异,包括数据格式的变化、数据内容的变化、以及数据传输方式的变化,才能为后续的解决方案提供理论依据。

可以按以下几个方面对两份数据一一比对,并最终得出差异结论。

1)数据格式差异

定义:什么是数据格式差异?数据格式差异就是指改变前的数据格式和改变后的数据格式不同。

例如数据源变化中数据格式由格式A变化成格式B,那么这里改变前的数据格式是A,改变后的是B,A和B是不同的格式,这就是一次数据格式差异。

产生差异的原因:不同的数据格式满足不同的场景,当场景发生变化时,数据格式也就随之发生了变化。

​影响及对策:

改变后的数据相比较改变前,更改了数据格式,可能会导致产品无法使用数据,例如为了使得数据不被直接解读,数据格式从数值改变为了字符串,而原有产品都是以数值作为标准数据格式直接进行数据存储,并提供数据分析。

当数据格式改为字符串时,产品无法获取数据,原有产品以“数值”设计的功能都将无法使用,会给产品带来客诉以及退款等负面作用,为此我们需要根据最新的数据格式,修改涉及到的功能,降低其产生的影响。

2)数据内容差异

定义:同样的,什么是数据内容差异?数据内容的差异就是改变前后的数据在内容方面有出入,例如数据源变化中数据内容差生了差异,改变前的内容是A,改变后的内容是B,A和B是不同的内容,这就是一次数据内容差异。

而具体的A和B之间内容的差异关系会存在A多于B,A小于B,A和B存在交集,即改变后数据内容多于改变前,改变后少于改变前,以及改变前后互有多少。

产生差异的原因:不同的数据内容是由业务决定的,当业务发生变化时,数据内容也会随之进行变化。

影响以及对策:

首先,我们先看A多于B的情况,即改变后数据相较于改变前,多了很多数据内容,多出来的内容对与现有功能是一个多余的状态,我们需要分析多出来的部分是否会对现有功能产生影响,多出来的数据内容可能会对原有的数据展示和存储产生影响,包括因数据内容溢出导致的页面展示错位,数据存储异常等,会导致现有功能无法使用,从而产生负面影响。

对于这个影响,我们需要修正展示和存储规则,解决这个问题后,我们可以再分析多出来部分的内容是否支持做一些新能力或新功能,从而提升产品的价值和竞争力。

一起看个案例,例如订单数据中的“订单生成时间”原先只返回了年月日,本次改动返回了年月日时分秒,而产品中存储的时间格式是 yyyy-mm-dd,而当前年月日时分秒的格式为 yyyy-mm-dd HH:MM:SS,如果不对订单生产时间进行处理,会导致订单生产时间直接无法被储存,从而依赖“订单生成时间”字段的功能就将失去原始数据,不再能向用户提供依次统计的字段或者功能,导致用户问题或场景无法解决。

其次,来看A少于B的情况,即改变后数据相较于改变前,少了很多数据内容,这一情况会直接导致改变后的原始数据少了一部分内容,从而导致产品功能中关键数据丢失,无法再向用户提供原有设计的字段和功能。对于这个影响,我们需要尽快解决数据差异带来的问题,尽可能让功能和改变前保持一致。

还是通过案例来了解下,例如订单数据中包含了买家ID、订单编号、订单生成时间、订单状态等,如果改变后订单状态缺失,那么就会直接导致产品中依赖“订单状态”的功能少了原始数据,无法计算数据或提供功能。

最后是,A和B存在交集的情况,即改变后数据相较于改变前,部分数据内容多了,部分数据内容少了。需要分别将多的部分和少的部分,参照A多于B和B多于A的情况,作出相应的改动。

结合如下的案例来加深下理解:

产品C提供了分析用户付费情况的功能,其分析逻辑是,通过调用“公司中台产品”的标准接口获取数据,依赖接口中“用户字段”下的业务参数(0-免费用户,1-付费用户)来分析付费情况,近期“中台产品”增加了分析能力,对业务参数做了如下变化,0-免费用户,1-付费用户(0-500元),2-付费用户(500元以上),同时更改了数据获取方式为消息推送,这就会对产品C的功能起到影响。

分析对比变化前后的数据,可以发现这里的差异:

A. 数据内容发生了变化,业务参数值,1的含义变化了,新增了业务参数值2

业务参数的变化会导致付费用户统计不完全,因为之前的付费用户所取的业务参数为  1,而现在只取 1会导致所分析出来的付费用户是不完全的,付费用户只有 1 这部分,丢失了业务参数为2 的这部分付费用户,直接会导致付费用户的统计结果是不完全的。

假如1月15日(业务参数于1月1日改变)付费100元的用户有100个,付费1000元的用户有30个,如果不对付费用户所取业务参数逻辑进行调整,那么付费用户的付费金额统计为100 x 100 = 10000元,直接导致了付费1000元以上的30个付费用户没有被统计进来,造成了付费用户统计数据的丢失,对使用产品 C 分析店铺付费用户情况的商家对自己店铺的情况造成误判。

B. 数据传输方式发生了变化,从主动调用接口变成了被动接受推送

数据传输的变化,会导致原有取数方式-主动调用接口获取的数据是空,直接导致付费用户分析没有数据结果产出。

同样假如数据传输方式在1月14日改变,因为数据传输方式变更,原有的传输方式不再提供14号之后的数据,假如产品C不做出对应的调涨,在15日仍使用接口调用数据。

那么1月15日产品C通过接口获取到的付费用户数据为空,上文中130个付费用户的数据都没有办法获取到了,产品C分析店铺付费用户情况的功能也直接宣告失效。

这些差异直接影响产品C的“分析用户付费”功能没有原始数据,无法生产分析结果,整个功能不再能够被用户使用,并对用户造成误判等决策失误 ,进而给该产品带来客诉等负面影响。

为此我们需要作出对应的调整方案,使得产品功能与“数据改变前”一致,可以顺利获取到数据,并根据数据准确计算出付费用户的情况包括人数、付费金额等,那么接下来我们要讨论的就是如何根据调研结果设计产品应对方案。

2. 根据调研结果设计方案

在充分调研变化前后数据的差异,我们就能根据差异做出相应的调整方案,可以参考以下步骤展开:

  1. 第一步,是了解差异以及差异所带来的影响,对照“标题1” 中的调研方式,我们已经可以充分了解变化前后的数据差异和对功能带来的影响,是数据少了还是数据多了,是数据格式变了还是内容发生了改变,并通过这些差异推断出给功能带来的影响
  2. 第二步,是需要优先解决差异导致原有功能无法使用的问题,例如数据无法更新,数据无法计算等,尽可能做到不因为数据变化,导致用户无法使用功能和产品
  3. 第三步,可以从变化中寻找一些有价值的点,例如变化后比变化前多一部分数据内容,这部分内容是否可以支持对产品进行功能优化或升级,提升产品的竞争力

一起来看下在产品C的案例中,首先在已知调研差异后,发现“付费用户的定义从业务参数1,变为了业务参数1和2”,影响了现有付费用户分析的功能。

所以需要我们修改付费用户统计的逻辑,解决这个问题:用户字段中业务参数1和2的用户都要标记为付费用户。

其次,因为改变后相较于改变前的数据差异,多了对付费用户付费金额程度的数据,我们就可以利用这个差异,提升“付费用户”功能,例如对付费程度划分等级v1和v2,分别代表微氪付费用户和核心付费用户,更加细分付费用户的范围,使得“付费用户”功能有更大的价值。

三、总结

数据源分为自有数据和三方数据,它们都存在受到业务或政策导致变化的情况,可能会给产品带来严重的负面影响。

因此,我们需要通过充分调研数据源变化情况,了解变化前后的差异点;根据差异点,设计产品方案;以及向用户说明变化情况,来避免因数据源变化而带来的影响。

#专栏作家#

晌午,微信公众号:晌午自习室,人人都是产品经理专栏作家。4年产品经验,专注于数据方向,目前是电商客服领域的产品 。

本文原创发布于人人都是产品经理,未经许可,禁止转载。

题图来自 Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 自有数据,存储在自己数据库中,对于数据的把握,是相对较为可控的。

    来自广西 回复