數(shù)據(jù)工程的介紹

我們可以將數(shù)據(jù)視為一種新興的生產(chǎn)要素或生產(chǎn)原材料。通過對其進行加工可以創(chuàng)造更多的價值,這些價值通常圍繞著業(yè)務(wù)和場景展開。因此,我們需要以一種能夠?qū)?shù)據(jù)生產(chǎn)和加工應(yīng)用到實際場景和價值中的方式來使用數(shù)據(jù)。

《數(shù)據(jù)工程白皮書》中的數(shù)據(jù)范疇包括結(jié)構(gòu)化、非結(jié)構(gòu)化和半結(jié)構(gòu)化的各種類型數(shù)據(jù)。這是因為我們需要處理各種形式的數(shù)據(jù),無論是二維表格,還是圖像、音頻、視頻等等。這些數(shù)據(jù)的加工和處理,是我們實現(xiàn)更智能化場景的關(guān)鍵。因此,我們需要以數(shù)據(jù)為中心,去面對并解決這些數(shù)據(jù)加工的挑戰(zhàn)。

數(shù)據(jù)越來越重要


(資料圖片僅供參考)

在面對不同的問題和企業(yè)發(fā)展現(xiàn)狀時,數(shù)據(jù)需求也會有所不同。為了更好地說明這一點,《數(shù)據(jù)工程白皮書》列舉了信息化、數(shù)字化和智能化三個階段。在信息化階段,企業(yè)更多地關(guān)注業(yè)務(wù)流程和線上化,在構(gòu)建系統(tǒng)時,我們需要先關(guān)注功能實現(xiàn),而非數(shù)據(jù)的整合和平臺化。在功能實現(xiàn)之后,我們需要將業(yè)務(wù)流程的變化信息轉(zhuǎn)化為數(shù)據(jù),并將這些數(shù)據(jù)串聯(lián)起來,以形成業(yè)務(wù)數(shù)據(jù)化的大方向。在智能化方面,像ChatGPT和文本生成等技術(shù)最近非?;馃?。然而,實現(xiàn)智能化需要依賴于訓(xùn)練數(shù)據(jù)樣本、構(gòu)建模型、測試和優(yōu)化等過程,這些過程都需要使用數(shù)據(jù)作為基礎(chǔ)。因此,數(shù)據(jù)在智能化過程中的使用至關(guān)重要。

企業(yè)所處的不同階段

在使用數(shù)據(jù)的過程中,不同階段的企業(yè)都需要從四個大方向考慮。首先,在業(yè)務(wù)數(shù)據(jù)化過程中,需要用數(shù)據(jù)展現(xiàn)業(yè)務(wù)經(jīng)營過程,例如數(shù)據(jù)洞察和可執(zhí)行業(yè)務(wù)動作。包括了現(xiàn)有業(yè)務(wù)過程、銷售額提升、銷售額提升的結(jié)構(gòu)和下一步行動方向。

企業(yè)使用數(shù)據(jù)的四個階段

這里可以用銷售提升3%為例:

3%的銷售額提升是描述了企業(yè)目前正在發(fā)生什么 3%銷售額的提升是原有業(yè)務(wù)開展還是新興業(yè)務(wù)開展描述了企業(yè)發(fā)生變化的原因 3%銷售額的提升對企業(yè)運營來說,是需要繼續(xù)投入新業(yè)務(wù)抑或是需要保持優(yōu)勢業(yè)務(wù)的持續(xù)開展描述了下一步的方向在哪里 企業(yè)發(fā)展訴求是要達到5%銷售額的提升,那么需要如何投入、如何發(fā)力描述了企業(yè)如何確保業(yè)務(wù)發(fā)展方向與預(yù)想保持一致

數(shù)據(jù)在企業(yè)中的應(yīng)用場景將越來越多,因此對于數(shù)據(jù)工程的概念可能存在不同的理解。需要澄清的是,數(shù)據(jù)工程是一個體系,涵蓋了從企業(yè)數(shù)據(jù)戰(zhàn)略、需求設(shè)計、技術(shù)設(shè)計到開發(fā)、質(zhì)量管控和流程等方面。它源于軟件工程的實踐,但是在數(shù)據(jù)工程中被提煉出來并映射到數(shù)據(jù)層面的工作。需要強調(diào)的是,數(shù)據(jù)工程不僅僅是數(shù)據(jù)開發(fā)。

