規格驅動開發(SDD)是什麼?AI 寫程式變快了,為什麼還要先把規格講清楚
這一兩年常聽到「規格驅動開發」(Specification-Driven Development,簡稱 SDD)這個詞,尤其是 AI 輔助寫程式變普遍之後,討論更多了。簡單說,SDD 的核心概念是:先把「要做什麼、為什麼做、怎麼做」講清楚、寫成一份雙方都認可的規格,再開始動工,而不是邊做邊想、想到哪改到哪。聽起來像是老生常談,但在 AI 讓寫程式速度變快的現在,這件事反而變得更重要。
AI 讓寫程式變快了,但也讓「方向錯了」的成本變高
AI 工具讓開發者可以用很短的時間生出大量程式碼,這種靠著模糊指令、邊寫邊調整的做法,業界稱之為「vibe coding」。速度快是真的快,但問題也在這裡:AI 很擅長把一句話變成程式碼,卻沒辦法讀出你心裡沒說出口的那些預期跟限制。指令越模糊,AI 就要猜越多沒講清楚的細節,猜錯的地方往往要等功能做出來、甚至上線後才會被發現,那時候要改的成本已經比一開始講清楚高出許多。
SDD 想解決的,就是「先講清楚再動工」
SDD 的做法,是把「規格」當成開發過程裡真正的主角,而不是寫完程式之後才回頭補的文件。具體來說會先把系統要解決的問題、使用情境、限制條件講清楚並形成共識,這份規格變成開發過程中大家(包含 AI)依循的共同依據,需求有沒有做到、範圍有沒有跑掉,都拿這份規格來對照,而不是憑印象各說各話。
具體流程通常長怎樣
以目前業界常見的做法為例,大致會分成幾個階段:先講清楚「要做什麼、為了什麼目的、使用者會怎麼用」,形成一份完整的需求規格;接著才進到技術規劃,決定要用什麼架構、技術棧、有哪些限制條件跟合規要求;再把規格跟技術規劃拆解成一個個範圍明確、可以個別驗收的小任務;最後才依照任務清單逐項實作,每完成一小塊就可以檢查一次,而不是一次生出一大包程式碼再整包檢查。這樣拆解之後,不管是人還是 AI 在做,都比較不容易做著做著就偏離原本要解決的問題。
為什麼中小企業請人做網站或系統,也該在意這件事
你可能不需要自己懂技術規格怎麼寫,但這件事跟你外包的專案品質關係很大。很多委外開發的糾紛跟延期,根本原因不是技術做不出來,而是一開始「我以為你會做成這樣」跟「我以為客戶要的是那樣」對不上,等到成品出來才發現落差,這時候要改,時間跟預算都已經花下去了。找一個有把「先講清楚規格」當成標準流程的開發團隊,等於是把這種認知落差在動工前就先排除掉,而不是賭雙方一開始的理解剛好一致。
我們怎麼把這件事放進實際專案裡
我們接專案時,動工前都會先把需求、使用情境、資料結構、關鍵限制條件寫清楚並跟客戶確認過,才進入開發,即使是用 AI 輔助加快開發速度的部分,也是在這份規格的基礎上進行,而不是丟一句模糊的需求就讓 AI 自由發揮。目的很單純:讓客戶最後拿到的東西,跟一開始談好的是同一件事,不用等做完才發現「怎麼跟我想的不一樣」。