AI時代下軟體工程智慧的流失
AI程式輔助工具的快速普及正在產生系統性風險,開發者逐漸停止閱讀與撰寫程式碼,可能以短期速度換取長期可維護性的損失。這種朝向「感覺編碼」(vibe-coding)的轉變——依賴AI產生功能上可行但結構上不穩的程式碼——威脅到發展專家直覺的能力,而這種直覺是管理複雜軟體系統多年而非僅僅數週所必需的。
可維護性的差距:為何AI無法『編碼』智慧
軟體的可維護性與良好的架構無法以立即的獎勵信號來衡量,因此對目前的AI訓練方法而言是不可見的。雖然AI可以產生今天能通過測試套件的程式碼,但這些程式碼的結構缺陷通常要到數月或數年後系統需要演進時才會顯現。
即時反饋的失敗
AI模型是根據現有程式碼庫中的模式進行訓練,而其中大部分程式碼品質不佳。由於強化學習需要即時獎勵信號,AI無法學習『長期』的可維護性策略。並不存在一個即時的適應度函數,能衡量三年後程式碼是否容易修改;因此,AI傾向於遵循初學者用的規則,而非專家所具備的細膩且情境依賴的判斷力。
簡化藝術
定義可重用且能釐清邏輯的函數是一項高階技能。目前先進的模型在真正簡化方面經常表現不佳,經常將函數拆分成更小的片段,但這些片段實際上無法重用,或迫使讀者在多個定義之間跳轉才能理解單一邏輯流程。這顯示出缺乏決定程式碼應如何結構化以利人類理解所需的『智慧』。
技能退化與機構知識流失的風險
當開發者停止主動做選擇,也不再對程式碼的具體實作細節負責時,他們便不再從錯誤中學習。這會形成一個危險的反饋迴圈,導致下一代工程師可能永遠無法達到精通境界。
外包的類比
一些觀察者將當前趨勢與製造業外包相類比。正如西方因將製造外包至成本較低的市場而喪失了生產基本硬體的機構知識,軟體產業也面臨著將編碼的腦力勞動外包給AI,從而失去內部理解與維護自身系統的能力的風險。
『良好樣貌』的喪失
機構知識不僅在於知道如何修復一個錯誤,更在於知道『什麼是好的』。如果AI負責大部分的設計與實作,內部的品質基準將逐漸退化,組織內向資深導師學習的能力也會減弱,因為『智慧』不再被實踐或記錄。
反駁論點:朝向產品管理的轉變
並非所有產業專業人士都將此轉變視為損失。有些人認為,軟體工程師的角色只是從『撰寫者』演變為『導引者』或『產品經理』。
『超能力』觀點
具備深厚基礎知識的資深開發者可利用AI加速跨語言輸出(例如 C++、Java、.NET),而無需在每種語言的語法上都成為專家。對這些使用者而言,AI處理了編碼的『洗衣工作』,讓他們能專注於高階架構與透過嚴謹測試驗證的正確性。
『遺留程式碼』的現實
反對『智慧』論點的批評者指出,大多數人工撰寫的企業級程式碼向來就是因時間壓力與商業限制而難以維護的亂局。從這個觀點來看,AI並未創造新問題,只是加速了人類數十年來一直生產的次優程式碼的產出。
未來展望:『無AI』作為競爭優勢
隨著產業充斥著AI生成的『垃圾』程式碼,企業之間可能出現分野:一類追求原始速度,另一類則追求深層技術精通。
精品工程的崛起
有人預測,『無AI』政策最終可能成為競爭優勢。那些維持具備深度推理與手動程式碼精通能力的團隊,將更擅長處理關鍵故障、執行複雜優化,並以純粹代理式工作流程無法達成的方式確保系統的長期可行性。
驗證的挑戰
最終,『感覺編碼』的問題本質上是驗證問題。軟體工程未來的挑戰並非完全停止使用AI,而是發展新的防護機制——例如將循環複雜度或領域驅動設計(DDD)等進階指標整合至代理式工作流程中——以確保速度不會永久破壞軟體的可維護能力。
Sources
相關
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch