這個系列會用 STAR 架構整理每一段職場故事。STAR 分別代表情境(Situation)、任務(Task)、行動(Action)與結果(Result)。每個故事會拆成三天:第一天談 S,還原當時的情境與我原本的理解;第二天談 T,釐清真正的任務、限制與完成條件;第三天則合併 A 與 R,整理我採取的行動、造成的結果,以及後來學到的事。
Day 01 留下的問題是:一句「工單要能搜尋」,還不足以證明題目已經定義完成。這一篇只處理 Task:把表面要求拆成可討論、可限制、可驗收的工作定義。至於實際怎麼澄清、最後選哪個方案,以及產生了什麼結果,留給 Day 03。
我以前容易把 Task 理解成「接下來要做的功能」。於是要求加搜尋,我的任務就叫做做搜尋;要求加匯出,我的任務就叫做做匯出。名稱聽起來完全一致,交付時卻可能各自想像不同。這不是工作拆得不夠細,而是我根本還沒有說清楚:要改善誰的哪個情境,以及什麼變化才算完成。
以下繼續使用虛構的「粉鳥工單服務」,不對應任何真實公司、人物或專案。案例原句仍是:「工單要能搜尋。」
如果我直接把這句話抄進待辦事項,它只保留了提出者目前想到的功能。Task 要補上的,是功能背後的工作情境。為了不讓合理推測偷偷升格成需求,我會替每一層標示目前狀態:
| 層次 | 粉鳥工單服務示例 | 目前狀態 |
|---|---|---|
| 要求 | 工單要能搜尋 | 已知;虛構案例原句 |
| 問題 | 處理者不易找出失敗但未結案、仍需追蹤的工單 | 待確認假設 |
| 任務 | 讓處理者及時辨識待追蹤工單,取得後續處理所需資訊 | 待共同確認 |
| 方案 | 關鍵字搜尋、狀態篩選、異常清單或個人待辦 | 候選,尚未選擇 |
| 限制 | 資料狀態、可見權限、回應時間與責任歸屬 | 部分未知 |
| 驗收 | 用約定條件找對資料,且不越權、不靠人工猜測 | 待具體定義 |
這張表不是正式的需求工程模型,只是我用來避免搶答的分類。它最重要的功能,是把「看起來很合理」與「已經確認」分開。若後來確認真正問題不是追蹤失敗工單,整個問題與任務欄都應改寫,而不是硬把搜尋方案保留下來。
未知不可能一次清空,也不需要每個細節都在第一輪問完。我要先確認的,是答案一變,任務就會跟著改變的資訊。
第一個是使用者與行動。誰要看這批工單?找到之後要判斷、聯絡、重試,還是轉交?如果結果沒有支援下一個行動,搜尋很可能只讓畫面多一個輸入框。
第二個是資料語意。「失敗」由哪個狀態或事件判斷?「未結案」是否等於沒有結案時間?現有資料若無法區分,任務就不只是查詢,還包含資料定義或來源缺口。這類未知不能靠我看欄位名稱猜答案。
第三個是權限與責任。哪些角色可以看哪些工單?系統負責列出候選項目到哪裡,後續處理又由誰負責?若責任人尚未確認,就應把它留在未知清單,不能因為表格需要填滿,順手指定給某個角色。
最後才是驗收時會觀察的條件:哪些資料必須被找出、哪些不得出現、條件如何重現,以及「可接受時間」到底是多少。沒有真實數據與約定前,我不會替案例補上一個看似專業的秒數或資料量。
相對地,搜尋框放在哪裡、採用哪個索引、使用哪套元件,可以等任務邊界穩定後再決定。延後不是忽略;它只是承認現在先回答這些問題,對工作範圍的影響比較大。
以這個虛構案例來說,一份仍待相關角色確認的工作定義可以寫成:
在授權範圍內,讓工單處理者依約定條件辨識失敗但未結案的工單,理解工單為何被列入或排除,並在約定的處理時限前取得後續判斷所需資訊;資料不足時,必須明確顯示缺口,不以猜測補齊。
這段話刻意沒有指定全文搜尋、篩選器或報表。它先把使用者、情境、期望行動與失敗邊界放進來,讓候選方案可以被比較,而不是先被需求原句綁死。
接著才能談驗收。至少要能確認:符合約定狀態的工單可以被重現地找出;不符合條件的工單不會混入;沒有權限的資料不會出現;狀態缺漏或矛盾時不會假裝判斷成功。系統負責正確篩選、套用權限並呈現判斷所需資訊,處理者負責後續業務決定;至於誰維護狀態定義,仍要在實際情境中確認。
非目標也要寫出來。本次不預設要重做整套工單系統、不保證自動修復失敗工單,也不因為資料品質可能有問題,就把所有歷史資料整頓一併塞進範圍。若那些工作後來成為驗收前提,再另行調整任務,而不是用一句「順便處理」藏起來。
需求澄清並不是把開工日往後拖,而是承認工程工作已經開始,只是此刻的產出不是程式碼,而是一個別人能檢查、反駁與驗收的工作邊界。對我來說,這比把模糊要求切成十張技術待辦更困難,也更接近真正的 Task。
我替這一階段留下五個判斷:
這套整理不必套在每一個小修改上。變更很小、容易復原,而且雙方對問題與完成條件已有共同理解時,一句文字確認可能就夠了。當工作跨角色、碰到資料或權限、驗收容易各說各話,或重做成本較高時,才值得留下完整紀錄。
找出 Day 01 記下的一句功能要求,花十五至四十五分鐘,完成一份[《問題陳述範本》]:
明確產出是一頁以內的問題陳述與工作定義。請另一位讀者只看文件,重述「誰在什麼情況遇到什麼問題、這次要改善什麼、哪些仍未知、怎樣算完成」。若對方必須靠作者口頭補充,或把候選方案誤認成既定任務,就還不能通過。
練習內容不得包含公司名稱、可辨識人物、個資、內部網址、真實帳號、Token 或未公開資料。若只是低風險、可立即復原的小修改,可縮成幾句文字;表格能降低誤解、重做或交接成本時才值得使用。
# 問題陳述範本
## 用途
將問題寫成可討論、可修正的陳述,而不是直接鎖定方案。
## 使用時機
- 章節 OJT。
- 需求、設計、審查、交付或回顧需要留下可被他人理解的證據時。
## 不適用情況
- 問題極小且口頭確認已足夠。
- 填表成本高於實際風險。
- 只是為了證明有流程,而沒有實際決策用途。
## 範本
| 目前情況 | 受影響對象 | 可觀察問題 | 影響 | 期望改善 | 不先假設的方案 |
| --- | --- | --- | --- | --- | --- |
| | | | | | |
## 使用提醒
- 只填寫會影響判斷、交付或驗收的資訊。
- 不放入密碼、Token、個資、公司機密或可辨識同事的內容。
- 不使用模糊百分比或「應該可以」取代證據。
- 表格不是目的;能降低誤解、風險或交接成本才有價值。
現在已經有一份可被質疑、也可被驗收的工作定義。Day 03 再從這個邊界出發,處理下一步:我如何先澄清高影響未知、比較候選方案,並留下足以支持結果的證據。