SDD 不只是軟體工具——我用它規劃了一個物理專案

上次用十分鐘架好 WireGuard VPN,以為搞定了。兩週後 LINE 斷線、NAS 連不上,逐個排查才發現防火牆規則有問題。如果當初先跑 SDD Spec 階段,這些問題在規格書裡就會被列出來,不會等到出事才救火。

本文分享我如何把原本給軟體用的 SDD 框架,實際套用在網路架構規劃上,以及兩者之間的差異。


什麼是 SDD

規格驅動開發(Spec-Driven Development),核心概念很簡單:

先用自然語言把「你要做什麼」定義清楚,再交給 AI 執行。

不是叫 AI 直接幫你做事,而是先讓 AI 幫你想清楚,再動手。

這個框架原本是為寫程式設計的,但底層邏輯適用於任何需要「定義清楚再交付」的場景。今天我拿一個網路設定任務來試試。


我的任務:用 WireGuard 把兩個辦公室連起來

這個任務我們之前做過,還寫了一篇文章:把兩個辦公室連起來:用 WireGuard 十分鐘搞定

這次我想試試:如果先跑 SDD 流程,會產生什麼不同?


完整 SDD 循環怎麼跑

SDD 有四個主要階段:Spec → Plan → Tasks → Implement

註:Implement 實務上是人工處理,所以這邊會移除這個步驟。

所以你看會出現這麼多步驟!這就是需要取捨的地方。SDD 在很多時候過於複雜或過度設計,導致很多人懶得使用。我的文章是一篇快速入門介紹,讓大家在 10 分鐘內跑起來,省略了防火牆解釋、精確的 AllowedIPs 設計,以及架構名詞的精確解釋。Spec 則是可實際部署的工程文件,兩者目的不同。

Step 1|Spec(規格)

我給 AI 的輸入只有一句話:

「RouterOS 做 Server,Fedora 做 Client,Fedora 筆電要能相互訪問內網並存取 NAS。」

AI 產出的規格包含:

  • 架構圖:兩端 IP 規劃、VPN 管理網段、Split Tunnel 流量走向
  • User Stories:三個故事,分別對應「連上」、「多人同時連」、「開機自動連」
  • 驗收條件:每個故事有明確的 Given / When / Then
  • Edge Cases:firewalld 干擾、AllowedIPs 設錯、防火牆 rule 順序、內網回程路由……

光是 Edge Cases 這段,就把我上次踩過的所有坑都列出來了。

我之前怎麼知道這些問題的?靠踩坑。

Step 2|Plan(實作計畫)

規格確認後,AI 產出實作計畫,把設定步驟分成三個 Phase:

Phase 0:產生金鑰、確認環境(零風險)
Phase 1:RouterOS + Fedora 實際設定
Phase 2:逐項驗證

每個步驟都附上可直接執行的指令,包含預期輸出是什麼。

Step 3|Tasks(任務清單)

最後產出 39 個任務,標注哪些可以平行執行、哪些有相依性、MVP 交付點在哪裡。


遇到什麼問題、學到什麼

問題:內容太多,差點過度設計

跑完三個階段,我拿到的是一份工程等級的部署文件。

這和我原本那篇「十分鐘快速入門」的定位完全不同。

兩者的差距:

快速入門文章 SDD 產出
目標 想快速跑起來的人 需要穩定部署的工程師
防火牆設定 省略 完整,含 rule 順序說明
AllowedIPs 兩端都寫進去 精確的 Split Tunnel 設計
驗證方式 沒有 每個步驟都有預期輸出
篇幅 一頁 十頁

SDD 不是萬能的,它會把所有可能的問題都考慮進去,但你不一定需要全部

取捨是你的工作,不是 AI 的工作。

Spec 階段為什麼最有感

對我來說,Spec 是整個流程最值得做的一步

規格架構清楚了,可以少繞很多彎路。有些事情不做,才是最好的優化。當你不知道自己的真實需求,給 AI 時就會無限延伸成一個龐大的方案架構——其實你只是想要兩地 VPN 連線而已。限縮邊界、訂好需求,才是最重要的事。雖然後續內容閱讀與執行可能繁瑣,但精準確實,可以達成。

原因很具體:我上次設定 VPN 雖然連上了,但後來出現一堆問題——LINE 無法連線、時常斷連。花了大量時間各種問 AI 才一一排查。如果當初先跑 Spec,這些問題在規格階段就會被列為 Edge Cases,設定時就會一起處理,不用事後救火。

規格先行的優勢不是讓你做更多,而是讓你少走彎路

結論:這個框架可以用在哪裡

SDD 適合用在:

  • 你知道目標,但不確定邊界在哪裡(Spec 幫你劃清楚)
  • 需要穩定、可重複執行的設定(Tasks 幫你不漏步)
  • 多人協作或需要交接的場景(文件即流程)

不適合用在:

  • 真的只是想快速試試看
  • 一次性的小任務

我的快速入門文章和這次的 SDD 產出,目的不同,都有價值。

差別在於:你想要跑起來,還是想要跑得穩。


如果這篇對你有幫助,歡迎訂閱我的電子報。每週一篇,分享一個你可能沒想到的技術技巧或工作流程。

💬 或直接來信交流 [email protected]