跳至主要内容

別再用工程師的思維工作,開始像架構師一樣思考

· 閱讀時間約 10 分鐘
uuboyscy
Data Engineer | Founder of uuboyscy.dev

很長一段時間,我以為自己的工作就是寫出好的程式碼。建好 pipeline、調好 job、修好 cluster。技術執行能力越強,我的價值就越高。

直到 AI 出現之後,這個價值的定義開始改變了。


我以前是怎麼思考的

剛入行的時候,我整天都在處理實作。寫 Java、用 Spring Boot 開發 API、調 SparkFlink 的 job、手動維運 Hadoop cluster。那時 Airflow 這類工具還沒有 managed service,全部都要自己安裝、自己設定,壞了也得自己修。

我當時的心智模型是:「能建越多、能 operate 越多,我就是越好的工程師。」執行力就是價值。


雲端讓事情有點不一樣了

隨著 GCPAWS 等雲端平台越來越成熟,BigQueryRedshiftEMRDataproc 這類 managed service 大幅簡化了資料處理的流程。GCSS3 這類儲存方案,加上 Athena 這類 query-first 工具,也讓資料管理變得更簡單。這個轉變讓團隊可以從基礎設施維運的負擔中解放出來,把心力放在治理、品質和業務洞察上,並開始大量使用 dbtDataHubGreat Expectations 這類工具。


然後產業開始試著取代自己

幾年前,Text-to-SQL 是一個很熱門的趨勢,意思是把自然語言的問題轉成資料庫查詢。團隊會在 data warehouse 或 lakehouse 之上建一層 semantic layer。你可以把它想成一個翻譯層,用來定義業務名詞(例如「active user」或「monthly revenue」),讓系統知道使用者問的問題實際上是什麼意思。它就像資料和 dashboard 之間的橋樑,讓非技術人員不需要工程師也能拿到答案。

有些公司會自己訓練模型來做這件事,有些則會找開源工具或第三方服務。目標都是讓工程師在日常的資料存取上變得不那麼必要。

這其實已經是一個訊號了。產業正在嘗試把工程師這一層自動化掉。


LLM 讓這件事更明顯

然後 ChatGPT 出現了。團隊花了好幾年建出來的 Text-to-SQL 模型,瞬間就被通用型的 LLM 超越。一夜之間,很多過去的努力就過時了。

但有一個容易被忽略的點。LLM 取代了那些翻譯模型,但它並沒有取代 semantic layer 本身的需求。事實上,它讓 semantic layer(以及背後的 data catalog)變得比以前更重要。LLM 可以寫出幾乎完美的 SQL,但前提是你要給它正確的 context。如果它不知道「active user」是指過去 30 天內登入過的使用者,那它寫出來的 SQL 就會是「自信地錯」。

這也是為什麼現在 data catalog 和定義良好的 metadata 變得更重要。模型很強,但它的好壞取決於你餵給它的 context。如果你的資料定義清楚,AI 就會是一個真正的助手;如果你的資料是混亂的,AI 只會以更快的速度產出錯誤的答案。

同時,開發速度也整個變了。早上才討論一個新專案,下午就能拿出一個可運作的 prototype。交付一個 feature 不再一定需要一整個團隊和一個 sprint。

三年前,我以為 AI 要真正成為工程師的助手,至少還要五年。現在看,這個估計差得很遠。


你必須做出的轉變

AI 在工程師這一層做得非常好。它可以寫程式、寫 SQL、做 prototype。但它不擅長的地方,是做那些需要它沒有的 context 才能做的決定。

它不認識你的公司。它不知道哪一個 stakeholder 看到某個數字變動會生氣。它不知道你正在設計的這條 pipeline,最後會餵進一個每月一號必須正確的財務報表。它可以建議用 streaming 還是 batch,但它不需要為這個選擇承擔後果。

這些決定需要對整體有完整的理解。這就是架構師的思維,不是工程師的思維。

工程師會問的問題:「我要怎麼把它做出來?」 架構師會問的問題:「對業務的影響是什麼?誰會依賴這個東西?如果它壞了,下游會怎麼樣?」

如果你擔心 AI 會取代你,這就是你該做的轉變。不是去學一個新工具,也不是寫得更快,而是把你的思考層級往上提一層。


但你還是得把基本功學好

我想老實說一件事。我今天能用架構師的方式思考,是因為我花了很多年寫程式、修壞掉的 job,甚至為了修一條失敗的 pipeline,或一整個壞掉的 Hadoop cluster 熬夜到天亮。是這些經驗讓我今天有能力做這些判斷。

如果你才剛入行,請不要以為自己可以跳過工程師這個階段。架構師的思維是建立在工程師的經驗之上,不是取代它。如果你不知道一個壞掉的 Spark job 長什麼樣子,你就沒辦法判斷 AI 給的建議是對還是錯。而 AI 講錯的時候,跟講對的時候一樣有自信。

所以還是要把基本功學起來:SQL、資料建模、分散式系統怎麼運作、pipeline 為什麼會失敗。把 AI 給你的程式碼讀懂、debug、並且質疑它。新的核心能力不是寫程式寫得更快,而是有能力閱讀、判斷、並且為 AI 產出的東西負責。這個能力只能靠自己親手做過才會有。


AI 沒辦法取代的事

AI 寫程式比你快,這是一個讓人不舒服的事實。但寫程式只是工作的一部分,還有很多事 AI 沒辦法做。這些才是你真正的價值所在:

  • 簽合約。 AI 沒辦法為 production 出問題的時候負責。一定要有一個人來承擔結果,一定要有一個人坐在客戶面前回答這件事。
  • 跟人對話。 真實的專案是透過跟 stakeholder、PM、其他團隊的對話建立起來的。理解別人真正需要什麼,而不只是他們嘴上說什麼,這仍然是人類的能力。
  • 理解業務。 AI 從來沒有參加過你公司的會議。它不知道為什麼 Table A 的 user_id 跟 Table B 對不起來,也不知道 marketing 上一季把「conversion」的定義改了。
  • 在不明確的時候做判斷。 真實的工作充滿模糊地帶。當需求亂七八糟、deadline 又是明天的時候,總要有一個人做決定。AI 可以給你選項,做決定的還是人。

結語

不要試著跟 AI 在它已經比你強的事情上競爭,你會輸。

相反地,把 AI 當成你的工具。讓它去處理程式、SQL、prototype。這樣你才有時間做真正重要的事,例如設計整個系統、跟業務溝通、做那些難下的判斷。

在這個時代能持續成長的工程師,不是寫最多程式的那個,而是知道什麼東西值得被建出來、以及為什麼要建的那個人。

AI 是手,你是腦。


感謝你的閱讀!如果你覺得這篇文章對你有幫助,歡迎在 LinkedIn 上跟我聯繫。