不,AI 並沒有讓工程師的生產力提高 10 倍

治好你的 AI 10 倍工程師冒牌者症候群

不,AI 並沒有讓工程師的生產力提高 10 倍
Photo by Scott Blake / Unsplash

幾個月前,我陷入了一陣心理低潮。我向來對自己身為工程師的能力很有自信。但在刷 LinkedIn 和 Twitter 時,卻感覺自己的技術被遠遠甩在後頭。如果那些文章可信,工程界早已告別中古世紀的寫法。也就是把程式碼一個字一個字敲進編輯器裡。現在「真正的」工程師,生產力是我的 10 到 100 倍。我寫這篇文章,是希望幫助有同樣焦慮的人。

我向來多疑,所以聽到這種說法通常不會馬上相信。我只會翻個白眼,就像有人說什麼草藥能治百病一樣。但現在這種 10 倍工程師的說法實在太多,開始讓我不安。萬一我錯了呢?如果我現在不學 AI,會不會錯過這班車,然後被淘汰?畢竟,現在有很多花俏的術語。把他們口中的「AI」,跟我所熟悉的「AI」區隔開來。

這些人用的是 ✨agentic✨ AI,是會 ✨思考✨ 的模型。能自己上網、跑測試、還會修正自己的錯誤。我偶爾也會開個聊天視窗,叫 AI 寫點程式碼。然後拿到我想要的概念後,就把大部分的內容丟掉。但那些工程師卻放手讓 Claude 主導一切。他們泡杯咖啡的時間,AI 就能幫他們產出 5 個 PR。我是否正變成一隻恐龍,一個對著雲亂吼的老頭?

我之所以焦慮,部分原因是我很少用 AI。所以 AI 的發展很有可能我完全沒跟上。因為我並不是很喜歡用 AI。審查程式碼的樂趣,遠遠比不上親手撰寫。難道我堅持享受寫程式的固執,註定會讓我被淘汰嗎?

投入研究

我終於到了臨界點,決定一頭栽進 AI 程式開發的世界。我試了 Claude Code、Cursor、Roo Code 和 Zed。想看看它們號稱的代理編碼能力。我開始在各種專案中,要求 AI 寫各式各樣的程式碼。我嘗試並比較了不同的模型。我甚至玩了幾次「氛圍編碼」,完全不手動修改程式碼。

結果⋯⋯只能說還好。儘管大家宣稱 AI 正以驚人的速度進步,但感覺跟以前差不多。它很會寫樣板程式碼,尤其是在 Javascript 和 React 裡。但它不太會遵循你專案中的程式碼標準和工具。它處理像 Terraform 這類的語言時,常常會卡關。它還是會胡謅出不存在的函式庫,導致嚴重的安全漏洞

即使有很棒的提示和 CLAUDE.md 檔案,AI 還是很難理解大型專案的脈絡。如果你用的函式庫不是 StackOverflow 上的熱門選項,它就會搞砸。就算代理查了文件也一樣。代理偶爾會做些不錯的事,例如修好自己弄壞的測試。但它們常常只是浪費時間和 token。自己跟自己來回折騰,每次失敗似乎也沒學到教訓。因此對我來說,AI 最好的用途還是寫一次性腳本。特別是在我沒興趣深入學習的時候,像是寫個自訂的 ESLint 規則。

那些警告我不馬上用 AI 就會被淘汰的說法,後來證明是杞人憂天。用 AI 寫程式並不難學。這很明顯吧?但 AI 程式開發社群似乎有兩種極端看法。一種認為 AI 讓寫程式簡單到像原始人也會。另一種則認為它需要進階、專業的提示工程技能。有些東西你確實要學,但很快就能上手。你會學到把任務切成小塊,AI 才不會處理到後來就精神錯亂。像 Claude Code 這類工具甚至能自己做點切分,雖然不總是可靠。你也會學到何時該判斷 AI 已經偏離太遠,是時候自己接手了。

一個夠格的工程師,大概用一週的 AI 就能搞懂這些事。此外,如果 AI 隨時都可能進步 2 倍、10 倍或 100 倍。那麼現在學的任何使用技巧,未來可能都派不上用場。

每次我發現 AI 的表現只是「還行」,反而讓我更焦慮。這代表我沒找到那個讓其他人效率倍增的獨門祕方。我就是沒那個天份。我就是那隻恐龍,而 AI 就是那顆小行星。最後,有幾件事把我從低潮中拉了出來。其中一件是 Ludicity 的這篇文章,它直接反駁了那些 AI 吹捧者的論調。我寫這篇文章,是為了分享更多幫助我走出 AI 10 倍工程師冒牌者症候群的方法。

