TheDataOpsManifesto

DataOps品質宣言

多年來,我們與各種規模、各種技術堆疊的資料團隊一起工作,逐漸相信:品質只來自測試,而值得測試的品質是整個交付,不只是資料。完美的資料經過錯誤的程式碼、報表或模型,仍然是錯誤,你的客戶分不出差別。我們當過那個天天催資料品質的人。我們盯著筆數,心裡祈禱。我們做過為期 12 個月的評估,產出一份文件,什麼也沒修好。我們做過沒人打開的儀表板,也在早上 9 點從客戶那裡聽說資料出了問題。我們想要一種方法:在每個環節證明品質,測試不必有人守在鍵盤前當英雄就能執行,並且能把證據交給有能力修復的人。DataOps 宣言說,品質至上。Data Journey 宣言說,讓客戶發現問題是不可接受的。這就是我們讓兩者落實的方式。

簽署宣言

透過我們的工作,我們建立了以下價值觀:

  • 自動化測試重於希望與手動檢查
  • 持續實踐重於一次性專案
  • 量測重於意見
  • 自動產生的測試重於手寫規則
  • 測試涵蓋率重於資料血緣圖
  • 產線上的品質檢查站重於最後才檢驗
  • 影響力與證據重於強制命令
  • 今天做到 70%重於某天做到完美

24 條原則,分為六組,外加一條。選擇一條即可跳轉。

1-4

證據

  1. 1

    只有測過的才算知道

    希望不是測試。業務審查不是,管線跑出綠燈也不是。如果沒有測試檢查過它,你就不知道它是對的。

  2. 2

    測試資料,監控工具

    品質等於資料品質加上流程品質。如果更新根本沒執行,再完美的資料表也沒用;作業亮綠燈,也說明不了裡面的數字。檢查每一個工具的錯誤與執行時間。

  3. 3

    不做手動檢查

    手動檢查只在有人想起來時才會執行,而凌晨 2 點沒人會想起來。資料每天都在進來,所以每個測試都要在每次載入時自動執行。Data Journey 宣言說得很直白:要像躲瘟疫一樣避免手動品質測試。

  4. 4

    先量測,再定標準

    先剖析資料,建立測試,讓基準線告訴你標準應該是什麼。讓委員會先寫標準,之後的每個決定都會被拖延。沒有測試結果,你只是又一個有意見的人。

5-6

人

  1. 5

    從一個人開始

    一個有動力的人加上一個免費工具,勝過一個有章程的指導委員會。找到那個天天催資料品質的人,把證據交給他。

  2. 6

    影響力就是工作本身

    發現缺陷的人,很少是產生缺陷的系統的負責人。來源資料對它原本的用途來說已經夠好,所以它的負責人沒有理由去改。讓修正變得容易點頭。

7-9

測試

  1. 7

    讓剖析結果來寫測試

    為每張資料表手寫幾百個測試,永遠寫不完。自動產生它們,把你的 SQL 留給只有領域專家才知道的業務規則。

  2. 8

    測試是共享資源

    分析師、資料管理員、工程師和模型都會碰到同一條規則,而其中只有一個有 Git 帳號。把每個測試和每個結果放在同一個權威資料庫裡:人透過 UI 存取,程式透過 API 存取,模型透過 MCP 存取。只有一份權威副本,每次變更都進入 Git,以便比對、審查與還原。

  3. 9

    今天的 70% 勝過某天的完美

    今天下午就上線一個能用的測試。每一輪都會讓你更了解自己的資料,標準也會隨之一輪輪改進。

10-13

