90% 的錯覺(還有這個新時代寫程式的真相)
我的導師靠三份兼職和窮到骨子裡的日子撐過來,靠的就是一個簡單工具:番茄工作法。對他有效,這些年對我也有效。
FocusPomo
我很愛一個叫 FocusPomo 的簡單 app。它做得到我需要的。但身為開發者,總有些想微調的地方。問題是?我不是 app 開發者。
然後 AI 時代來了。突然間大家全在搞「vibe coding」。
我決定終於把 Tomopomo 做出來。概念很簡單:番茄鐘把專注時段直接綁到 GitHub repo,有基本的資料視覺化讓你看清自己真正的工作節奏,還有排行榜跟朋友比,外加一隻抱著番茄的黑貓吉祥物 Tom。
Tomopomo
用最新的模型,我三天就把這個夢想 app 做了 90%。感覺像超能力。
但那只是錯覺。
速度的悖論
我們常聽到這種故事。一項對照實驗顯示 GitHub Copilot 讓開發者快了 56%。聽起來像魔法。
但 METR 最近對有經驗的開源開發者做的試驗,結果完全相反。在真實 codebase 裡工作時,用 AI 的開發者其實慢了 19%。為什麼?因為時間只是換了地方。他們少打字,多花在 review、修正、整合。他們 覺得 自己變快了,其實沒有。
那種「三天做到 90%」的感覺,在 greenfield UI 上完全真實。但在真實 codebase 裡,進度會慢下來。
過度自信的陷阱
被這股新力量灌醉之後,我撞牆了。Tom 掉番茄的物理感不對。介面沒過無障礙標準。breakpoint 很敷衍。載入很慢。
我掉進一個有文獻記載的陷阱。史丹佛的研究顯示,AI 助理其實會讓我們傾向寫出比較不安全的程式碼。更糟的是?研究發現 AI 還讓開發者 更相信 自己那堆不安全的程式碼完美無瑕。
AI 讓我們變快,也讓我們變傲慢。我們失去對 supply chain 的掌握。我們跳過 review 慣例。我們假設機器最懂。
被最後這段摩擦壓垮,我沒把 Tomopomo 做完。我躲起來了。我開始做另外二十二個產品。沒有一個見光。我跟自己說只是在練習,學怎麼「控制 LLM」。
我錯了。
最後 10% 其實是一半的工作量
資深開發者都知道一個秘密:所謂的「最後 10%」不是 10%。實務上,打磨、可靠度、發佈,至少佔一半工作量。
把 app 做完不只是 coding 技術。還是在緊限制下做產品管理。要讓 AI 做出我真正想要的,我還是得做苦工:搞懂套件、設定 OAuth、接資料庫,最難的是——決定哪些功能上線、哪些砍掉。
所以我不再躲了。我冷靜下來,回去把開始的事做完。
在 AI 時代怎麼真的把產品 ship 出去
如果你想讓「vibe coding」穩定產出一個上線的 app,就得停止把 AI 當魔法棒,開始把它當電動工具。你得自己定義什麼叫 done。
- 動手寫程式前先寫 ship checklist。 在產生任何一行 code 之前,先定好無障礙檢查、效能預算、錯誤狀態、離線行為、安全 review、裝置測試。
- 強迫做 MVP 切割。 一個主要迴圈。一個設定畫面。一個分析視圖。其他全部丟進「之後再說」。
- 讓人類保有 source of truth。 AI 可以大量用在 scaffolding 和重構,但人類擁有的 spec 和測試必須是最終權威。
就像股市。如果你有無限算力和海量資料,可以做高頻演算法交易。我們其他人?得投資在基本功。
我們談「vibe coding」已經一年了。很快這個詞會淡出。它就會變成「寫程式」。
新時代不是軟體變簡單了。是 迭代 變便宜了。
瓶頸已經搬家。不再是寫 boilerplate。瓶頸現在是你的判斷、你的驗證、你的打磨。這才是讓軟體 好,而不只是 存在。
原文發表於 Medium。
