數據源發(fā)生變化時需要注意的點
編輯導讀:很多產品的數據是在三方平臺的源數據基礎上設計的,源數據的內容發(fā)生了變化,將直接影響這類產品的功能。本文作者從調研變化和如何應對這兩個點進行分析,探討當數據源發(fā)生變化時需要注意的點,希望對你有幫助。
一般意義上的產品,其底層數據是由用戶在產品上的行為產生的,例如淘寶中的訂單數據,是由消費者在淘寶上進行下單動作而產生的數據,然而有一部分產品,依賴的是三方的數據。
例如幫助淘寶商家分析,下單的用戶是新用戶還是老用戶,在這個產品上,使用的并不是用戶在該產品上產生的行為數據,而是使用了淘寶上的用戶行為數據,數據源也是由淘寶開放提供的。
因這類產品的源數據非自有數據,是由三方平臺產出的,而三方平臺會因為其業(yè)務變動、政策變更等因素導致需要變更源數據,具體包括數據格式的變更,數據內容的變更,數據傳輸方式的變更。
而這類產品提供的功能是在三方平臺的源數據基礎上設計的,源數據的內容發(fā)生了變化,將直接影響這類產品的功能,導致統(tǒng)計出錯等問題,嚴重地將會直接導致功能無法使用,對產品造成嚴重影響。
一起看下這個場景,因消費者數據隱私等政策出臺,某電商平臺為了合規(guī),將開放的訂單接口的訂單中的“買家手機號”字段做了模糊處理,返回值例如157****6037。
小明所負責的產品A是一款營銷短信類產品,通過“訂單接口”中的“買家手機號”字段,來實現對店鋪訂單的消費者發(fā)送一些營銷短信,包括促銷信息提醒、二次購買邀請等。這次某電商平臺的變更就給產品A帶來了重大的影響:
變更前,買家手機號字段展示的是明文數據,產品A直接根據訂單中的手機號碼,發(fā)出相應的短信。
變更后,買家手機號字段展示的是模糊化的數據,無法獲取到短信接收方的號碼,因此無法將短信發(fā)送到產生過訂單的消費者手機號中,不再能夠達到對此類消費者進行提醒、邀請、回訪等營銷動作,對用戶、該產品的業(yè)務都產生了嚴重影響。
作為用戶,所使用的產品,不再能提供相應的服務,沒有辦法對用戶店鋪中的消費者進行營銷活動,給用戶造成了需要重新尋找新產品的成本和錯失營銷時機的損失。
作為小明所在的公司,這一項改動會直接導致產品A的核心功能受阻,影響力公司業(yè)務,甚至可能造成現有用戶的大量投訴、退款和流失,對公司產品A的業(yè)務帶來的影響是毀滅性的。
從這里我們可以看出,受到平臺接口對于字段內容的變更,對于產品A,對于產品A所在的業(yè)務和公司產生的影響是巨大的,小明作為負責產品A的產品經理,需要對本次變更作出應對動作,避免或降低這種情況的發(fā)生。
那么在面對這樣的情況時,應該去如何應對呢,本文就想從調研變化和如何應對這兩個點來和大家討論,當數據源發(fā)生變化時需要注意的點。
一、什么情況下數據源會發(fā)生變化
在討論如何應對變化前,想和大家一起先討論個問題,什么情況下數據源會發(fā)生變化?數據源為什么要變化呢?在文章開頭我們了解到底層數據從來源進行分類,能分成自有數據和三方數據兩個類型,不同的數據類型發(fā)生的變化情況不同。
首先,我們來看自有數據,指儲存在本產品數據庫的數據,其來源可以是該產品用戶在應用的行為產生的數據,是該產品運營方生產的數據,甚至可以是從其他產品或線下獲取數據后加工存儲下來的。
只要最終數據存儲到了產品自身的數據庫,就屬于自有數據范疇。例如微信朋友圈中的動態(tài)和評論,是微信用戶產生后并存儲在微信數據庫中的,屬于自有數據。
因自有數據,存儲在自己數據庫中,對于數據的把握,是相對較為可控的。當因業(yè)務變更導致會產生數據改變時,是可以提前預料的,我們就可以在功能改變前,作出相應的調整,就能避免出現因自由數據變化帶來對產品功能的重大影響。
再來看三方數據,三方數據是指非存儲在本產品數據庫的數據,數據的來源和維護需要依賴其他產品,例如產品B是個交易軟件,其交易數據是實時從交易所獲取的,這部分數據是由交易所提供和維護的,就屬于三方數據。
從三方數據的定義中,我們能認識到三方數據不是由本產品存儲的,對其變化是不可提前預知的,因此當三方數據做出導致數據變更的行為時,我們知曉這個變化也經常是后置的。
但不論是哪一種數據類型的數據源發(fā)生了變化,其共同特點是,如果放任不理,都會給產品帶來重大影響,所以需要我們面對變化作出調整方案。
二、數據源變化后應對方案
我們已知數據源變化會給產品帶來重大影響,因此需要對此作出應對方案,這個方案需要包含變化前后的差異和可能帶來的影響,以及解決方案(不局限于產品方案,也可以是運營方案等)。應對方案是為了盡可能地降低數據源變化所帶來的影響,避免出現嚴重的負面情況,具體應對方案中我們可以根據下面二步進行展開,一起來討論下吧。
1. 充分了解變化前后的數據差異
變化前后的數據差異,是問題產生以及帶來負面影響的直接原因,因此我們需要分別在相同條件下獲取1份變化前的數據,和1份變化后的數據,充分了解兩者之間的差異,包括數據格式的變化、數據內容的變化、以及數據傳輸方式的變化,才能為后續(xù)的解決方案提供理論依據。
可以按以下幾個方面對兩份數據一一比對,并最終得出差異結論。
1)數據格式差異
定義:什么是數據格式差異?數據格式差異就是指改變前的數據格式和改變后的數據格式不同。
例如數據源變化中數據格式由格式A變化成格式B,那么這里改變前的數據格式是A,改變后的是B,A和B是不同的格式,這就是一次數據格式差異。
產生差異的原因:不同的數據格式滿足不同的場景,當場景發(fā)生變化時,數據格式也就隨之發(fā)生了變化。
?影響及對策:
改變后的數據相比較改變前,更改了數據格式,可能會導致產品無法使用數據,例如為了使得數據不被直接解讀,數據格式從數值改變?yōu)榱俗址?,而原有產品都是以數值作為標準數據格式直接進行數據存儲,并提供數據分析。
當數據格式改為字符串時,產品無法獲取數據,原有產品以“數值”設計的功能都將無法使用,會給產品帶來客訴以及退款等負面作用,為此我們需要根據最新的數據格式,修改涉及到的功能,降低其產生的影響。
2)數據內容差異
定義:同樣的,什么是數據內容差異?數據內容的差異就是改變前后的數據在內容方面有出入,例如數據源變化中數據內容差生了差異,改變前的內容是A,改變后的內容是B,A和B是不同的內容,這就是一次數據內容差異。
而具體的A和B之間內容的差異關系會存在A多于B,A小于B,A和B存在交集,即改變后數據內容多于改變前,改變后少于改變前,以及改變前后互有多少。
產生差異的原因:不同的數據內容是由業(yè)務決定的,當業(yè)務發(fā)生變化時,數據內容也會隨之進行變化。
影響以及對策:
首先,我們先看A多于B的情況,即改變后數據相較于改變前,多了很多數據內容,多出來的內容對與現有功能是一個多余的狀態(tài),我們需要分析多出來的部分是否會對現有功能產生影響,多出來的數據內容可能會對原有的數據展示和存儲產生影響,包括因數據內容溢出導致的頁面展示錯位,數據存儲異常等,會導致現有功能無法使用,從而產生負面影響。
對于這個影響,我們需要修正展示和存儲規(guī)則,解決這個問題后,我們可以再分析多出來部分的內容是否支持做一些新能力或新功能,從而提升產品的價值和競爭力。
一起看個案例,例如訂單數據中的“訂單生成時間”原先只返回了年月日,本次改動返回了年月日時分秒,而產品中存儲的時間格式是 yyyy-mm-dd,而當前年月日時分秒的格式為 yyyy-mm-dd HH:MM:SS,如果不對訂單生產時間進行處理,會導致訂單生產時間直接無法被儲存,從而依賴“訂單生成時間”字段的功能就將失去原始數據,不再能向用戶提供依次統(tǒng)計的字段或者功能,導致用戶問題或場景無法解決。
其次,來看A少于B的情況,即改變后數據相較于改變前,少了很多數據內容,這一情況會直接導致改變后的原始數據少了一部分內容,從而導致產品功能中關鍵數據丟失,無法再向用戶提供原有設計的字段和功能。對于這個影響,我們需要盡快解決數據差異帶來的問題,盡可能讓功能和改變前保持一致。
還是通過案例來了解下,例如訂單數據中包含了買家ID、訂單編號、訂單生成時間、訂單狀態(tài)等,如果改變后訂單狀態(tài)缺失,那么就會直接導致產品中依賴“訂單狀態(tài)”的功能少了原始數據,無法計算數據或提供功能。
最后是,A和B存在交集的情況,即改變后數據相較于改變前,部分數據內容多了,部分數據內容少了。需要分別將多的部分和少的部分,參照A多于B和B多于A的情況,作出相應的改動。
結合如下的案例來加深下理解:
產品C提供了分析用戶付費情況的功能,其分析邏輯是,通過調用“公司中臺產品”的標準接口獲取數據,依賴接口中“用戶字段”下的業(yè)務參數(0-免費用戶,1-付費用戶)來分析付費情況,近期“中臺產品”增加了分析能力,對業(yè)務參數做了如下變化,0-免費用戶,1-付費用戶(0-500元),2-付費用戶(500元以上),同時更改了數據獲取方式為消息推送,這就會對產品C的功能起到影響。
分析對比變化前后的數據,可以發(fā)現這里的差異:
A. 數據內容發(fā)生了變化,業(yè)務參數值,1的含義變化了,新增了業(yè)務參數值2
業(yè)務參數的變化會導致付費用戶統(tǒng)計不完全,因為之前的付費用戶所取的業(yè)務參數為? 1,而現在只取 1會導致所分析出來的付費用戶是不完全的,付費用戶只有 1 這部分,丟失了業(yè)務參數為2 的這部分付費用戶,直接會導致付費用戶的統(tǒng)計結果是不完全的。
假如1月15日(業(yè)務參數于1月1日改變)付費100元的用戶有100個,付費1000元的用戶有30個,如果不對付費用戶所取業(yè)務參數邏輯進行調整,那么付費用戶的付費金額統(tǒng)計為100 x 100 = 10000元,直接導致了付費1000元以上的30個付費用戶沒有被統(tǒng)計進來,造成了付費用戶統(tǒng)計數據的丟失,對使用產品 C 分析店鋪付費用戶情況的商家對自己店鋪的情況造成誤判。
B. 數據傳輸方式發(fā)生了變化,從主動調用接口變成了被動接受推送
數據傳輸的變化,會導致原有取數方式-主動調用接口獲取的數據是空,直接導致付費用戶分析沒有數據結果產出。
同樣假如數據傳輸方式在1月14日改變,因為數據傳輸方式變更,原有的傳輸方式不再提供14號之后的數據,假如產品C不做出對應的調漲,在15日仍使用接口調用數據。
那么1月15日產品C通過接口獲取到的付費用戶數據為空,上文中130個付費用戶的數據都沒有辦法獲取到了,產品C分析店鋪付費用戶情況的功能也直接宣告失效。
這些差異直接影響產品C的“分析用戶付費”功能沒有原始數據,無法生產分析結果,整個功能不再能夠被用戶使用,并對用戶造成誤判等決策失誤 ,進而給該產品帶來客訴等負面影響。
為此我們需要作出對應的調整方案,使得產品功能與“數據改變前”一致,可以順利獲取到數據,并根據數據準確計算出付費用戶的情況包括人數、付費金額等,那么接下來我們要討論的就是如何根據調研結果設計產品應對方案。
2.?根據調研結果設計方案
在充分調研變化前后數據的差異,我們就能根據差異做出相應的調整方案,可以參考以下步驟展開:
- 第一步,是了解差異以及差異所帶來的影響,對照“標題1” 中的調研方式,我們已經可以充分了解變化前后的數據差異和對功能帶來的影響,是數據少了還是數據多了,是數據格式變了還是內容發(fā)生了改變,并通過這些差異推斷出給功能帶來的影響
- 第二步,是需要優(yōu)先解決差異導致原有功能無法使用的問題,例如數據無法更新,數據無法計算等,盡可能做到不因為數據變化,導致用戶無法使用功能和產品
- 第三步,可以從變化中尋找一些有價值的點,例如變化后比變化前多一部分數據內容,這部分內容是否可以支持對產品進行功能優(yōu)化或升級,提升產品的競爭力
一起來看下在產品C的案例中,首先在已知調研差異后,發(fā)現“付費用戶的定義從業(yè)務參數1,變?yōu)榱藰I(yè)務參數1和2”,影響了現有付費用戶分析的功能。
所以需要我們修改付費用戶統(tǒng)計的邏輯,解決這個問題:用戶字段中業(yè)務參數1和2的用戶都要標記為付費用戶。
其次,因為改變后相較于改變前的數據差異,多了對付費用戶付費金額程度的數據,我們就可以利用這個差異,提升“付費用戶”功能,例如對付費程度劃分等級v1和v2,分別代表微氪付費用戶和核心付費用戶,更加細分付費用戶的范圍,使得“付費用戶”功能有更大的價值。
三、總結
數據源分為自有數據和三方數據,它們都存在受到業(yè)務或政策導致變化的情況,可能會給產品帶來嚴重的負面影響。
因此,我們需要通過充分調研數據源變化情況,了解變化前后的差異點;根據差異點,設計產品方案;以及向用戶說明變化情況,來避免因數據源變化而帶來的影響。
#專欄作家#
晌午,微信公眾號:晌午自習室,人人都是產品經理專欄作家。4年產品經驗,專注于數據方向,目前是電商客服領域的產品 。
本文原創(chuàng)發(fā)布于人人都是產品經理,未經許可,禁止轉載。
題圖來自 Unsplash,基于CC0協(xié)議
自有數據,存儲在自己數據庫中,對于數據的把握,是相對較為可控的。