學徒制的消亡:為什麼程式設計依然很爛
在最近一篇瘋傳的文章中,Steven Langbroek 對現代軟體工程領域提出了嚴厲的批評。雖然大眾討論往往集中在 AI 是否會「取代我們的職位」,但 Langbroek 主張,真正的威脅並非技術本身,而是運用技術的領導層所展現出的貪婪與短視。
對許多人來說,科技職涯的形象是整潔的桌面、策略性規劃,以及完美軟體的無縫產出。然而,正如 Langbroek 所描述的,現實更像是身處一艘正在燃燒的船隻上,手冊已經丟失,船員精疲力竭,而導航則是由一個故障的玩偶來操作。這個隱喻捕捉到了許多遺留系統(legacy systems)的混亂狀態,以及現代開發工作的危險本質。
AI 生產力的幻象
危機的核心在於對軟體工程本質的根本誤解。高管們被 AI agent 在幾分鐘內寫出功能的演示所迷惑,開始將工程視為單純的產出組裝線。這導致了一個危險的趨勢:在錯誤地認為 AI 可以填補缺口的信念下,削減工程人員——特別是初級工程師(juniors)——的編制。
正如 Langbroek 指出的,這種對即時產出的優化忽略了判斷力與制度性知識(institutional knowledge)的長期必要性。當「捕捉錯誤的人被排擠出去」時,整個系統的穩定性便開始退化。這是古德哈特定律(Goodhart's Law)的一種體現:當一個指標變成目標時,它就不再是一個好的指標。開發速度(velocity metrics)與故事點數(story points)正是在犧牲系統健康度的代價下被盲目追求。
消失的初級工程師與資深程度的差距
這篇文章中最令人痛心的論點或許就是為初級工程師舉行的「葬禮」。業界已在很大程度上廢除了學徒制模型,取而代之的是能比人類新手更快速、更便宜地產出程式碼的 AI 工具。
"Juniors weren't valuable for what they produced, they were valuable for who they would become: the senior engineer who knows where the bodies are buried. We optimized for output, and abolished apprenticeship. A few years from now, we'll wonder where all the seniors are."
這造成了迫在眉睫的人才斷層。資深工程師並非天生,而是透過多年的錯誤經驗、嚴格的程式碼審查(code reviews)以及維護複雜系統的過程鍛造而成的。透過移除新開發者的進入點,業界實際上正在摧毀自己未來的專家供應。
「Sara」問題:制度性知識的脆弱性
為了說明這種趨勢的危險性,Langbroek 引入了「Sara」這個角色,她是遺留技術中那些默默無奉獻的英雄們的虛構化身。Sara 是那種精確知道為什麼一個 2016 年的關鍵 cron job 仍在運行,以及如何使用從前任那裡繼承下來的 USB 隨身碟來修復它的工程師。她代表了那些不存在於 Jira ticket 或 AI 訓練數據中的制度性知識。
當公司將「轉型」與成本削減置於知識保存之上時,他們正在建造一座空中樓閣。正如一位評論者 @TacticalCoder 所指出的,許多中小企業(SMEs)基本上是依賴單個人的知識來維持薪資單的運作。如果那個人離職或系統失效,將沒有「重新啟動」按鈕,因為那些能夠從頭開始構建系統的人從未受過訓練。
反對觀點與業界觀點
並非所有人都同意這種憤世嫉俗的觀點。一些資深人士認為,當程式設計脫離了企業官僚主義時,它一直是一件樂事。@monkeyballs 建議,「很爛」並非程式設計本身的屬性,而是企業併購與「缺乏技術知識的 MBA 決策」造成的。
其他人則認為,工作性質正在演變。@ksd482 建議,雖然手動編碼可能變得不再那麼關鍵,但「系統思考」與建立防護機制(guardrails)變得更重要了。在這種觀點下,工程師的角色從語法撰寫者轉變為邏輯架構師與 AI 產出的驗證者。
結論:是貪婪,而非機器人
核心主題是,當前的科技業不穩定性是人類的失敗,而非技術的失敗。開發者所感受到的焦慮並非由 LLMs 的存在所引起的,如此而是由一種將工程師視為可互換的生產單位,而非學徒制下的工匠精神的領導文化所造成的。
正如 Langbroek 所總結的,摧毀這個專業的勢力與當年將製造業外包給最低標者的勢力是一樣的:為了追求長期永續性的代價,而不斷追求短期利潤率。那艘「燃燒的船」繼續航行,但業界可能很快就會發現,自己已經忘記了如何建造一艘新船。 "]}