Skip to content

AI 時代的開發生存指南:Martin Fowler 與 Kent Beck 談工程師的黃金轉身與架構演進

對於剛踏入軟體工程的這片汪洋大海的初階工程師,《重構》作者 Martin Fowler 與 TDD 與極限編程之父 Kent Beck 無疑是兩顆指引方向的北極星。這兩位大師針對 AI 新創的對談,與其說是一場技術演講,不如說是一次跨越世代的傳承。

面對生成式 AI 帶來的巨浪,不分資歷,許多工程師感到焦慮——「代碼似乎不再需要親手寫了,我們的價值在哪裡?」

大師們卻氣定神閒地告訴我們:這不是終結,而是一次關於「驗證」與「設計」的全面覺醒。

極限編程 Extreme Programming (XP)

在需求經常變動的情況下,仍然能快速、安全、高品質地開發軟體,讓系統「能長期被修改、擴充、維護」。


測試驅動開發 (TDD):對於 AI 這盞「神燈精靈」的契約

Kent Beck 將現在的 AI 比作一個法力無邊卻神祕莫測的「神燈精靈」,這隻精靈能瞬間變出滿漢全席,但也可能在你不注意時把廚房燒了。

身為導師與資深工程師,他常告訴初入行的孩子們:「不要被 AI 的速度迷惑。測試(Tests)並非束縛,而是你與精靈簽訂的契約,是確保他不會把家裡燒掉的『護欄』。在 AI 時代,代碼生成的成本趨近於零,但出錯的成本卻成倍增加。當精靈噴出成千上萬行代碼時,你的核心競爭力不再是『寫出它』,而是『驗證它』。」

「當我們面對一個如此強大而神祕的精靈時,你必須學會如何驗證它是否正在為你做正確的事。這正是我們過去 25 年來一直在練習的技能。」 —— Kent Beck


初級者的「黃金時代」與平庸者的「大退潮」

許多人擔心 AI 會取代初級職位,但 Kent 卻認為這是一個前所未有的「黃金時代」。

想像一下,以前的木工要花上數年練習如何用手鋸將木頭鋸直,那是枯燥且繁瑣的體力活。現在 AI 就像是給了你一把「圓鋸機 (Circular Saw)」,你不再需要糾結於鋸木頭的碎活,可以更快地開始學習如何「蓋出一棟漂亮的房子」。AI 是一個強大的槓桿,它讓充滿好奇心的初級開發者能跨越語法瑣事,直接與系統設計的核心對話。

然而,這光芒背後隱藏著警訊。 Kent 提醒,對於那些僅僅為了穩定薪水而入行、缺乏熱情的「中層開發者」來說,這是一個危險的時刻。正如 .com 泡沫破滅時一樣,那些不願進化、只會重複勞動的人,將在 AI 效率與經濟寒冬的夾擊下被洗刷出局 (Flushed out)。


從「查答案」到「做實驗」:懷疑論者的修煉

Martin Fowler 分享了一個深刻的見解:在快速變動的環境中,沒有人擁有永恆的答案。過去我們依賴權威書籍或 Stack Overflow,但現在答案的半衰期極短。

他提到自己初次使用 Copilot 搭配 Emacs 時,最初幾天的體驗極差,AI 產出的垃圾代碼讓他幾乎想直接關掉它。但他提醒我們:「懷疑論必須是絕對的,這意味著你也必須懷疑你自己的懷疑(Skepticism of your own skepticism)。」 這種好奇心讓我們不會也不應該因為些許的挫折就否定工具的潛力。

現在最貴的技能是「探測(Probes)」:

行為維度舊時代(尋找答案)新時代(執行實驗)
思維邏輯查找穩定、標準的正確解答提出假設,用最小成本驗證 AI 的宣稱
工具觀點盲目相信或完全否定工具保持好奇與懷疑,測試工具的邊界
核心動作翻閱手冊與文件執行「最小驗證實驗」以獲取即時反饋

DX = AX:架構是人類與 AI 的共同語言

Martin Fowler 提出了一個迷人的觀點:開發者體驗 (DX) 與代理人體驗 (Agent Experience, AX) 的文氏圖,本質上是一個圓。

Image

為什麼在 AI 時代,代碼架構反而更重要?

因為良好的設計——如模組化、清晰的命名、領域驅動設計 (DDD)——不僅能讓人類理解,也能讓 AI 代理人更精準地掌握上下文。一個混亂的代碼庫會讓 AI 「產生幻覺」,而一個整潔、意圖清晰的系統架構,則是我們與 AI 協作最高效的溝通語言。

領域驅動設計(Domain-Driven Design, DDD)

是一種「以業務領域為核心」來設計軟體的方法論,由 Eric Evans 提出。 它的重點不是技術,而是:「讓程式結構真正反映商業世界的規則與流程。」


警惕「重新孤立化」:為什麼我們仍需要夥伴

Kent Beck 觀察到一個危險趨勢:重新孤立化 (Re-soloing)。

過去,敏捷開發將工程師從「滑進門縫的披薩與封閉辦公室」中解放出來,但現在,許多人覺得「我一個人加六個 AI 代理人就是一支團隊」,這是一種錯覺。AI 工具是極佳的助理,但它無法提供不同觀點的碰撞與情感的共鳴。

大師們更看好的是 「兩個人加一個精靈」 的結對編程 (Pair Programming) 模式。

這裡有一個反直覺的洞察:當 AI 運算稍慢、需要幾分鐘產出結果時,那段「空白時間」並非效率低下的 Bug,而是 Feature。那是人類夥伴之間討論命名哲學、系統設計本質、以及下一步戰略的黃金時間。真正的智慧,往往誕生於等待 AI 運算時的對話中。


放下「工藝執念」,成就「大教堂設計」

Kent Beck 坦言,對於追求「將一段函數打磨得完美無瑕」的工程師來說,AI 確實帶走了一種純粹的、zone 式的工藝樂趣。這確實令人落寞,但我們獲得了更大的槓桿。

軟體工程師的價值正在發生本質上的移轉:我們從負責搬磚、切石的工匠,轉變為理解整體藍圖的建築師。

當 AI 成為那個不知疲倦、效率卓越的自動化搬磚工時,我們是否已經準備好放下手中的鑿子,開始專注於理解這個世界的「領域本質」,設計出那座真正解決人類問題的「大教堂」了呢?