iT邦幫忙

2026 iThome 鐵人賽

DAY 18
1
ChatGPT & Codex

利用Custom GPT+遊戲感來寫PRD系列 第 18

【Day 18】參與者協作圖——當「資料自己會出現」其實是好幾方在接力

  • 分享至 

  • xImage
  •  

使用者只看得到自己那一格

區塊 5 畫完端對端流程圖,使用者的視角已經很清楚了:按了什麼、跳到哪個畫面、出錯回哪裡。但有一類需求,光有這張圖還不夠。

Day 18

舉個例子。一個「序號領取」功能,使用者那邊很單純:進來、領一組序號、看到「剩餘 488 組」。可是這個「488」是怎麼來的?背後可能是:後台先上傳了一批序號、前台即時扣減、外部廠商定期回報哪些序號其實已經被用掉、再有人工去把那些釋放回庫存。使用者完全看不到這一串,他只覺得「數字自己就會對」。

需求方PM 也常常只看到自己那一格。你問他流程,他講的是前台那段;那些在後台、廠商、人工之間流動的資料,他要嘛沒想到,要嘛覺得「那是系統的事」。但對工程師來說,最容易出事的恰恰是這些跨方的交接點。參與者協作圖,就是把這張「誰跟誰在交接什麼」的地圖攤開。

兩張圖,兩種視角

協作圖跟區塊 5 的端對端流程圖長得有點像,但它們回答的是不同問題:

  • 端對端流程圖:以使用者操作為主軸,「按了什麼、系統回什麼」,給需求方PM 跟使用者看。
  • 參與者協作圖:以參與者職責為主軸,「誰負責做什麼、資料在誰之間流動」,給工程師、SA、架構師看。

兩張互補,不互相取代。同一個需求只要牽涉到多方,兩張都該畫。

一個人的事,不用畫

協作圖不是每個需求都要畫,它有明確的觸發條件。區塊 5 流程圖確認後,鼠勾以會去數這個流程到底牽涉幾個參與者:

只有一個參與者(純前端彈窗、單一系統內的功能、純查詢),就跳過,PRD 直接標「N/A 單一參與者」。兩個以上,才畫。

判斷「有幾個參與者」這件事,需求方PM 又會漏。所以鼠勾以會用選項幫他點名,把容易被忘記的非系統角色一起撈出來:

這個流程看起來會牽涉到好幾方一起合作。先確認有沒有漏掉的角色,會涉及以下哪幾類?(可複選)
A. 多個系統(前台、後台、App、簡訊系統⋯⋯)
B. 不同部門或角色(業務、客服、法遵、主管⋯⋯)
C. 第三方(外部廠商、金流商、政府單位、外部 API)
D. 人工作業(人工修正、對帳、書面審核)
E. 排程/自動化(每日批次、定時任務、事件觸發)

這五類(系統、角色、第三方、人工、排程)是刻意分開列的,因為需求方PM 通常只會想到「系統」這一類,後面四類最常被漏掉,尤其是人工作業跟排程。但一個功能會不會準時、會不會出錯,經常就取決於那個沒人提到的「每日凌晨批次」或「人工對帳」。

怎麼畫:用循序圖,一個參與者一條生命線

先講結論:協作圖用 Mermaid 的**循序圖(sequenceDiagram)**畫,每個參與者一條垂直的生命線(lane),訊息箭頭在它們之間由上往下傳遞。

沒有採用一般印象中那種一條一條車道的 BPMN 泳道圖,原因是 Mermaid 沒有原生的泳道語法。硬用 subgraph 去框,結果會是一堆分組方塊、車道也對不齊;要 PM 改用 draw.io 那類工具自己畫又太重。循序圖原生支援、會自動排版,而且生命線本來就對應參與者、訊息箭頭本來就對應資料流向,跟協作圖要表達的內容一致。

拿上面那個序號領取來說,畫出來像這樣:

sequenceDiagram
    participant BO as 內部後台(系統)
    participant FE as 會員前台(系統)
    participant VEN as 外部廠商(第三方)
    participant OP as 人工修正(人工作業)

    BO->>FE: 上傳 500 組序號(初始化庫存)
    Note over FE: 使用者領取,扣減庫存
    VEN->>OP: 提供已使用名單
    OP-->>FE: 釋出已使用序號回庫存
    Note over FE: 顯示最新剩餘組數

這張圖的重點在那幾條箭頭:序號從後台流到前台、使用名單從廠商流到人工、再由人工流回前台庫存。交接點畫出來之後,工程師會直接問到關鍵問題:廠商多久回報一次?人工釋出有沒有時間差、會不會超賣?這些只看前台流程圖都看不出來。

實作上的幾條規範:每個 Actor 宣告成一個 participant;呼叫用實線箭頭、回應用虛線箭頭;每一條訊息都必須標清楚傳遞的內容,不能只有一條光禿禿的箭頭;條件分支用 alt、會重試的用 loop、同一個參與者自己內部的處理用 self-message 或一條註記。圖旁邊再附一張「參與者清單」表,把每條生命線的職責寫成文字,跟圖一起進 PRD。

畫完就鎖,除非冒出新角色

協作圖跟使用者確認後就鎖定,不會隨後面的區塊一直變。唯一的例外是:區塊 7 談例外情境時,如果冒出一個前面沒提到的角色(例如「出錯時客服要介入」「異常要通報資安」),才回頭補一條生命線。

這個「鎖定 + 例外才補」的設計是刻意的。協作圖如果每個區塊都跟著動,維護成本太高,也容易跟其他圖對不齊;但例外情境又確實是最容易長出新角色的地方,所以留一個明確的後門,而不是完全凍結。

小結

參與者協作圖是一個可選的進階機制:流程牽涉兩個以上的參與者時,就用 Mermaid 循序圖把「誰負責什麼、資料在誰之間流動」畫成一張圖,補上端對端流程圖看不到的跨方交接。它用五類 Actor 提示把最常被忽略的人工與排程角色找出來,每條訊息都要標傳遞內容,畫完之後鎖定,只在區塊 7 出現新角色時回頭補。單一參與者的需求可以直接跳過這一張。

Day 19 進到區塊 6「The Data」:當畫面要使用者填一個欄位時,那個看似簡單的輸入框,背後其實藏著一整排該問的規格:字數、格式、必填、驗證時機,一個都不能少。


這是 iThome 鐵人賽系列文章。明天見。
https://ithelp.ithome.com.tw/upload/images/20260911/20181011QXP8e8tBJa.png


上一篇
【Day 17】區塊 5 The How——跟使用者一起畫一張只有兩種節點的流程圖
系列文
利用Custom GPT+遊戲感來寫PRD18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
AndyAWD
iT邦研究生 5 級 ‧ 2026-09-11 23:51:55

出現灰鼠惹!

我要留言

立即登入留言