用 AI 寫敏捷使用者故事與驗收條件:從 Epic 切分到 Given-When-Then 的實戰教學

Sprint 規劃會議上最尷尬的一幕,往往是這樣:PO 唸完 backlog 裡的一條故事,工程師抬頭問「所以這到底要做什麼?」,設計師說「這跟我上週畫的流程不一樣吧」,然後整間會議室陷入十分鐘的即興討論。故事寫了,卻沒有把該講清楚的事講清楚——這是敏捷團隊最常見、也最耗成本的內傷。

一分鐘重點:使用者故事不是把需求換句話說,而是用「誰、想要什麼、為了什麼價值」逼出對話;驗收條件不是實作步驟,而是用「什麼前提、什麼事件、什麼反應」定義何時算做完。AI 在這件事上的價值,是把你腦中一段模糊的需求,在幾秒內轉成一批格式正確、符合 INVEST 的故事草稿,還順手附上 Given-When-Then 驗收條件——省下的是打字與格式的苦工,換來的是團隊能把時間花在真正該吵的地方:可行性、體驗與優先序。這篇會帶你走完整套流程,並附上一段可以直接複製的 Prompt。

適合誰讀:產品經理(PM)、產品負責人(PO)、Scrum Master,以及任何要把需求變成可開發任務的工程與設計團隊成員。就算你不是敏捷科班出身,也能照著做。

提醒:本文的 Prompt 與範例是教學示範,AI 產出的故事與驗收條件務必經過團隊 refinement 覆核。涉及商業優先序、上線承諾等決策,請由 PO 與工程負責人拍板,別直接照 AI 的排序開工。

先搞懂:使用者故事到底在解決什麼問題

很多團隊把使用者故事當成「比較短的需求規格」,這是根本的誤解。傳統需求規格書想做的事,是把系統該有的行為一次寫到滿、寫到死,讓團隊照著實作。但軟體開發的殘酷真相是:需求會變、你一開始也想不全、寫得再細工程師還是有疑問。

使用者故事的哲學剛好相反。它刻意寫得很短,短到你不可能靠它就開工——這是設計,不是偷懶。故事的真正目的,是當一張「我們得好好談這件事」的提醒卡。經典的定義是 3C:卡片(Card,簡短的故事本身)、對話(Conversation,開發前團隊一起釐清細節)、確認(Confirmation,也就是驗收條件)。三者缺一不可,缺了對話,故事就只是一張沒人看得懂的便利貼。

理解這點,你才會明白 AI 在這裡的角色:它能幫你把卡片和確認寫得又快又規範,但那場對話——工程師講出系統限制、設計師確認流程、PO 說明為什麼這件事現在最重要——是 AI 取代不了的。

As a… I want… so that… 為什麼是這個格式

使用者故事有個經典句型,別小看它,每一格都有作用:

As a 〔角色〕,
I want 〔想完成的事〕,
so that 〔想得到的價值/理由〕.

中文可以寫成「身為一個〔角色〕,我想要〔做某件事〕,以便〔獲得某個價值〕」。三段各自逼你回答一個常被跳過的問題:

As a(角色) 逼你講清楚「這是為誰做的」。是新註冊的訪客、還是已消費過的老會員?兩者要的東西天差地遠。角色寫得越具體,故事越不會做歪。

I want(想要什麼) 是使用者的意圖,注意是「意圖」不是「畫面」。寫「我想要一個下拉選單」是實作,寫「我想要篩選出我買得起的商品」才是意圖——把意圖留給故事,把選單留給設計去決定。

so that(為了什麼) 是最常被省略、卻最重要的一段。它逼你講出這件事的價值。當你發現某條故事的 so that 寫不出來,或寫出來很牽強,那通常是個訊號:這件事可能根本不該做,或優先序沒那麼高。so that 是你砍需求的最好武器。

INVEST:一條好故事的六個體檢項目

寫完故事不代表它是條好故事。敏捷圈用 INVEST 六個字母當品質檢查表,這也是最適合交給 AI 逐條驗的工作:

實務上最常爆掉的是 S 和 I:團隊習慣把一整個功能塞成一條故事,結果做不完也切不出價值。解法通常是「縱向切分」——這是下一段的重點。

切分 Epic:把大石頭敲成能搬的小石頭

史詩(Epic)是大到一個 Sprint 塞不下的大需求,例如「做一套會員點數系統」。它不是拿來開發的,是拿來切的。切分最常見的錯誤是「橫向切」——按技術層切成「做資料庫」「做後端 API」「做前端畫面」三條故事。這樣切的致命傷是:三條都做完你才生得出一丁點使用者價值,前兩條各自都不可交付、不可驗收,完全違反 INVEST 的 V。

正確的做法是縱向切分:沿著使用者流程或資料操作切,讓每條故事都是一小片「從頭到尾能動」的完整價值。以會員點數系統為例,可以切成:

每一條都能單獨開發、單獨上線、單獨對使用者產生價值。這種切法還有個附帶好處:它天然幫你排出了優先序,你可以先上「累點與看餘額」驗證核心,再決定要不要做「到期提醒」。

Given-When-Then:把驗收條件寫成可測的行為

驗收條件(Acceptance Criteria)回答一個問題:這條故事怎樣才算「做完」?寫得好,QA 照著測、工程師心裡有底、上線爭議大減;寫得爛,就會變成上線後才在吵「這不是我要的」。

Given-When-Then 是最好用的格式,它來自行為驅動開發(BDD),三段對應得清清楚楚:

Given 〔某個前提/初始狀態〕
When 〔使用者做了某個動作/發生某個事件〕
Then 〔系統應該有的可觀察結果〕

以「用點數折抵金額」這條故事為例,一組完整的驗收條件會涵蓋正常、邊界與錯誤三種情境:

情境一(正常)
Given 會員帳戶有 500 點、購物車金額為 1000 元
When 會員在結帳頁選擇用 300 點折抵
Then 應付金額應顯示為 700 元,且點數餘額預扣為 200 點

情境二(邊界:點數不足)
Given 會員帳戶只有 100 點
When 會員嘗試折抵 300 點
Then 系統應阻止並提示「可用點數不足,最多可折抵 100 點」

情境三(錯誤:訂單取消)
Given 會員已用 300 點完成下單但尚未出貨
When 會員取消該筆訂單
Then 已折抵的 300 點應於 24 小時內全額退回會員帳戶

關鍵原則:Then 描述的是「系統可觀察的行為與結果」,不是「怎麼實作」。寫「應付金額顯示 700 元」是行為,寫「呼叫 discount_service 更新 order.total 欄位」是實作——後者不該出現在驗收條件裡,那是工程師的自由,你越界寫死了,反而綁住團隊、也讓非工程角色看不懂。

台灣情境案例:怡君怎麼把「會員點數系統」變成能開發的 backlog

怡君是一家台灣美妝電商新創的 PM,團隊只有四個工程師加一位設計。某天週會,創辦人丟下一句:「我們也來做個會員點數系統吧,留住回購的客人。」——這句話就是一個典型的、大到沒法開發的 Epic。

過去怡君會自己關在會議室兩小時,硬把需求寫成一份 Word 規格,結果 Sprint 規劃時工程師照樣問東問西。這次她改用 AI 輔助。她先花十分鐘寫清楚三件事:商業目標(提升 90 天回購率)、目標使用者(過去半年消費過一次以上的會員)、成功指標(點數功能上線後回購率提升 5%)。然後她把這段脈絡連同創辦人那句話,一起丟給 AI,套用下一段的 Prompt。

AI 幾秒內產出七條縱向切分的故事,每條都有 As a I want so that 格式與 Given-When-Then 驗收條件。怡君沒有照單全收——她做的是刪與改:砍掉一條「會員可將點數轉贈好友」(so that 講不出這一季的價值,優先序太低),把「查看點數異動紀錄」標為第二批。接著她把剩下五條帶進 refinement 會議。