來算筆帳

我們先從 10 倍到 100 倍生產力的簡單數學來看。10 倍生產力代表 10 倍的成果,而不是 10 倍的程式碼。這表示你過去一季才能交付的工作,現在一週半就完成了。這些數字應該讓最鐵的 AI 信徒都停下來想一想。傳統上三個月的工作量,現在七個工作天就要完成?這其中包含產品發想、時程協商、修復錯誤和程式碼審查。還有等待部署、測試和品管的時間。要達成目標,每個環節的生產力都必須提升 10 倍。

任何在公司寫過程式的軟體工程師,都知道這不可能。你沒辦法把三個月的程式碼審查,壓縮到一週半完成。當你審查程式碼時,你會:

  1. 標註你的審查者
  2. 希望他們盡快處理 (這很難,因為他們的工作量是以前的 10 倍)
  3. 等待時,切換到其他工作
  4. 看到通知 (可能馬上,也可能在審查者下線兩小時後)
  5. 切換回審查工作
  6. 閱讀他們的評論
  7. 根據評論做出回應
  8. 然後不斷重複以上步驟

在一家制度和溝通良好的公司,這個流程可以很有效率。但你說你把這個流程的效率提高了 10 倍,來應付 10 倍的工作量?這根本不可能。

企業軟體開發中,人的流程並沒有太大改變。產品經理可能會用 ChatGPT 做「研究」。但他們不可能突然產出十倍以上,且經過充分驗證和估算的需求。他們無法同時進行 10 場使用者訪談。設計師和品管測試員也是一樣。要雇用 10 倍的產品經理來跟上進度並不可行。隨著溝通成本和官僚作風增加,每多一個人,效益就會遞減。

就算我們只假設寫程式的速度快了 10 到 100 倍。我們還是該懷疑這筆帳是怎麼算的。你寫程式時,真正花在敲鍵盤上的時間有多少?可能比你想的少很多。你大部分的黃金時間,其實是在閱讀和思考。常常是在等編譯、等頁面重整、或等測試跑完。大型語言模型 (LLM) 並不會讓 rustc 跑得更快。

LLM 產出的東西常常是壞的、亂掰的,或不符專案標準。程式碼庫越大,出錯頻率就越高。這時你就得重下指令,可能馬上解決,也可能浪費一堆時間。或者你也可以自己動手修。但這樣你就又變回了 1 倍工程師。如果你習慣了「氛圍編碼」而忘了怎麼寫程式,情況可能更糟。如果你只是「跟著感覺走」而完全不看產出的程式碼。那當專案大到一個程度,你就會撞上生產力天花板。到時你就得面對缺乏標準和良好抽象化的爛攤子。

我想有時候大家沒意識到 10 倍的改進有多巨大。10 倍的差距,就像你的休旅車和創紀錄的超音速噴射車一樣。想像開著時速 600 英里的車,在市區開 10 分鐘的路。你能在十分之一的時間內到達目的地嗎?不可能,光一個 60 秒的紅燈就吃掉你所有的時間了。F1 賽車在普通轉彎時,速度也會降到跟休旅車差不多。事實證明,任何活動的大部分時間,都不是在全速前進。

100 倍的生產力,代表你現在兩天就能做完過去一年的工作。這種數字的荒謬程度,我應該不用多說了。

10 倍工程師真的存在嗎?

我本不想淌這渾水,但或許我必須表態。我的答案是:有時候,算是有吧。我遇過的那些價值高 10 倍的工程師,主要是因為他們能避免團隊做白工。例如說服產品經理放棄一個不可行的任務。或勸退另一位工程師,別蓋那個不必要的微服務。或是投資改善開發者體驗,讓每個人每項任務都省下一點時間。或是把工作好好記錄下來,讓未來的工程師能更快上手。這些事累積起來,一個工程師省下的時間,可能遠超過他當初投入的 10 倍。

這類工作不是隨時都有。所以頂尖工程師,也只在特定情況下,才能發揮 10 倍的生產力。到頭來,每個工程師都還是得開發功能。厲害的工程師可能比菜鳥快兩倍。但他們還是會碰到一樣的瓶頸。雖然故事點 (story point) 有其缺陷,但我從沒見過哪個工程師能長期穩定地完成比別人多十倍的點數。

值得注意的是,AI 程式助理幾乎無法避免做白工。相反地,AI 似乎常鼓勵倉促行事和過度開發。當我問架構問題時,它常會推薦一些方案。但只要我睡一覺,或跟厲害的工程師聊聊,就會發現根本沒必要。在其他條件都相同下,寫得快就是比較好的工程師嗎?是,但這不會是 10 倍的差距,而且很難讓其他條件都相同。你越專注於快速完成任務,就越容易忽略那些能減少總工作量的省時關鍵。

