iT邦幫忙

2026 iThome 鐵人賽

DAY 17
0
AI Engineering

30 天打造我的 AI 開發工作流:從需求分析到上線系列 第 17

Day 17|Plan 不是第二份 Spec:從規格到工作單元

  • 分享至 

  • xImage
  •  

前言

規格確認完了,下一步不是開始寫程式,而是決定:第一個可以交付的東西到底要切多大?


昨天說到

昨天完成最後一次規格自檢。

Spec 告訴我「要做什麼」,但真正開始實作前,還需要回答另一個問題:我要怎麼把這些規格變成可以執行、可以 review、可以交付的工作?

這就是今天 plan 要處理的事情。


Plan 不是第二份 Spec

拆規格那天講過,plantasks 不算規格——規格是交給開發的合約,它們是為了達成合約而寫的工作文件。三者分工:

文件 回答什麼
spec 要做什麼
contracts 跟外部怎麼溝通
plan 怎麼做到
tasks 要做哪些工作

這個區分很重要。

如果 plan 又開始描述需求,最後就會出現兩份 Spec;如果 tasks 又重新定義驗收條件,最後就會出現兩份 Acceptance Criteria。

所以我現在對 Plan 的理解比較簡單:Plan 不是把規格寫得更詳細,而是把規格轉成「可以開始施工的結構」。


/speckit-plan

我沒有從空白 plan.md 開始。使用 /speckit-plan 先讀現有規格,產生基本架構:

Summary
Technical Context
Constitution Check            ← 逐條原則對照
Project Structure
Complexity Tracking
Post-Design Constitution Re-Check   ← 設計產出之後再檢一次

其中我特別留下兩個部分。

1. Constitution Check
它會把設計跟既有規則逐條對照:

### II. 時間一律 UTC + ISO 8601 — PASS
### III. 自建認證(NON-NEGOTIABLE) — PASS
### V. 資料存取只走 ORM — PASS(需審查者留意)

把說過的規則跟這次準備怎麼做放在同一張表上。

2. Complexity Tracking
另一個我覺得值得留下的是 Complexity Tracking,它要求只有在違反既有原則時,才需要解釋:

  • 為什麼需要這個複雜度?
  • 為什麼更簡單的方法不行?

Fill ONLY if Constitution Check has violations that must be justified

/speckit-plan 範本裡沒有「開發順序」

/speckit-plan 產出的那六節全部在回答「技術上長什麼樣」—— 技術背景、目錄結構、原則有沒有被違反,但它不會幫我決定開發順序,因為這不是純技術問題,而是產品問題。

所以我自己補了一節:交付順序,我補的內容:

順序 為什麼排在這裡
先做記錄與簽核流 整個系統只有這段不是 CRUD,是唯一會出錯、也唯一值得先驗證的部分
建立會議排它前面 沒有與會者名單,「全員確認」就沒有對象可綁——這是依賴,不是優先級
登入刻意押後 標準做法、風險低;提早做會讓每一條測試都要先取 token,拖慢驗證核心流程的速度

依賴順序,不等於交付順序

「開發順序」底下其實藏著兩種順序。

問的是
依賴順序 哪個元件必須先存在,另一個才寫得下去 技術的
交付順序 使用者先拿到哪一個功能 產品的

例如:Backend API 要先完成,Frontend 才能串接,是依賴順序。但先完成「寫記錄並送出」,讓使用者可以開始使用,則是交付順序。

兩者很容易被寫成同一件事,可以用一個很簡單的方法檢查:這個階段完成之後,誰的手上多了什麼?

如果答案是:「下一個工程師可以開始做下一層」那很可能只是依賴順序。如果答案是:「使用者現在多了一件原本做不到的事」,這才是交付單位。


切成工作單元

六個功能先保留完整全貌,但實際上不一次拆到最細。

# 工作單元 後端 前端
1 寫記錄並送出 ✅ 已完成 待做
2 確認與退回 ✅ 已完成 待做
3 版本歷程檢視 ✅ 已完成 待做
4 登入與帳號 待做 待做
5 決議項指派與我的待辦 待做 待做
6 稽核軌跡查詢 部分 待做

前三個後端已經完成,反而讓我看到原本 Plan 裡的一個問題:我把「後端先做」誤當成了「功能先交付」,這兩個概念其實不一樣。


一張 Issue 到底應該多大?

我不會用一張 Issue 要幾個 Task 來決定大小。而是:「這張 Issue 關掉之後,有沒有人因此多了一件原本做不到的事?」,Issue 應該要是一個可以 review、測試,甚至交付的工作單元。

Task 是施工步驟,Issue 是交付單位。


小結

  • 規格確認之後,要用什麼大小的單位開始實作。
問題 我的做法
規格要不要一次規劃到底? 先保留全貌,但不要過度預測後面的細節
技術順序跟交付順序一樣嗎? 不一樣,依賴是約束,交付才是計畫
一張 Issue 要多大? 完成後要能驗證一件完整的事
  • 用一句話區分三個東西:Spec 定義「要交付什麼」;Plan 決定「怎麼組織實作」;Task 描述「實際要做哪些步驟」。
  • Issue 則是把它們包成一個可以被驗證、review,最後真正交付出去的單位。

明天:工作單元切好了,第一張要動手。但在寫任何一行畫面之前,先寫測試——而前端的「測試」跟後端不是同一回事。


上一篇
Day 16|API 契約先行,與交付前的規格自檢
下一篇
TDD × AI:測試就是可執行的規格
系列文
30 天打造我的 AI 開發工作流:從需求分析到上線18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言