會議上真正的價值才浮現:資深工程師阿哲指出「消費後自動累點」牽涉到既有金流回呼的時序問題,這條的複雜度比 AI 估的高,撲克估點時大家從 3 點討論到 8 點;設計師則發現 AI 寫的折抵情境沒考慮到「部分商品不適用點數」的規則,補了一條驗收條件。一小時後,怡君手上是一批工程認可、設計對齊、PO 排好序、可以直接進 Sprint 的故事。她省下的不是思考,而是打字和格式;換來的是把團隊的腦力集中在只有人能判斷的地方。

可直接複製的 Prompt:一次把模糊需求拆成 INVEST 故事+驗收條件

把下面這段複製到你慣用的 AI 工具,替換〔 〕裡的變數即可。它會一次完成收斂 Epic、縱向切分、INVEST 檢查與 Given-When-Then 驗收條件:

# 角色
你是一位資深敏捷產品教練,同時具備 PO 與資深工程師的視角。
你擅長把模糊的商業需求拆成符合 INVEST 原則的使用者故事,並寫出可測試的驗收條件。

# 背景資訊
- 產品/功能:〔產品/功能,例如:美妝電商的會員點數系統〕
- 目標使用者:〔目標使用者,例如:過去半年消費過一次以上的會員〕
- 商業目標:〔商業目標,例如:90 天內回購率提升 5%〕
- 團隊已知限制:〔技術債、法規、既有系統等限制,若無可填「暫無」〕
- 一個 Sprint 長度:〔例如:兩週〕

# 原始需求(可能很模糊,請幫我釐清)
〔在此貼上老闆或客戶那句話,例如:做一個會員點數系統留住回購客人〕

# 任務,請依序完成
1. 先把上面的原始需求收斂成 1~2 個史詩(Epic),並用一句話界定各 Epic 的範圍與「這次不做什麼」。
2. 針對每個 Epic,用「縱向切分」(沿使用者流程/資料操作,而非技術層)拆成多條使用者故事。
3. 每條故事都用這個格式:
   身為一個〔角色〕,我想要〔做某件事〕,以便〔獲得某個價值〕。
4. 逐條用 INVEST 六原則自我檢查,若某條不合格(尤其是太大或無價值),請直接改寫或再切分,並簡短說明理由。
5. 為每條故事寫 2~4 組 Given-When-Then 驗收條件,務必涵蓋正常路徑、邊界情境與錯誤情境。
   Then 只描述「系統可觀察的行為與結果」,不要寫任何實作細節或技術欄位。
6. 為每條故事標一個粗略的相對規模參考(S/M/L)當估點討論的起點,並註明「最終點數需由團隊估算」。

# 輸出格式
用 Markdown。每個 Epic 一個標題,底下條列故事;每條故事附驗收條件與規模參考。
用繁體中文與台灣軟體業慣用語。

小技巧:如果第一輪產出的故事偏大,直接回一句「請把第 X 條再縱向切分成 2~3 條更小的故事」,AI 會沿著同樣的原則往下切。

常見錯誤:這幾種寫法會讓故事白寫

AI 幫不上的地方:清楚劃出這條界線

用 AI 寫故事很爽,但你得知道它的天花板在哪,否則會把「初稿」當「定稿」誤事。

商業優先序,AI 決定不了。哪條故事先做、哪條這季不做,取決於公司策略、市場時機、關鍵客戶的壓力——這些脈絡多半不在 AI 手上,也不該交給它拍板。AI 能幫你把選項列清楚,但按下排序鍵的必須是 PO。

技術可行性與隱藏成本,要靠工程師。AI 估的規模是紙上談兵,它不知道你們某個十年老系統改一個欄位要動半天、也不知道那個第三方金流回呼有多不穩。像怡君案例裡「自動累點」的時序問題,只有動手的人才看得出來。

體驗與流程細節,要靠設計對齊。AI 生的驗收條件常常漏掉真實使用情境的分支(例如部分商品不適用點數)。設計師與實際跑過流程的人,才補得齊這些人味。

那場「對話」本身,AI 無法代勞。使用者故事方法論的核心是團隊一起釐清共識。AI 給你的是更好的討論素材,不是替你省掉討論。把省下來的打字時間,拿去把對話談得更深,才是正確用法。