為了快速實現(xiàn)數(shù)據(jù)工程這個復(fù)雜體系,需要規(guī)?;姆绞絹硖岣唛_發(fā)效率,并減少人員更替和交接所帶來的影響。為此,《數(shù)據(jù)工程白皮書》提出了相關(guān)實踐和對人員能力的要求,并提到了數(shù)據(jù)工程成熟度的概念。不同企業(yè)的需求和狀態(tài)不同,有些企業(yè)可能只需要遵循一些規(guī)范化的開發(fā)原則,而有些企業(yè)需要應(yīng)對幾十人甚至上百人的開發(fā)團隊,保證在每個項目上都能發(fā)揮更高的工作效率。這時,需要對整個企業(yè)的數(shù)據(jù)工程成熟度進行評估,以有針對性地提升相關(guān)方向。

Thoughtworks對于數(shù)據(jù)工程概念的定義

數(shù)據(jù)工程的價值

數(shù)據(jù)轉(zhuǎn)化為業(yè)務(wù)價值的過程與企業(yè)使用數(shù)據(jù)的四個階段緊密相連。對于銷售額提升 3% 的需求,我們需要將這個數(shù)字拆解并了解其背后所要使用的數(shù)據(jù)以及所需經(jīng)歷的過程,比如銷售額是含稅還是不含稅、單位是按照什么樣的金額進行換算等。在處理數(shù)據(jù)時,也會涉及到不同系統(tǒng)的選擇和數(shù)據(jù)信息的持續(xù)定義和澄清過程,最終才能得到真正的洞見。在整個數(shù)據(jù)流轉(zhuǎn)過程中,我們需要不斷提升各個步驟的效率。

數(shù)據(jù)在企業(yè)內(nèi)流轉(zhuǎn)過程

在數(shù)據(jù)工程中,數(shù)據(jù)從原料加工到成品需要考慮很多因素,如指標(biāo)計算口徑、數(shù)據(jù)異常預(yù)警等。同時,數(shù)據(jù)需要在不同階段進行設(shè)計和實現(xiàn),以體現(xiàn)企業(yè)經(jīng)營的狀況。在數(shù)據(jù)工程的設(shè)計中,需要考慮到各個階段的注意要素,以保障數(shù)據(jù)工作的有效性和準(zhǔn)確性。在業(yè)務(wù)和數(shù)據(jù)的融合過程中,需要將業(yè)務(wù)訴求與數(shù)據(jù)處理有效地融合在一起。業(yè)務(wù)和數(shù)據(jù)的邊界越來越模糊,因此需要技術(shù)支撐和保障,實現(xiàn)業(yè)務(wù)、數(shù)據(jù)和技術(shù)的有機融合,這是實現(xiàn)數(shù)據(jù)到價值過程的核心要素。

數(shù)據(jù)“原料”到“成品”對加工示例

數(shù)據(jù)工程是一個復(fù)雜的體系,需要從人員層面解決開發(fā)成本和效率的問題。有標(biāo)準(zhǔn)化的設(shè)計和管控可以提高數(shù)據(jù)工程的效率和面對規(guī)?;瘯r的應(yīng)對能力。團隊之間需要統(tǒng)一數(shù)據(jù)標(biāo)準(zhǔn),解決數(shù)據(jù)孤島問題,降低業(yè)務(wù)場景下的聯(lián)動成本。對于企業(yè)能夠快速滿足業(yè)務(wù)需求,以更小的成本實現(xiàn)業(yè)務(wù)訴求。根本目的是打造一個高響應(yīng)力的企業(yè)流程,以提高數(shù)據(jù)生產(chǎn)和加工的效率。只有在數(shù)據(jù)生產(chǎn)的相關(guān)原材料準(zhǔn)確無誤,才能挖掘數(shù)據(jù)的價值和實現(xiàn)智能化的演進。因此,統(tǒng)一、標(biāo)準(zhǔn)化和提高效率是數(shù)據(jù)工程的核心要素。

