AI 寫程式為何不能只靠感覺?SDD 如何補上規格、驗收與協作
Vibe Coding 讓 AI 寫程式變得很快,但速度不是軟體工程唯一的問題。當專案變大,模糊需求、邊界條件遺漏、風格不一致、驗收標準不清楚,就會快速累積成維護成本。這也是為什麼 AI Coding 時代反而更需要 SDD,也就是 Spec-Driven Development,規格驅動開發。

[TL;DR] 快速抓住這篇文章
- Vibe Coding 適合原型、探索與一次性腳本。
- SDD 的核心是先寫清楚需求、設計、任務與驗收標準,再讓 AI 依規格生成程式。
- EARS 是一種結構化需求寫法,可降低自然語言需求的歧義。
- AI Coding 的問題通常不是 AI 不夠強,而是人類把模糊需求直接丟給模型。
實體索引|AI寫程式為何不能只靠感覺?SDD如何補上規格、驗收與協作
- 技術與活動實體:AI寫程式為何不能只靠感覺?SDD如何補上規格、驗收與協作;核對模型、規格、驗收、資料、演算法、巡演、作品、城市、日期與官方公告。
- 原文錨點:Vibe Coding 讓 AI 寫程式變得很快,但速度不是軟體工程唯一的問題。 當專案變大,模糊需求、邊界條件遺漏、風格不一致、驗收標準不清楚,就會快速累積成維護成本。這也是為什麼 AI Coding 時代反而更需要 SDD,也就是 Spec-Driven Development,規格驅動開發。 編輯插圖:計算、回饋與制度設計如何彼此連動。 [TL;DR] 快速抓住這篇文章 Vibe Coding 適合原型、探索與一次性腳本。 SDD 的核心是先寫清楚需求、設計、任務與驗收
- 實務脈絡:把系統設計、協作、錯誤界限、版本、使用者需求或演出計畫分開,標出已確認與待更新資訊。
- 編輯界線:區分官方資料、測試結果、社群訊號與推測;變動功能、活動和票務需以日期及官方頁面為準。
Vibe Coding 是什麼?
Vibe Coding 可以理解為用自然語言、直覺和快速迭代來驅動 AI 產生程式碼。你描述想要的功能,AI 很快就能產生可運行的初稿。這種方式的優點是速度快、門檻低、很適合原型設計,也能讓非工程背景的人快速驗證想法。
問題在於,Vibe Coding 很容易讓人誤以為「看起來能跑」就等於「可以維護」。對一次性 demo 來說,這可能沒問題;但對有登入、權限、資料一致性、測試和部署流程的專案來說,模糊指令會變成長期風險。
為什麼 Vibe Coding 會在大型專案中出問題?
Vibe Coding 的最大風險,是它把需求的模糊性轉嫁給 AI。當你沒有說明錯誤狀態、邊界條件、資料模型、權限規則與驗收標準時,AI 會用最常見的方式補齊空白。這不一定是錯,但很可能不是你的系統真正需要的設計。
- 需求不清楚:AI 會自己猜,猜錯時看起來仍可能合理。
- 邊界條件遺漏:錯誤狀態、空資料、重複操作和例外情境容易被忽略。
- 架構不一致:不同對話生成的程式可能使用不同模式、命名與套件。
- 驗收不明確:沒有規格,就很難判斷 AI 生成結果是否真的完成。
SDD 是什麼?
SDD,Spec-Driven Development,規格驅動開發,是把規格放在程式碼之前的開發方法。它不是反對 AI 生成程式,而是要求 AI 在生成之前先理解明確規格。常見流程包括需求文件、設計文件、任務拆解與驗收標準。
在 AI Coding 時代,SDD 的意義更明顯。傳統開發中,工程師會自行補足大量隱含背景;但 AI 不知道你的產品語境、團隊偏好與商業限制。規格文件就是人類與 AI 之間的共同語言協議。
SDD 的基本文件:Requirements、Design、Tasks
- Requirements:描述使用者需求、功能目標、限制條件與驗收標準。
- Design:描述資料模型、API、元件關係、錯誤處理、權限與架構取捨。
- Tasks:把實作拆成可執行的小步驟,讓 AI 和工程師都能逐步完成。
這三類文件不需要一開始就非常龐大。重點是讓 AI 不再靠猜,而是靠明確規格工作。規格越清楚,AI 生成的程式越容易被檢查、測試與重構。
EARS 語法是什麼?
EARS,Easy Approach to Requirements Syntax,是一種結構化自然語言需求寫法。它的目標是讓需求不再只是模糊描述,而是能清楚表示條件、觸發事件、系統行為與例外狀況。它不要求團隊寫厚重規格書,而是用固定句型降低歧義。
例如,與其寫「系統要處理登入錯誤」,不如明確寫出「當使用者輸入錯誤密碼時,系統應顯示錯誤訊息,並保留已輸入的帳號欄位」。這種寫法對 AI 特別有效,因為它把模糊期待轉化成可被實作和驗收的條件。
SDD vs Vibe Coding:核心差異
| 比較面向 | Vibe Coding | SDD |
|---|---|---|
| 起點 | 自然語言直覺描述 | 需求、設計與驗收標準 |
| 優點 | 速度快,適合原型 | 穩定、可檢查、可維護 |
| 風險 | 需求模糊、邊界條件遺漏 | 前期需要多寫規格 |
| 適合場景 | Demo、探索、一次性腳本 | 產品功能、團隊協作、長期專案 |
| AI 的角色 | 根據感覺補空白 | 根據規格執行與驗證 |
如何把 Vibe Coding 改造成 SDD 流程?
- 先用 Vibe Coding 快速探索方案,不急著合併到主程式。
- 把可行方案整理成 Requirements,寫出驗收標準。
- 把資料模型、API、元件和錯誤處理寫進 Design。
- 把實作拆成 Tasks,讓 AI 一次只做一小步。
- 每完成一個 task,就要求 AI 對照規格檢查,而不是只說「完成了」。
- 把測試案例和邊界條件納入規格,避免功能只在 happy path 能跑。
SDD 和 Claude Code Skills 的關係
SDD 和 Claude Code Skills 可以結合。SDD 定義功能需求、設計與任務;Skills 則可以封裝團隊的規格寫法、測試規範、Code Review 檢查清單和發布流程。也就是說,SDD 是工作方法,Skills 是把這個方法變成可重用 AI 流程的封裝方式。
SDD 為什麼至今重要?
AI 寫程式越強,規格越重要。因為模型可以很快產生大量程式碼,但它不會自動知道你的產品目標、風險承受度、資料邊界與商業規則。SDD 的價值在於,把人類真正負責的部分寫清楚:需求、取捨、限制與驗收標準。AI 可以加速實作,但不能替你定義什麼才算正確。
延伸閱讀與站內連結
- Claude Code Skills 實戰解析:讓 AI Agent 變成可重用的數位工匠:把 SDD 流程封裝成可重用 Skill。
- Herbert Simon 解析:有限理性、決策理論與人工智慧:理解為何規格能降低決策模糊性。
- Peter Drucker 解析:管理學、知識工作者與現代組織:從知識工作角度理解規格與協作。
- Clayton Christensen 解析:破壞式創新與企業轉型:理解 AI 工具如何改變組織開發流程。
FAQ
SDD 是什麼?
SDD 是 Spec-Driven Development,規格驅動開發。它強調先定義需求、設計、任務與驗收標準,再進行實作。
Vibe Coding 是什麼?
Vibe Coding 是用自然語言和直覺快速驅動 AI 產生程式碼的方式,適合原型和探索,但在大型專案中容易累積維護風險。
EARS 語法有什麼用?
EARS 是一種結構化需求寫法,透過固定句型描述條件、事件與系統行為,降低需求歧義。
AI Coding 為什麼更需要規格?
因為 AI 可以快速生成程式,但無法自動知道產品目標、商業規則與驗收標準。規格能讓 AI 的輸出更可檢查、可維護。
把「AI寫程式為何不能只靠感覺?SDD如何補上規格、驗收與協作」拆成可驗證的系統問題
這篇文章的主題不只是一個名詞或產品名稱,而是一套由資料、流程、資源與限制共同組成的系統。讀完主要敘述後,可以把焦點往前推一步:系統邊界在哪裡、關鍵機制如何運作、指標改善是否伴隨新的成本,以及哪些說法仍需要原始資料核對。
| 分析面向 | 要追問什麼 | 可查找的證據 |
|---|---|---|
| 系統邊界 | 本文的主題由哪些元件、角色與外部條件共同構成? | 架構圖、供應鏈、時間線與官方規格 |
| 運作機制 | 結果是由哪個流程、模型、設計或制度選擇造成? | 流程步驟、參數、介面、測試與案例 |
| 指標與代價 | 效率、速度或規模提升後,哪種成本或風險被轉移? | 功耗、延遲、可靠性、價格、勞動與環境資料 |
| 可驗證性 | 哪些結論可以重現,哪些仍只是公司說法或推測? | 原始文件、版本、第三方測試與反例 |
用這四個問題閱讀,能把技術敘事從「看起來很強」轉成可比較的證據鏈,也能看見一個系統真正改變的是什麼。
KEEP READING
接著讀什麼?
從同一主題繼續閱讀,或回到 YOLO LAB 的完整文章索引,找到下一個值得投入時間的問題。


發表迴響