前言

Spec Kit 是 SDD(Specification-Driven Development)理念下誕生的工具。2020 年後,隨著 AI 浪潮逐漸襲來,SDD 開始受到關注;尤其在 2025 年,LLM 的快速迭代讓社群有了大量討論,探討 AI 輔助開發的可能性,Spec Kit 便應運而生。


Spec Kit 快速體驗

10 秒內讓你快速理解社區火紅的 Spec Kit 究竟有什麼魔力!

點我體驗互動演示


軟體開發方法論比較(可選閱讀)

在認識 Spec Kit 之前,先來了解各種軟體開發方法論的差異,這有助於理解 SDD 的定位。

傳統開發(中小企業主流)

情境: 客戶說:「我想要一個會員登入功能。」

流程:

  1. 拿到需求: 工程師開始想像登入畫面長什麼樣子
  2. 直接寫程式: 馬上開始寫程式碼
  3. 測試: 寫完後,手動點擊畫面試試看。「看起來可以登入!」
  4. 交付與修改: 客戶或 QA 發現問題:「密碼錯誤三次應該要鎖帳號,你沒做!」工程師只好回去修改,但可能不小心改壞了其他功能

核心問題:

專案規模擴大時,可能改1錯10

客戶需求往往模糊,規格一旦做錯可能全部打掉重來


備註:所以一般 PM 或 UIUX 團隊都會先提供 Prototype 給客戶確認,但就算如此,仍可能在開發完成後發現不符合需求。

TDD(Test-Driven Development)

為了解決傳統開發的核心問題:改1錯10(確保事情要做「正確」!)

情境: 客戶說:「我想要一個會員登入功能。」

流程:

階段說明
🔴 紅燈為接下來要開發的功能撰寫測試用例,這些測試一定會失敗(因為程式還未開發)
🟢 綠燈撰寫程式碼,讓測試用例通過
🔄 重構優化撰寫的程式碼

核心問題:

學習曲線高

開發時間增加(這也是大多企業不做的原因)

只保證程式的品質(做正確),但不保證程式的方向(是否做對用戶需求)


商業市場上,先推出產品往往比產品品質更重要。例如 ChatGPT 推出就造成轟動,直到 2025 年市佔率依舊占了一大塊。

ATDD(Acceptance Test-Driven Development)

為了解決傳統開發核心問題:釐清客戶的模糊需求,確保「做對方向」!

情境: 客戶說:「我想要一個會員登入功能。」

流程:

  1. 團隊討論: PM、RD、QA、SA、客戶(視情況)一起坐下來討論需求
  2. 定義驗收標準: 確保要做到什麼程度才算合格交付
  3. 開發功能: 根據驗收標準進行開發(可能採傳統開發或 TDD)
  4. 驗收交付: PM 或客戶根據驗收清單進行驗收,直到通過

核心問題:

溝通成本較高(技術人員與非技術人員的溝通)

考驗團隊文化

BDD(Behavior-Driven Development)

為了解決 ATDD 的問題:溝通成本高

情境: 客戶說:「我想要一個會員登入功能。」

流程:

  1. 團隊討論: 同ATDD,團隊成員一同討論,但使用「Given-When-Then」工具,作為技術與非技術人員的溝通橋樑來撰寫規格
  2. 定義驗收標準: 確保要做到什麼程度才算合格交付
  3. 開發功能: RD 根據規格開發功能
  4. 自動化測試: 「Given-When-Then」規格文件可轉為自動化測試,確保品質

核心問題:

學習成本高

考驗團隊文化

開發方法論小結

每一種軟體開發模式都有其利弊,大多時候會採用 Hybrid(混合) 方式:

場景常見做法
政府專案會有驗收標準才撥款(ATDD 精神)
快速迭代產品定義 User Story 確認方向
大型維運系統Tech Leader 更在乎「做正確」,確保系統年穩定運行率 > 95%

Spec Kit 操作說明懶人包

Spec Kit 流程圖


實際使用心得

SDD Demo

使用 SDD 後,總結了我 2025 年底使用 Spec Kit 的看法:

缺點

非常燒 Tokens,Claude Pro 的週額度約 2 天就用完了(我的籃球專案進度都還沒 1/10)

走 Spec Kit 流程到 /tasks 階段時,若發現漏加規格,整個流程需重跑,Tokens 再見

優點

Spec 部分確實寫得很詳細,能將模糊的流程更具體化

產出的最終成品品質更好(畢竟燒了那麼多 Tokens)

建議

為了解決燒 Tokens 的問題,目前社區討論中,我個人贊同 Hybrid 派 的做法:

建議流程

只用 Spec Kit 產生規格文件

讓 Spec Kit 專注在它最擅長的事:將模糊需求轉為詳細規格(eg:例如使用 Gemini CLI 來生成規格,前提是自己要先把需求寫過一版)

使用 AI工具 進行開發

使用 AI 工具,例如 Cursor、Claude CLI 等,手動去增加 Spec 來生成程式碼

AI工具自動更新規格文件

開發完成後,請AI工具自動將規格更新到需求文件上,一旦要進行需求調整或者擴充時,可以讓 LLM 更快擁有必備的知識

這種方式的最終成品表現上,品質也是相當不錯的,這也是我目前比較推崇的方式!
(後續如果有更好的做法,屆時再來更新)