數(shù)據(jù)工程對企業(yè)對價值

數(shù)據(jù)工程的價值觀

我們看到了數(shù)據(jù)工程的價值,那么為了更好地落地數(shù)據(jù)工程,我們需要明確數(shù)據(jù)工程的價值觀。思特沃克數(shù)據(jù)和人工智能團隊根據(jù)我們服務(wù)的不同的客戶及過往的項目經(jīng)驗,總結(jié)了如下的價值觀。我們參考了敏捷宣言中xxx勝過xxx的方式,我們認(rèn)為右邊的也有價值,但是更重視左邊的價值,因為每個企業(yè)都有自己的發(fā)展規(guī)模和階段,在每個時期會有不同的側(cè)重點。我們也期望在企業(yè)內(nèi)部,根據(jù)自身的實際情況,建立符合企業(yè)需求的價值觀,同時不斷地調(diào)整和演進。

一、以數(shù)據(jù)產(chǎn)生的業(yè)務(wù)價值為交付結(jié)果

我們應(yīng)該關(guān)注數(shù)據(jù)處理后能為業(yè)務(wù)帶來的價值,而非僅僅關(guān)注數(shù)據(jù)接入和處理指標(biāo)的數(shù)量。例如,我們可以關(guān)注數(shù)據(jù)如何幫助了解銷售訂單的趨勢及其原因,以便為業(yè)務(wù)提供有益的指導(dǎo)。盡管不一定非得用業(yè)務(wù)收入作為衡量標(biāo)準(zhǔn),但我們應(yīng)該努力實現(xiàn)數(shù)據(jù)產(chǎn)生的業(yè)務(wù)價值作為交付結(jié)果。

我們觀察到有些企業(yè)在建立數(shù)據(jù)中臺或數(shù)據(jù)平臺時,非常關(guān)注接入的數(shù)據(jù)量和計算指標(biāo)的多少,將其作為衡量項目成功與否的重要指標(biāo)。雖然數(shù)據(jù)接入、處理和指標(biāo)計算可以作為衡量數(shù)據(jù)平臺或數(shù)據(jù)中臺成果的指標(biāo),因為它們反映了工作量和處理量,但我們不建議將它們視為北極星指標(biāo)或非常重要的指標(biāo)。我們強調(diào)的是數(shù)據(jù)產(chǎn)生的價值,即經(jīng)過處理后的數(shù)據(jù)如何服務(wù)于實際業(yè)務(wù)場景。

二、建立全功能的團隊,實現(xiàn)端到端交付

許多企業(yè)在數(shù)據(jù)處理過程中存在類似的問題,如一個業(yè)務(wù)場景的實現(xiàn)可能會涉及數(shù)據(jù)湖、數(shù)據(jù)倉庫和報表可視化等部門,這個跨組、部門帶來的協(xié)作隔閡是非常影響交付結(jié)果的。雖然我們不一定要完全打破現(xiàn)有的組織形式,但我們應(yīng)該改進我們的協(xié)作方式,盡量減少溝通隔閡,提高團隊的協(xié)作效率。比如,建立基于項目的臨時交付團隊。

三、面向業(yè)務(wù)域的劃分和面向未來的設(shè)計

隨著數(shù)據(jù)驅(qū)動的業(yè)務(wù)和企業(yè)愿景的發(fā)展,數(shù)據(jù)分析需求將不斷擴大,企業(yè)數(shù)據(jù)應(yīng)用預(yù)計會有很大的發(fā)展?jié)摿ΑR虼?,在?guī)劃時要具有一定的前瞻性,考慮到企業(yè)未來對數(shù)據(jù)存儲、計算和分析的需求。