所以那些鼓吹 AI 的人是在騙人嗎?

我認為那些鼓吹 AI 的人,混合了以下幾種類型。依惡意程度由低至高排列:

  • 善良但算術不好,誤判了自己和他人的人
  • 在 AI 的成功上有重大利益關係的人 (例如 AI 新創創辦人、投資者等)
  • 想讓工程師感到飯碗不保,才不敢辭職或要求加薪的老闆

算術不好的善良工程師

以我的經驗,AI 能帶來短暫、罕見的 10 到 100 倍生產力爆發。例如我讓 AI 在幾分鐘內寫好一個自訂的 ESLint 規則。如果我自己來,可能要花幾小時查文件和看教學。這確實是數量級的時間和精力改善。這種時刻確實會發生。許多非開發背景的專業人士,在用 Lovable 快速架起一個 app 後,也感受過這種魔力。

問題是,這種生產力無法規模化。我一年寫不到一次 ESLint 規則。這次的生產力爆發,完全是因為我不在乎這段程式碼。也不用費心讓它變得好讀,給下一位工程師看。如果寫 ESLint 規則變成我的核心工作,我就會花一次性的成本去學它的內部原理。之後,用「氛圍編碼」或自己寫,時間上不會差太多。尤其當我還要花時間讓程式碼變得好讀,以便六個月後自己還看得懂。

每個「氛圍編碼者」最終都會遇到瓶頸,回報會開始大幅遞減。他們的網站被駭,就必須花時間去學資安。當 app 大到超出 AI 的記憶範圍,介面和功能就會開始不一致。於是公司會雇用真正懂行的前端工程師,來導入一致的設計系統和使用者體驗。

還有很多偏見和盲點,會造成生產力提升的錯覺。如果你離開大公司去新創,你會驚訝於每個工程師的生產力有多高。這很容易被歸功於 AI。有些人真的很享受 AI 程式開發的新鮮感。當你接觸新事物時,常會覺得自己做得比以前多。我第一次用 Python 時,也覺得自己像「喝了火箭燃料」。但跟所有技術一樣,最終還是得回歸現實。

我想很多對 10 倍 AI 的吹捧,來自那些還在蜜月期的人。或是沒仔細想過 10 倍在數學上代表什麼。AI 幫助工程師在某些任務上快 20% 到 50%,我不會驚訝。但軟體開發的瓶頸特性,意味著這不會轉化成 20% 的總生產力提升。更不用說 10 倍了。

誘因很重要

聽著,我不是討厭 AI 新創。你想把 OpenAI 的 API 接到你的醫療新創,我可能會對風險皺眉。但任何想在醫療領域「快速行動、打破常規」的新創,我都會有同樣的擔憂。我不是說 AI 新創的創辦人或投資者是壞人或騙子。我的重點是,用你高中經濟學老師的枯燥語氣說:「誘因很重要」。

如果你在經營一家 AI 新創,而其他家都在跟投資人說。他們靠 AI 讓生產力提升了 10 倍。那你的誘因就很簡單:你公開和私下都該這麼說。如果你的公司是建立在 AI 之上,你就有誘因把 AI 吹捧成萬靈丹。如果你是個工程師,而你老闆問你:

嘿,你用了 AI 生產力也提升 10 倍了吧?跟其他所有工程師一樣,對吧?

你會有很強的動機說「對」。當其他工程師也因為同樣的理由說「對」時。那位 CEO 並沒有說謊,他只是轉述他聽到的。

我想對那些跟我一樣焦慮的人強調,這不是什麼新鮮事。CEO 的話不能盡信。高層們一直宣稱各種東西能釋放無限生產力,從敏捷開發到 MBTI。LinkedIn 上永遠有新的時髦術語,別讓那些東西影響你。事實上,根本不要滑 LinkedIn。別去那種瞎地方。

徹頭徹尾的惡意

當有人說的話讓你感到焦慮,你至少該考慮一種可能。那就是,這正是說話者想要達到的效果。老闆想讓工程師覺得飯碗不保,也不是新聞了。我們都還記得那套說詞:三個月的速成班,能培養出四年大學品質的工程師。所以你最好別太囂張,否則就會被轉行的人取代。幾年過去後,大家發現速成班的畢業生,因為基礎不穩,通常完全無法勝任真正的軟體工作。

速成班和 AI,都只是一連串想將軟體工程這個高薪專業「商品化」的失敗嘗試。它們是用來暗示你處境堪憂的 rhetorical devices。你老闆其實不能開除你然後換成 AI。但他可以讓你「覺得」他「可以」,這樣你或許就不會要求加薪了。

