一、 會計邏輯轉譯為工程師語言的三步驟
-
真實情境白話拆解(Input -> State -> Output)
不要直接講會計分錄,請用生活化情境帶領:
- 事件(Event):發生了什麼商業行為?(例如:買辦公用品 10,000 元,現金付清)
- 狀態變更(State Change):
- 現金(資產)減少 10,000 -> 貸方 (Credit)
- 文具消耗(費用)增加 10,000 -> 借方 (Debit)
- 驗證(Assert):借方金額 == 貸方金額(10,000 == 10,000),交易成立可存檔。
-
繪製生命週期時間軸(狀態機 State Machine)
會計常有「時間差」,請畫出時間軸讓工程師理解狀態轉移:
- T1 (訂單成立):商業承諾 -> 系統狀態:未出貨 / 無會計分錄
- T2 (出貨/開立發票):產生應收帳款 -> 系統狀態:已開票 / 產生銷貨收入與應收帳款
- T3 (收到款項):沖銷應收帳款 -> 系統狀態:已結清 / 銀行存款增加、應收減少
二、 規格化提問範本(給工程師的標準對焦格式)
與其說「算錯了」,不如使用以下 Given-When-Then 格式提問:
【情境題提問範本】
- [Given 假設前提]:當月結日(10/31)已到,且有一筆 10 萬元分期付款尚未到期。
- [When 觸發動作]:系統執行「自動結帳/過帳」排程。
- [Then 預期結果]:系統應該產生對應的會計科目與借貸金額。若無,請指出系統在哪個判斷式中忽略了此條件。
【防呆驗證題提問範本】
- 如果使用者在「借方」輸入負數或漏填成本中心,系統的驗證邏輯(Validation Rule)要在哪個步驟阻擋?是跳出警告(Warning)還是直接阻擋存檔(Error)?
三、 三欄對照白板法(溝通神器)
在與工程師開會時,在白板或紙上畫出這三欄,將現實與程式碼連結:
[欄位一:現實世界行為]
-> [欄位二:會計邏輯對應]
-> [欄位三:系統/資料庫行為]
範例:
- 現實世界:老闆掏 1,000 元買咖啡
- 會計邏輯:交際費增加,現金減少
- 系統行為:t_voucher 表新增一筆記錄,debit = 1000, credit = 1000