在這個背景下,數(shù)據(jù)存儲、計算框架的技術(shù)選擇都需要謹(jǐn)慎考慮。例如,選擇傳統(tǒng)數(shù)據(jù)庫還是Hive,Iceberg等,大數(shù)據(jù)處理框架如Spark、Flink,還是pandas就可以。此外,還需要考慮如何劃分?jǐn)?shù)據(jù)存儲,例如數(shù)據(jù)庫的劃分。在這里,我們推薦按照業(yè)務(wù)域進行劃分,包括存儲、ETL組織、ETL調(diào)度(DAG)和報表規(guī)劃等。這樣,可以根據(jù)業(yè)務(wù)需求變化進行靈活調(diào)整,適應(yīng)企業(yè)的發(fā)展。

四、團隊知識積累和傳承勝過簡單的文檔交接

在項目過程中,需要業(yè)務(wù)分析師、開發(fā)人員和測試人員緊密合作,共同了解需求,通過緊密協(xié)作進行知識傳承。在實際開發(fā)過程中,我們鼓勵結(jié)對編程、Code Review等方式進行知識傳承。我們的測試人員通常會在項目開始階段就參與需求了解,與業(yè)務(wù)和開發(fā)人員共同參與需求的確定。這樣的知識傳承方式有助于項目順利進行,而不是業(yè)務(wù)分析師把一堆文檔交給開發(fā)和測試。

我們希望這些價值觀能夠引導(dǎo)大家進行深入思考,更好地落地數(shù)據(jù)工程。不只關(guān)注交付結(jié)果,更加關(guān)注交付流程中的需求、開發(fā)、測試和業(yè)務(wù)的協(xié)作和流程,從而提升交付效率和質(zhì)量,建立更加和諧的數(shù)據(jù)應(yīng)用交付團隊。

數(shù)據(jù)工程的7條原則

基于上面的價值觀,我們形成了7條原則來指導(dǎo)各種場景下的應(yīng)用。我們將原則打印并放在顯眼位置提醒團隊成員。在日常工作中遇到分歧時,我們回顧這些原則以指導(dǎo)數(shù)據(jù)開發(fā)過程的改進,確保團隊始對數(shù)據(jù)工程的一致理解。

原則一、功能設(shè)計與開發(fā)要從價值交付考量:

我們會通過一系列的活動確保項目的交付是基于業(yè)務(wù)價值的。通過愿景工作坊,針對高層管理者確定項目業(yè)務(wù)愿景。接下來,通過業(yè)務(wù)訪談,需求分析師和產(chǎn)品經(jīng)理與一線用戶進行溝通,了解現(xiàn)狀、痛點和工作流程?;谑占男畔ⅲ覀冞M行桌面研究,整合類似客戶和項目經(jīng)驗以及行業(yè)前沿洞見。

然后,我們通過訪談不同業(yè)務(wù)角色,為平臺用戶創(chuàng)建不同的用戶畫像(persona)。有時會為用戶起有趣的名字,以便討論時更加生動。接著,通過服務(wù)藍圖工作坊梳理業(yè)務(wù)流程、系統(tǒng)支撐和數(shù)據(jù)產(chǎn)生交互過程。在梳理出需解決問題和需完成任務(wù)后,我們通過優(yōu)先級考量方式對功能進行排序,平衡緊急程度和價值,從數(shù)據(jù)、技術(shù)和業(yè)務(wù)三個維度進行考量。

通過一系列活動確保我們是在為業(yè)務(wù)交付價值,在交付過程中,我們也會有一些其他的實踐確保和業(yè)務(wù)的緊密合作。

原則二、合理的架構(gòu)設(shè)計不僅指解決現(xiàn)有問題,還能夠在一定程度解決未來問題:

數(shù)據(jù)類項目的重構(gòu)成本比傳統(tǒng)應(yīng)用開發(fā)要高一些,因為數(shù)據(jù)遷移和上下游庫表的強依賴。所以,我們建議數(shù)據(jù)平臺的架構(gòu)要有一定的前瞻性。

在設(shè)計過程中,考慮四個方向:面向領(lǐng)域的設(shè)計,即按照領(lǐng)域維度拆分DAG構(gòu)建和庫表結(jié)構(gòu);演進式的平臺和工具設(shè)計,在選擇成熟的數(shù)據(jù)平臺工具時,要注意短時的易用性與長期的可維護性之間的平衡;最后是數(shù)據(jù)模型設(shè)計的前瞻性,通過領(lǐng)域?qū)<疫M行邏輯建模并達成共識,方便基于邏輯模型進行討論和實現(xiàn)。

