內部做法

客戶說「可不可以順便加一個…」之後:一張需求變更單怎麼走到上線

2026.09.13 · 35 次瀏覽
客戶說「可不可以順便加一個…」之後:一張需求變更單怎麼走到上線

ScriptWalker 的變更單 13 個欄位、A/B/C 三級判準、影響評估與回寫文件的完整流程

分享:

一句「可不可以順便…」,變成 40 個工時

前年一個電商後台專案,客戶在週會最後兩分鐘說:「可不可以順便讓優惠券疊加?」聽起來像十分鐘的事,實際上牽動購物車計算、退款拆分與報表,吃掉 40 個工時、延後 11 天。代價不是那 40 小時,是它沒被寫下來、沒被報價、沒人確認過;上線日一過,雙方對「答應過什麼」的記憶完全不同。之後我們訂死一條規矩:不在原始規格裡的需求一律走變更單(Change Request)。

我們的做法:一句話變成一張有編號的單

超出原始規格的需求都要走八個關卡,沒有口頭版本,也沒有例外;那句話從說出口起就有編號可查:

客戶一句話(週會 / LINE / Email)
    ↓
Slack #cr-inbox 開單(24h 內)
    ↓
Notion 變更單 CR-2026-041(13 欄位)
    ↓
分級 A / B / C(人時 + 風險面)
    ↓
影響評估(模組 / 資料 / 測試 / 文件)
    ↓
報價 + 排程(B、C 級必經)
    ↓
客戶書面確認(Email 回「同意」)
    ↓
GitHub Projects 排入 Sprint → PR → 驗收
    ↓
回寫規格 + CHANGELOG → 關單

為什麼設計成這樣:三個取捨

速度 vs 可追溯。小改動全走流程會被拖死,所以留了 A 級快速通道:直接做,單照開但不擋路。

免費額度 vs 界線。不給免費額度,客戶會覺得每講一句都在被收錢,久了乾脆不講,需求變成上線後才爆;A 級因此附帶每月 8 人時額度。

用人時分級,不用「重要性」。重要性主觀,人時可討論:

等級判準處理方式
A 級≤ 2 人時,不動資料表與金流權限當週 Sprint 吸收,不計費(月上限 8 人時)
B 級2–16 人時,或跨 2 個以上模組出評估與報價,排入下一個 Sprint
C 級> 16 人時,或動到資料模型、金流、權限視同新階段,重估時程並簽合約附件

具體執行:工具與變更單

四個工具串起這條線:Slack Connect 開共用的 #cr-inbox 頻道,客戶端行銷、營運都能直接丟需求;Notion 存單、自動編號 CR-YYYY-NNNGitHub Projects 接手排程,PR 必須引用 CR 編號,看板就是客戶看得懂的進度;Figma 做視覺對照,上線後 Sentry 觀察 48 小時。

# CR-2026-041|優惠券可疊加

- 提出人:客戶端 / 王經理
- 管道:週會(2026-09-02)
- 原始描述:「可不可以順便讓優惠券疊加?」
- 釐清範圍:一張訂單最多 2 張券
- 明確不包含:會員加成、跨店券、歷史回溯
- 影響模組:Cart / Order / Refund / Report
- 資料異動:orders 新增 coupon_stack_meta
- 測試影響:6 個 feature test + 退款回歸
- 文件回寫:spec/checkout.md、CHANGELOG.md
- 分級:B
- 估時:14 人時
- 排程:Sprint 2026-W38
- 客戶確認:2026-09-05 Email 回「同意」

「明確不包含」是最值錢的欄位:爭議多半來自客戶以為順便會做的那塊。寫評估時跑這份清單:

  • ☐ 改到資料表結構嗎?要不要 migration 與回滾腳本?
  • ☐ 影響已驗收功能嗎?補哪些回歸測試?
  • ☐ 碰到金流、權限、個資嗎?
  • ☐ 有沒有更便宜的替代做法給客戶選?

這個做法的代價

  • 慢。B 級單從一句話到動工平均 2–3 個工作天,一半耗在客戶內部決策。
  • 行政成本自吸。每張評估 40–60 分鐘不計費,月十張就是 8 小時。
  • 容易過度分級。工程師保守,會把 A 級丟去 B 級,我們每季抽查校正。

不適合什麼情境

  • 探索型 MVP/PoC。規格本來就邊做邊長,一天三張單會讓人窒息,改成兩週一次重議。
  • 長期維運月約。維運是連續的小需求流,改用工單池加月人時上限。

客戶為什麼該關心

時程:延期多半不是技術難度,是沒人記得範圍被加了多少。有變更單就有出處:「W36 加了 3 張 B 級單共 31 人時,上線從 10/1 移到 10/9」。

費用:你在點頭前就看得到價格,不會有做完才冒出來的追加帳單。

品質:每張單都要回答「補哪些測試、回寫哪份文件」,半年後接手的人看到的規格才跟程式一致。

如果你也想這樣做

  • 先談分級,再做表單。很多團隊先設計 20 欄的表單,結果沒人填。
  • 書面確認越輕越好。只要客戶回一句「同意」;簽核系統只會卡在對方行政。
  • 回寫文件納入 Definition of Done。沒回寫不能關單,這是唯一能長期複利的部分。

我們用在哪些客戶身上

一個 B2B 工業零件報價系統,六個月累積 47 張單:31 張 A(全在免費額度內)、14 張 B、2 張 C。其中一張 C 級要加多階經銷商價格,評估顯示得重寫定價資料模型、估 62 人時,客戶決定延到第二期。

另一個連鎖餐飲訂位 App,第三個月客戶的營運主管自己會說「這應該是 B 級吧?」——制度那時才算活了。

常見問題 FAQ

客戶說「這個很急」也要走完流程嗎?

急件走壓縮版:當天出評估與報價,口頭同意即可開工,24 小時內補單並回信確認。流程可壓縮,紀錄不能省。

A 級免費額度用完怎麼辦?

當月剩下的小需求轉 B 級報價,或延到下月額度;額度不累積、不退還。

如果是我們自己估錯導致工時暴增?

估時是我們的責任。報 14 人時、實做 22 人時,超出部分由我們吸收,不回頭追加。

客戶端很多人提需求,怎麼避免灌爆?

啟動時請客戶指定一位「決策代理人」:任何人都能丟需求進 #cr-inbox,但只有他能對 B/C 級單說「同意」。

合作或加入我們

如果你正在評估把 Laravel 或 Flutter 專案交給外部團隊,而過去的經驗是「範圍一直長、帳單一直來、沒人說得清為什麼」,歡迎把專案拿來聊,我們可以示範一張變更單在你的情境裡長什麼樣。喜歡把模糊需求拆成可估時、可驗收的工程師或 PM,我們也在找。

分享: