AI 並未簡化軟體工程:它只是讓糟糕的工程變得更容易
我認為雖然 AI 可以快速生成程式碼,但它並不能取代構建可靠專業系統所需的工程紀律、架構與對齊。將軟體開發簡化為單純的程式碼生成,冒著加速系統複雜化與失準的風險,最終可能導致軟體變得無法管理且不可靠。
背景
本文探討 AI 在軟體工程領域的角色,質疑「AI 讓軟體開發變得簡單」的說法。作者認為 AI 雖然能快速生成程式碼,但並未解決架構設計、系統驗證與複雜度管理等核心工程問題,反而讓不負責任的開發行為變得更容易,並成為企業裁撤資深技術人才的藉口。
社群觀點
Hacker News 的討論呈現出兩極化但互補的觀點。許多資深開發者認同作者的看法,指出程式碼撰寫從來不是軟體工程最困難的部分,真正的挑戰在於理解使用者需求、定義系統行為以及確保系統在長期演進中保持可維護性。有留言者將 AI 比喻為「釘槍」,認為經驗豐富的木匠使用釘槍能大幅提高效率,但若交給外行,只會加速蓋出一棟結構不穩的爛房子。這種「達克效應倍增器」的觀點在社群中獲得不少共鳴,眾人擔憂過度依賴 AI 的初級開發者會因為缺乏底層原理的磨練,最終在面對複雜系統故障時束手無策。
然而,另一派觀點則認為 AI 是「既有行為的放大器」,它不僅讓糟糕的工程變得容易,也讓優秀的工程變得更強大。支持者指出,AI 能將開發者從繁瑣的語法搜尋與樣板程式碼中解放,讓專家有更多時間專注於高層次的架構設計,甚至能快速嘗試多種不同的實作路徑,這在過去受限於時間成本是難以想像的。針對作者提到的「飛機維修」類比,有留言反駁稱編譯器與程式庫在出現之初也曾被視為簡化工具,但它們最終成為了提升品質與一致性的標準自動化手段,AI 只是這條演進路徑上的最新階段。
社群中也出現了關於「技術債」與「認知負荷」的深刻反思。有開發者提到,雖然生成程式碼很快,但審查 AI 生成內容的認知負擔卻極重,若缺乏對系統全局的掌握,這種速度提升只是在加速「義大利麵條式代碼」的堆積。此外,部分討論轉向了產業現狀的無奈,認為企業追求的是快速交付而非完美工程,在這種環境下,AI 確實滿足了「夠用就好」的商業需求,即便這可能導致軟體專案最終走向混亂與崩潰。
延伸閱讀
留言中提及了「Vibe Coding」的概念,描述一種不求甚解、僅憑感覺與 AI 互動的開發模式。此外,討論也觸及了 Sussman 效應,探討軟體開發在現代複雜依賴環境下,有時更像是一門觀察行為的自然科學而非嚴謹的工程學。