原則三、我們倡導(dǎo)通過統(tǒng)一的工作標(biāo)準(zhǔn)和流程提升團隊協(xié)作效率:

雖然敏捷開發(fā)不鼓勵一定要遵循某個流程,但我們?nèi)匀恍枰欢ǖ墓ぷ鳂?biāo)準(zhǔn)。這些流程應(yīng)該是可調(diào)的,以便隨著時間的推移和團隊的進步進行調(diào)整。

我們通過多年的實踐,摸索出一套適合國內(nèi)環(huán)境的敏捷開發(fā)流程。我們形成了一個穩(wěn)定的交付周期,每兩周進行一次迭代。在這個迭代開始前,我們會不斷地與業(yè)務(wù)方溝通以確定優(yōu)先級,確定迭代交付的內(nèi)容。在迭代中,對每個故事卡的完成情況進行驗收,確保數(shù)據(jù)準(zhǔn)確性,并在最后進行持續(xù)發(fā)布。完整的迭代過程包括,拆分故事卡,迭代計劃,故事卡墻的建立,迭代開發(fā),功能演示,用戶驗收,持續(xù)發(fā)布,迭代回顧。

過程中,如何進行數(shù)據(jù)探測,單元測試,代碼審核,代碼提交規(guī)范,數(shù)據(jù)質(zhì)量校驗,都會形成團隊自己的工作標(biāo)準(zhǔn)和流程,減少協(xié)作的隔閡。

原則四、工具是知識沉淀的具體表現(xiàn),有效的工具能夠提升規(guī)模化開發(fā)效率:

工具是知識沉淀的具體表現(xiàn),通過有效的工具可以提升我們的開發(fā)效率。數(shù)據(jù)項目的交付可能包括數(shù)據(jù)集、報表、模型等可見部分,以及不可見的數(shù)據(jù)處理流程。我們需要在數(shù)據(jù)處理中提升效能,逐漸沉淀一些工具,例如數(shù)據(jù)接入層的自動化工具、ETL框架、工作臺等,以提升開發(fā)效能。

原則五、欣然面對需求變化,及時調(diào)整交付策略 :

這個原則主要是關(guān)于面對變化,并及時調(diào)整交付策略?;谝粋€Backlog的管理需求,我們需要處理來自不同來源的需求,如業(yè)務(wù)需求、公司規(guī)劃舉措、產(chǎn)品用戶反饋和線上問題等。這些需求將被歸入到一個Backlog中,并根據(jù)優(yōu)先級和緊迫性進行排序,再放入后續(xù)迭代中。

然而,我們需要注意一點:在應(yīng)對需求變化時要避免過于隨意。例如,當(dāng)客戶在今天晚上提出需求,希望明天就能完成時,我們需要評估需求的緊迫性是否真的如此之高,并考慮如何更好地支持這種需求,例如通過改造系統(tǒng),讓業(yè)務(wù)自己完成。原因在于開發(fā)需要有自己的節(jié)奏,如果頻繁地切換上下文或打破開發(fā)節(jié)奏,可能會對開發(fā)帶來反向影響。因此,我們需要小心管理這些需求。

總之,在面對需求變化和管理業(yè)務(wù)變化時,要注意避免隨意的變化,并確保開發(fā)能夠保持自己的節(jié)奏。這樣,我們才能更好地應(yīng)對和管理需求變化。

原則六、數(shù)據(jù)治理需要滲透到整個數(shù)據(jù)工程落地過程當(dāng)中:

在實際操作中,我們倡導(dǎo)精益數(shù)據(jù)治理。這是因為在企業(yè)內(nèi)進行大而全的數(shù)據(jù)治理會消耗大量的人力物力,并且實施起來相當(dāng)困難。