所謂 10 倍 AI 工程師的故事,有一部分可能就是為了讓你難過。至於佔多少,我不知道。雖然我們這個時代彼此越來越不信任。但我還是相信大部分人本性是善良的。所以我不認為這個比例很高。

隔了一層的說法

我注意到,在這些 AI 程式開發的吹捧文章中,作者和實際的生產力提升之間,幾乎總是隔了一層關係。發文者是創辦人、經理或投資者。他們對「別人」的生產力,發表誇大的言論。二手資訊沒什麼不對,但如果你找不到第一手資料,就該開始懷疑資訊的可靠性。

而由實際的工程師來展示他們如何用 AI 提升生產力的影片,內容就更多元,讚美之詞也保守許多。這些展示中的 AI,跟你我焦慮前所熟悉的沒兩樣。就是一個不錯的文字產生器,有時很神奇,但常常還是需要你親自接手。

AI 在開源專案上的應用,過程完全公開,結果是眾所皆知的一場鬧劇。我確實從一些 YouTube 影片學到如何更好地使用 AI。這裡有一個不錯的例子,前面提到的 Ludicity 文章裡也有引用。但我先劇透一下:這位工程師並沒有找到提升程式生產力的神泉。

生產力低一點也沒關係

即使我不再相信有那麼一個神秘的頂尖工程師群體。他們比我生產力高十倍、更強壯、更高大、也更性感。我還是有點焦慮,因為我依然不喜歡用 AI。當新鮮感退去,「氛圍編碼」就變得非常無聊。閱讀 LLM 產生的程式碼很痛苦。客氣地請它不要亂掰函式庫,也很折磨人。但萬一,用「氛圍編碼」真的比我原本的方式生產力高 20% 呢?如果有更高效率的方法,我還堅持「正常」寫程式,是不是錯了?

不。為了工作的樂趣,犧牲一點生產力是沒關係的。不只沒關係,在我們這行,這更是「必要」的。如果你強迫自己用討厭的方式工作,你只會燃燒殆盡。寫程式只佔工作的一小部分。其他還包括解決問題、系統設計、思考抽象化,以及和人溝通。當你心情好時,這些事你都會做得更好。為自己的工作感到驕傲,並尊重這門手藝,是沒問題的。長期來看,你的專案會因此受益。

數位音樂的音質是否比黑膠唱片好,這不重要。翻唱片比串流服務自動播下一首歌,「生產力」低得多,但這不重要。如果聽一張 70 年的老唱片讓你更快樂,那就去做。你會因此聽更多音樂,而不是強迫自己用更「有效率」的串流服務。如果你用自己喜歡的方式寫程式,你會花更多時間,並寫出更好的程式碼。

喔,同樣的道理反過來也成立。如果你用 AI 寫程式讓你感覺很好,那就去做。如果你因此興奮到寫了比以前更多的程式碼,那太棒了。我希望每個人都有這種感覺,不管是用什麼方法。

如何成為一位好的 AI 領導者

讓你的工程師時時刻刻為自己的表現焦慮,對公司是有害的。這會讓他們不想為你工作。這只會導致短視近利,鼓勵工程師去衝一些無意義的指標,像是程式碼行數。程式碼審查會被忽略,技術債會不斷累積。長期來看,整個公司都要為這些錯誤付出代價。

不切實際的 10 倍期望,無疑會導致草率和低品質的成果。工程師需要呼吸的空間。需要多一點時間把事情做好的空間。好的專案和好的公司,建立在兼顧今日與明日的健康平衡之上。我很慶幸現在就在這樣的公司工作,但很多人沒那麼幸運。

不要因為工程師用的 token 不夠多就責備他們。你的工程師是這個競爭激烈領域裡,受過高等教育的專業人士。軟體工程師早就以追逐新技術又喜新厭舊的循環聞名。你付他們這麼多薪水,就該相信他們。如果真的出現超棒的生產力工具,他們會主動來找你,要求升級 Pro 方案。如果你擔心錯過別人都在享受的 AI 紅利。那就買個 LLM 團隊方案,辦場訓練課程,看看效果如何。你只需要做這些就夠了。

結論

沒有什麼神奇的草藥秘方,能預防所有疾病。不會因為你追蹤了對的 Facebook 社團就唾手可得。也沒有什麼 AI 程式開發革命,只要你開始「氛圍編碼」就能參與。你沒有錯過任何事。相信自己。你已經夠好了。

喔,還有,別再滑 LinkedIn 或 Twitter 了。永遠不要。