評分與行動

  1. 10

    為重要的東西評分

    沒有人會因為一個傳真號碼欄位改變行為。為客戶在意的資料元素評分,並為每個客戶建立不同的評分。

  2. 11

    每個分數都能追溯到測試

    沒有修正路徑的分數只是雜訊。儀表板上的每個數字都要能追溯到一個測試,由它指出問題,並證明修正有效。

  3. 12

    讓行動變得容易

    每個儀表板都有一個具名的客戶,以及一個能修正資料的具名負責人。在他們已經在用的工單系統裡,把問題、影響、重現方式和需要修改的內容交給他們。

  4. 13

    保留趨勢線

    一個分數只是一個意見。六個月的分數,連結到一個你的主管已經在關注的 KPI,就是一筆預算。從兩個數字開始:正式環境中的錯誤數,以及上線一個變更所需的時間。當你要爭取更多空間時,趨勢線就是你拿出來的證據。

14-19

實踐

  1. 14

    愛上你的錯誤

    每個缺陷都會讓你更了解你的資料或流程。在品管圈裡一起檢討,修正產生缺陷的那個步驟。怪步驟,不怪人。

  2. 15

    把交付條款寫進測試

    資料合約就是雙方都同意的一組測試。能執行的條款,勝過無法執行的承諾。

  3. 16

    證明移轉成功

    移轉承諾的是:新系統與舊系統承載同樣的事實。測試兩邊並證明這一點,從筆數到欄位值。

  4. 17

    減少雜訊

    一個沒人信任的警示比沒有警示更糟。調整每個測試,直到每次失敗都有意義,並把它送給能採取行動的人。把每晚都會觸發的測試降級,但絕不靜音。

  5. 18

    正式環境也歸你負責

    部署只是工作的一半,不是終點。總得有人看著產線,那個人就是你。

  6. 19

    測試代理寫出的東西

    一個 AI 代理幾秒鐘就能交付一個轉換,卻不會把整條管線記在腦子裡。讓它起草修正工單和自訂 SQL。它碰過的其他一切,在測試證明之前都算未經測試。

20-24

在每個環節證明品質

  1. 20

    測試… 在源頭

    逐表、逐欄地證明來源資料適合用途。來源不歸你所有,所以你的證據必須能說服它的負責人。

  2. 21

    測試… 在匯入時

    監控每張資料表的新鮮度、資料量、結構變更與漂移。你不可能手動盯住 6,000 張資料表,異常偵測可以。

  3. 22

    測試… 在正式環境中

    在每一層之間設置絆線,發現缺陷就讓產線停下來。不是每次失敗都值得停線,所以要事先決定哪些必須停止,哪些只需警告。有人排查期間,正式環境繼續使用最後一份已知正確的資料。

  4. 23

    測試… 在開發中

    部署前,用今天的程式碼去跑昨天正式環境資料的複本或切片。重新命名一個欄位,就應該有紅燈告訴你弄壞了下游哪張報表。在這裡抓到一個 bug,成本只有客戶發現時的百分之一。

  5. 24

    測試… 無所不在,每次都做,全面自動化

    同一個空值檢查,在四個地方做四份工作。跳過一個,你就會漏掉那個失敗。涵蓋每張資料表、每個欄位、每個工具,以及客戶讀到的每一個數字。不做手動測試。

從品質開始 DataOps

DataOps 宣言有 18 條原則,沒有人能在某個星期一全部採用。從自動化資料測試開始。這是成本最低的一步,也是客戶最先感受到的一步。編排、CI/CD 和可觀測性,全都取決於知道資料是否正確。

簽署 DataOps 品質宣言

如果你寧願用自動化測試證明品質,而不是寄望於它,請留下你的名字。

用開源工具實踐這份宣言

DataOps TestGen

Profile your data and generate the quality tests automatically. Full coverage in minutes, with no hand-written rules to maintain.

Install TestGen

DataOps Process Observability

Watch every tool and every run from source to the dashboards that depend on it. Catch errors, late arrivals, and bottlenecks before your customer does.

Get Process Observability

閱讀其他宣言

The DataOps Manifesto

18 principles for delivering analytics, plus one: start with data testing.

Read the DataOps Manifesto

The Data Journey Manifesto

22 principles for observing the paths your data takes, so you find the problem before your customer does.

Read the Data Journey Manifesto