因此,我們現(xiàn)在的原則是基于數(shù)據(jù)應(yīng)用驅(qū)動的數(shù)據(jù)治理。例如,在做一個訂單相關(guān)的報表時,我們首先針對這部分的數(shù)據(jù)治理,解決數(shù)據(jù)質(zhì)量、數(shù)據(jù)安全等問題,并根據(jù)應(yīng)用場景設(shè)計相應(yīng)的解決方案。當(dāng)我們需要處理其他方面的數(shù)據(jù),如簽收和物流時,可以按照數(shù)據(jù)應(yīng)用的角度逐步完善數(shù)據(jù)治理制度。

在數(shù)據(jù)項目的實施過程中,可能會遇到一些數(shù)據(jù)問題,這些數(shù)據(jù)問題需要反向到業(yè)務(wù)系統(tǒng)的數(shù)據(jù)源進行改變。但業(yè)務(wù)系統(tǒng)的變化可能會較慢或響應(yīng)遲緩,這時可以通過技術(shù)債進行管理,在數(shù)據(jù)平臺可以暫時采用Workaround來解決問題。

總之,我們需要采用切片式的數(shù)據(jù)治理,并通過技術(shù)債進行全面數(shù)據(jù)質(zhì)量管理。

原則七、人是數(shù)據(jù)工程落地的核心,要注重人員培養(yǎng)、知識傳承:

雖然我們將這個原則放在第七位,但實際上它是最重要的原則。敏捷宣言中提到個人和交互勝過流程和工具,所以對于整個數(shù)據(jù)工程來說,人員是核心。我們經(jīng)常在跟客戶探討數(shù)據(jù)項目的交付實踐的時候,最后都會歸結(jié)到員工能力和文化上。因此,我們會注重人員本身的培養(yǎng),包括知識傳承和成長。

這里的成長并不僅僅指企業(yè)內(nèi)部的職業(yè)發(fā)展路線,而是指在項目或產(chǎn)品開發(fā)過程中的成長。我們有一些好的實踐,如項目初期,團隊成員會介紹自己的能力背景,并期望在項目中的成長。在項目過程中,我們通過讀書會、分享、結(jié)對編程和代碼審查等方式,為數(shù)據(jù)工程師和數(shù)據(jù)分析師提供學(xué)習(xí)機會。對于長期項目,我們需要有意識的逐漸培養(yǎng)人才梯隊。上圖中這里有一句話:“你需要長得這么高才能敏捷嗎?”實際上,并非如此,一個團隊中會有不同層次的人才,我們需要提供一個成長環(huán)境,讓大家能夠提升能力和傳承知識。

總結(jié)

數(shù)據(jù)工程是數(shù)字經(jīng)濟下確保數(shù)據(jù)價值轉(zhuǎn)化的重要保障, 是加速數(shù)據(jù)轉(zhuǎn)化為價值的重要手段,數(shù)據(jù)工程能力應(yīng)對的不僅僅是當(dāng)下的挑戰(zhàn),更是應(yīng)對未來數(shù)字經(jīng)濟大趨勢的秘密武器。隨著需要處理的數(shù)據(jù)量的增長,為了處理數(shù)據(jù)領(lǐng)域的各種新問題,各種新技術(shù)、新概念逐漸涌現(xiàn),現(xiàn)代數(shù)據(jù)倉庫、數(shù)據(jù)湖、湖倉一體、分布式數(shù)據(jù)架構(gòu)、機器學(xué)習(xí)、數(shù)據(jù)云原生等逐一登上舞臺,數(shù)據(jù)工程的發(fā)展道阻且長。

所以無論是站在企業(yè)內(nèi)部的發(fā)展訴求還是站在企業(yè)所處的社會大環(huán)境,都在要求企業(yè)加速自己轉(zhuǎn)型、完善自己的數(shù)據(jù)能力,在激烈的市場競爭過程中獲得有利地位才能在未來數(shù)字經(jīng)濟繁榮成熟期到來之前占據(jù)有利戰(zhàn)略發(fā)展位置。

關(guān)注Thoughtworks洞見公眾號,獲取Thoughtworks《數(shù)據(jù)工程白皮書》

標(biāo)簽: