如何正確提出數(shù)據(jù)需求
導(dǎo)讀:當(dāng)下,數(shù)據(jù)在業(yè)務(wù)中扮演著越來(lái)越重要的角色,沒(méi)有數(shù)據(jù)不知道業(yè)務(wù)進(jìn)展如何,沒(méi)有數(shù)據(jù)不知道如何決策,企業(yè)將數(shù)據(jù)視為風(fēng)向標(biāo),也將數(shù)據(jù)視為源動(dòng)力。在企業(yè)內(nèi)部數(shù)據(jù)的流動(dòng)環(huán)節(jié),最為頻繁的就是不同角色表達(dá)對(duì)數(shù)據(jù)的需求。本文將分享一個(gè)數(shù)據(jù)需求表達(dá)的范式,通過(guò)這個(gè)范式將自己的數(shù)據(jù)需求或者協(xié)助數(shù)據(jù)需求者明確、精準(zhǔn)、快速地表達(dá)自己的想法。
01 對(duì)范式的思考
如果功能性產(chǎn)品,我一般會(huì)按照業(yè)務(wù)模型、業(yè)務(wù)邏輯、用戶交互三個(gè)層面思考,如何理解業(yè)務(wù)方的產(chǎn)品訴求,也會(huì)用它來(lái)在檢視自己的產(chǎn)品需求是否完善、邏輯是否無(wú)暇。
這三層思考正是映射到軟件開(kāi)發(fā)領(lǐng)域的經(jīng)典 MVC 框架,從需求層面到執(zhí)行開(kāi)發(fā)層面能夠找到一一對(duì)應(yīng)的參照,這在軟件工程中特別重要,極大減少了溝通成本和設(shè)計(jì)成本。
由此引發(fā),對(duì)于數(shù)據(jù)需求,我想到我們?cè)趫?zhí)行數(shù)據(jù)需求時(shí),不論數(shù)據(jù)開(kāi)發(fā)還是數(shù)據(jù)分析師,抑或是自己,都會(huì)用 SQL 去操作,這讓我不可避免地想到能不能用 SQL 的語(yǔ)法結(jié)構(gòu)來(lái)做為數(shù)據(jù)需求表達(dá)范式。
事實(shí)是可以的。
02 對(duì) SQL 表達(dá)的剖析
無(wú)論一個(gè)數(shù)據(jù)需要多么復(fù)雜,關(guān)聯(lián)多少?gòu)埍?,做多少運(yùn)算,只要庫(kù)表是齊備的,理論上都可以得到我們想要的數(shù)據(jù)。你看,在 SQL 數(shù)據(jù)查詢中往往是這樣的一個(gè)結(jié)構(gòu):
SELECT a,
b,
c,
count(a) AS i,
count(DISTINCT b) AS h,
max(c) AS t
FROM tab
WHERE day > 20211101
AND b = ‘x’
GROUP BY a,
b,
c
這里邊有三個(gè)關(guān)鍵的子句需要我們關(guān)注:
WHERE/FROM
GROUP BY
SELECT
顯然,F(xiàn)ROM 和 WHERE 確定了我們要查詢的數(shù)據(jù)范圍,GROUP BY 給出了我們對(duì)數(shù)據(jù)的分組依據(jù),SELECT 最終產(chǎn)出想要的數(shù)據(jù)。
在 SQL 的語(yǔ)法結(jié)構(gòu)中,已經(jīng)非常清晰地告訴我們數(shù)據(jù)的邏輯,我們要做的就是參照它,準(zhǔn)確地表達(dá)我們的數(shù)據(jù)訴求。
03 SQL 的啟示
在對(duì) SQL 結(jié)構(gòu)的分析后,我們可以得到這樣的一個(gè)需求表達(dá)范式三要素,這個(gè)范式能保證我們正確地表達(dá)數(shù)據(jù)需求和順暢地溝通數(shù)據(jù)需求。這三個(gè)要素是:
1) 統(tǒng)計(jì)范圍
這部分對(duì)應(yīng) WHERE 和 FROM,需要知道需求中所涉及的統(tǒng)計(jì)領(lǐng)域以及限定條件。
如你要統(tǒng)計(jì)商品的數(shù)據(jù),需要確定是所有商品還是當(dāng)前在上架狀態(tài)的商品;統(tǒng)計(jì)用戶的信息,是否只包含付費(fèi)用戶;統(tǒng)計(jì)流量數(shù)據(jù)是否只包含手機(jī)端的流量等等。
時(shí)間的范圍是必須的,即使是統(tǒng)計(jì)所有歷史數(shù)據(jù)也需要明確出來(lái)。當(dāng)然時(shí)間也可以是動(dòng)態(tài)的,如最近 7 天,近一個(gè)月等,這和數(shù)據(jù)的操作執(zhí)行時(shí)間有關(guān)。
數(shù)據(jù)的統(tǒng)計(jì)范圍的確定有助了我們將問(wèn)題限制在一定的界限內(nèi),減少了對(duì)數(shù)據(jù)范圍認(rèn)知不一致而導(dǎo)致的溝通障礙。
2) 統(tǒng)計(jì)維度
統(tǒng)計(jì)維度就是 SQL 中 GROUP BY 的部分,利用 GROUP BY 對(duì)明細(xì)數(shù)據(jù)進(jìn)行分組,數(shù)據(jù)分析時(shí)以這些分組的視角對(duì)數(shù)據(jù)表現(xiàn)進(jìn)行評(píng)估。所有的數(shù)據(jù)無(wú)論是單一的分組還是多重分組,都會(huì)有相應(yīng)的維度表示。
在一個(gè)時(shí)間范圍內(nèi),維度可以按照年、月、周、日、時(shí)、分等粒度劃分難度,前提是有相應(yīng)更小粒度的細(xì)節(jié)數(shù)據(jù)。
統(tǒng)計(jì)學(xué)意義上的分類數(shù)據(jù)、離散數(shù)據(jù)都可以做為維度,如針對(duì)性別,可以按男、女維度來(lái)分析數(shù)據(jù)。連續(xù)數(shù)據(jù)通過(guò)分箱等手段也可以進(jìn)行維度劃分。
維度的確定,明晰了數(shù)據(jù)分析的角度,對(duì)分析結(jié)果至關(guān)重要。當(dāng)然,多維分析也是一種數(shù)據(jù)搜索的常用手段,在需求確認(rèn)時(shí),需要明確是否需要多維分析以及有哪些維度組合。
3) 統(tǒng)計(jì)指標(biāo)
統(tǒng)計(jì)指標(biāo)是 SQL 的 SELECT 數(shù)據(jù)輸出部分,就是最終看到的數(shù)據(jù)形式。一般情況下所有維度會(huì)輸出并作為指標(biāo)的指示。
指標(biāo)即口徑,也就是針對(duì)前述維度的計(jì)算方法,維度一般會(huì)參與計(jì)算,但有時(shí)也不參與計(jì)算。計(jì)算方法一般會(huì)是計(jì)數(shù)、去重計(jì)數(shù)、求極值、平均數(shù)、標(biāo)準(zhǔn)差等聚合運(yùn)算。
統(tǒng)計(jì)指標(biāo)是需求方最終看到的結(jié)果,從范圍到維度,到最終的指標(biāo)數(shù)據(jù)輸出,指標(biāo)的計(jì)算方法是最為重要的一個(gè)環(huán)節(jié)。
以上三個(gè)元素,能夠比較準(zhǔn)確地描述一個(gè)數(shù)據(jù)需求,讓需求執(zhí)行者明確地進(jìn)行數(shù)據(jù)執(zhí)行操作。
04 最終我們?nèi)绾巫?/h2>
由于需求方一般不具備 SQL 技能,不能理解以上相關(guān)概念,但我們確實(shí)需要這些信息,可以平時(shí)做一些引導(dǎo)和培訓(xùn),讓其按這種范式提出需求。如果無(wú)法抽象理解這些概念,可引導(dǎo)需求方畫(huà)出數(shù)據(jù)樣例,并對(duì)所有列一一指明邏輯。
另外,一些其他信息或者對(duì)我們也有幫助:
需求方的身份背景:幫助我們判斷需求提出者的動(dòng)機(jī)及分析思路;
需求背景:了解提出此數(shù)據(jù)需求的業(yè)務(wù)背景;
需求的頻率:如果是周期性數(shù)據(jù)可以考慮產(chǎn)品化;
需求的期望完成時(shí)間:方便對(duì)需求進(jìn)行排期,確定優(yōu)先級(jí)。
作者:李慶輝(新芭),數(shù)據(jù)產(chǎn)品專家,數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)負(fù)責(zé)人;擅長(zhǎng)數(shù)據(jù)治理、數(shù)據(jù)分析、數(shù)據(jù)化運(yùn)營(yíng);Python書(shū)籍《深入淺出Pandas》作者;“數(shù)據(jù)人創(chuàng)作者聯(lián)盟”成員。
本文由@一個(gè)數(shù)據(jù)人的自留地 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash,基于CC0協(xié)議。
- 目前還沒(méi)評(píng)論,等你發(fā)揮!