一句話總結界線:AI 負責把需求寫得規範又快,人負責判斷這件事該不該做、能不能做、怎麼做才對。

下一步:把整套產品流程都系統化

寫好使用者故事只是產品開發的其中一環。當你的 backlog 變得清晰,接下來要面對的是進度怎麼管、產品怎麼上市、團隊目標怎麼對齊。這些在 AgentAI 智庫都有成套的實戰教學可以接著看:把故事排進時程、控管風險,讀 用 AI 做專案管理;功能做完準備推向市場,讀 用 AI 規劃產品上市;想讓團隊的每條故事都對準大目標,讀 用 AI 設定 OKR 與 KPI;需要把 API 與系統行為寫成文件,讀 用 AI 寫技術文件

想找更多能直接套用的 AI 做法,AgentAI 智庫還備有大量可複製的 AI 工作流實戰食譜,把你每天的重複工作一個一個變成系統。從今天這條故事開始,讓需求不再卡在「這到底要做什麼」。

常見問題 FAQ

使用者故事和傳統的需求規格書(SRS)差在哪?
需求規格書是把系統該做的功能鉅細靡遺寫死,交給團隊照做;使用者故事則是刻意寫得簡短,重點在『誰、想做什麼、為了什麼價值』,細節留到開發前的對話再補齊。故事不是文件本身,而是一張『提醒我們要好好談這件事』的便利貼。AI 能幫你快速把需求轉成故事草稿,但真正的對話還是得團隊自己談。
AI 生出來的使用者故事可以直接進 Sprint 開發嗎?
不建議直接進。AI 的產出是很好的初稿,能省下八成的打字與格式時間,但它不知道你們的技術債、系統限制與這一季真正的商業優先序。把 AI 產出當成 refinement 會議的討論素材,經過工程評估可行性、設計對齊體驗、PO 確認價值與順序後,才算真正 ready。
INVEST 原則裡最容易被違反的是哪一個?
最常被違反的是 Small(夠小)與 Independent(獨立)。團隊很容易把一整個功能當成一條故事,結果一個 Sprint 做不完、也切不出可交付的價值。用縱向切分(沿使用者流程切,而非沿技術層切)通常能同時改善這兩點,讓每條故事都是一小片能單獨上線的完整價值。
驗收條件用 Given-When-Then 一定比條列式好嗎?
不一定,但 Given-When-Then 有個好處:它強迫你講清楚『在什麼前提下、發生什麼事、系統該有什麼反應』,天然對應到可自動化的測試案例。單純的勾選清單容易漏掉前提與邊界情境。簡單的故事用條列也行,但只要牽涉狀態、權限或流程分支,Given-When-Then 會讓你少踩很多驗收爭議的坑。
估點(Story Point)到底在估什麼?可以請 AI 直接給點數嗎?
估點估的是相對複雜度與不確定性,不是絕對工時。它是團隊對『這件事有多難』的共識,重點在討論過程而非數字本身。AI 可以給一個規模參考當起點,但真正的點數必須由要動手的團隊成員一起估,因為只有他們知道系統的坑在哪。讓 AI 拍板點數,等於放棄了估點最有價值的那場對話。
一條使用者故事應該多大才合理?
經驗法則是『一個開發者能在一到三天內完成、且一個 Sprint 內綽綽有餘』。如果一條故事估下來要佔掉整個 Sprint,通常代表它其實是個 Epic,該再切分。太小也不好,小到沒有獨立價值的技術任務可以掛在故事底下當子任務,不必每個都寫成完整故事。

延伸閱讀

幫這篇打個分:
A
AgentAI 智庫團隊 ✓ 台灣實作團隊

我們是一群專注於 AI Agent、Prompt 與自動化工作流的台灣實作者。每篇教學都附可複製配方、誠實標示實測程度與限制,只分享真正能落地、可直接套用的方法——與其介紹工具,不如教你把事情做完。

關於我們 →看更多教學 →訂閱情報週報 →

每週把這類實戰教學寄給你

訂閱 AgentAI 智庫情報週報,新的 Prompt、AI Skills、工作流與教學第一時間收到。

免費 · 隨時取消