
品質委員會的會議資料裡,這一季的改善案有十幾件。我打開其中一案的電子報告,捲到對策那一節,愣了一下——不是因為寫得不好,是因為眼熟。
回頭查,同一個單位、同一個問題,前年立過一案,去年也立過一案。三份結案報告的對策欄,寫的是同一句話:
加強教育訓練,並持續宣導。
更難堪的是,前兩次都結案了,而且結得漂亮。訓練場次有,簽到單有,前後測成績有,指標在結案那一季也真的往下掉。然後半年後回升,於是隔年再立一案,再訓練一次,再往下掉一次。
三年,三份報告,三張愈做愈熟練的簡報。
會議上單位主管說了一句很誠實的話,而且不是在辯解:「我們真的有做啊。」
我相信他們真的有做。品管圈的成員在排班之外的時間開會、自己做教材、自己找人來上課,那份熱情不是裝出來的。
問題從來不在有沒有做,也不在做得認不認真。問題在於這條對策的強度,本來就撐不到半年——它的失效不是意外,是可以在立案的那一天就預測出來的。
而「強度」這兩個字,不是形容詞。它有定義,而且只分三級。
改善案的行動方案、根因分析的建議事項、品管圈的對策表——它們最後都會被同一個問題篩一次:這條對策,能不能撐住?
病人安全領域用一個叫行動強度階層(action hierarchy)的東西來回答。它是根因分析訓練教材裡的標準配備,而且只分三級:
| 強度 | 品管的做法 | 醫院裡長什麼樣 | 你的世界 |
|---|---|---|---|
| 強效 | 強制功能、簡化流程、標準化、自動化 | 不同口徑的管路接不起來;電子醫囑碰到劑量上限直接擋下 | 改型別讓它編不過、schema 驗證、DB constraint、把那個容易誤用的參數整個拿掉 |
| 中效 | 核對清單、冗餘設計(雙人核對)、環境改善 | 手術安全查核表的 time-out | PR checklist、上線前兩個人一起看 |
| 弱效 | 規章制度、教育訓練、提醒 | 修訂作業規範、辦一場講座 | 加一行註解、寫進 wiki、留一個 TODO |
三級,三分鐘就講完了。這不是什麼高深的方法,它的價值不在複雜度,在於它給了一把尺。
三級好記,但你會遇到兩條都掛在「強效」、強度卻差很多的對策——就像刪掉那個 API,跟在那個 API 前面加一層 schema 驗證,都算修好了。所以我另外對了一把更細的尺,用的是職業安全那套控制層級(hierarchy of controls)。
這是我自己的對法,不是任何一本病安教科書的分級。 正式的分法就是上面那三級;寫進報告、上台報告,一律用三級。
| 職安的控制層級 | 我對到的強度 |
|---|---|
| 1 消除、2 取代、3 工程控制 | 強效 |
| 4 行政控制 | 雙人核對、查檢表算中效;純規章與流程書算弱效 |
| 5 提醒 | 弱效 |
這張表最會被截圖,所以有一件會被記反的事要先講:左欄的數字愈小愈強(1 是問題不存在了,5 是拜託大家小心),右欄卻是愈往下愈弱。兩欄方向相反,記反了整張表就會用反。
判斷落在哪一級,有一個很粗暴但很好用的問法:
如果執行這條對策的人明天全部換掉,效果還在嗎?
在,是強對策。不在,是弱對策。
因為強對策把正確做法寫進環境,弱對策把正確做法寫進人。人會離職、會累、會忘、會在忙的那一天剛好跳過那一步。環境不會。
「加強教育訓練」永遠是最爛的對策,不是因為訓練沒有用。訓練當然有用——它是讓一個新的人達到基準線的手段。它爛的地方在於,當它被當成對策時,它的意思其實是:
這件事我們沒有改掉,我們只是拜託大家下次更小心。
如果這把尺這麼簡單,為什麼滿地都是最下面那一級?
不是因為大家不知道。品管圈的成員多半都上過課,甚至知道自己寫的是弱對策。
真正的原因是成本結構,而且是一種很特別的成本:同意成本。
而「加強教育訓練」不需要任何人同意。單位自己就能做,下週就能做完,還有簽到單可以附在結案報告後面當佐證。
所以那句話不是懶惰。它是在既有約束下,唯一一條做得完的對策。
一條對策的強度,跟它需要幾個人點頭成正比。這就是為什麼滿地都是「加強教育訓練」——那是唯一一條不需要別人同意的對策。
現在把場景換掉。
某個欄位傳錯格式,害線上炸了一次。你有幾種修法,而它們剛好分成三堆:
三堆都能在 PR 描述裡寫「已修復」。但只有強效那一堆撐得過三個月後進來的新人,以及三個月後已經忘記這件事的你自己。
而你多半選了弱效那一堆。理由跟醫院一模一樣:改型別要動二十個檔案、要跟三個團隊協調上線順序、要說服一個覺得「這樣寫也沒錯啊」的人。加註解不需要任何人同意。
兩個完全不同的行業,因為完全相同的約束結構,穩定地生產出同一種爛對策。 這不是類比,是同一件事在兩個地方長成同一個形狀——而它原本就是工業界的東西:行動強度階層的原型,是職業安全的控制層級,醫療只是把它接過來,重新排了一次順序。
這把尺不是在說「一律選最強」。
有時候拿掉一個步驟,會把風險推到下游另一段流程去;有時候系統擋得太兇,第一線想辦法繞過去,你失去的是那條路徑的可觀測性——事情照常發生,只是不再留下紀錄(Day 24 整篇談)。
真正的要求不是「一律選最強」,是這一句:
你要能說得出為什麼停在這一級。
停在弱效可以。但要寫出上不去的具體理由:系統改不動、成本不成比例、這個步驟是醫師臨床判斷需要的、去年在委員會提過而被否決過。
寫得出理由的弱對策,是一個有意識的取捨。寫不出理由的弱對策,只是沒想。
而這句話,等一下會變成一個欄位。

到這裡為止,這篇還是一堂品管課。接下來才是我真正想寫的部分:我把這把尺拿去量 AI 生成的對策,結果讓我想了很久。
情境是我自己編的:某個轉運交接的確認步驟,在忙碌時段會被跳過。我把事件描述丟進去,要它提出改善對策。它給了五條(示意,重點在排序與分布,不在字句):
前四條全部是弱效。第五條是強效——建置系統、強制填寫欄位才送得出去,那是把正確做法寫進環境。而且寫得不錯。它會寫強對策。
但注意:強效只有一條、排在第五,而且中效一條都沒有——整份清單在三級的尺上只用到頭尾兩格。
這就是重點。它不是不會,是它產出的分布穩定地壓在弱效那一端,而且最強的那一條穩定地被排在最後面——排序本身就是一種推薦,而它推薦的是弱的那幾條。
我換了幾種情境重試,分布的形狀沒有變。這又是 Day 1 說的那種錯法:偏斜是穩定的,所以它有得修。
這裡不會有數字。偏斜到什麼程度、換情境之後移動多少,那類數值要有一套控制得住的實驗設計才撐得起來,而那套設計的結果會另外發表(Day 5 劃過同一條界線)。這一段只談形狀,不談比例——留白是刻意的,不是漏掉的。
兩個原因,第二個比較深。
第一,語料的中位數就是弱的。
結案報告、會議紀錄、改善案範本、稽核回覆——這些文字裡「加強教育訓練」出現的次數,遠遠多過「取消這個步驟」。而且弱對策寫起來漂亮、句型完整、不需要附條件;強對策在文件裡常常只留下一行決議,協調過程都不在文件裡——就像你的 repo 裡留著那個 commit,留不住為了它吵掉的那三週。
模型學到的是**「對策」這個文類長什麼樣子**。而這個文類的中位數,就是弱的。
第二,強對策需要模型不知道的東西。
要提出「把這個步驟拿掉」,你得知道拿掉之後誰會受影響、系統改不改得動、預算在誰手上、去年有沒有人提過而被誰否決。
這些約束不在文件裡,在走廊上。 模型沒有走廊。
所以它退到一個安全的位置。
模型偏好「在任何情境下都成立」的答案。而在任何情境下都成立的對策,通常在任何情境下都沒有用。
最直覺的做法,我當然先試了:在指令裡寫「不要提出教育訓練類的對策」。
它照做了。然後給我:
強度一級都沒有升。它只是換了一套詞彙。
約束加在字面上,模型改的是字面。 你以為你下的是關於實質的指令,其實是關於用詞的指令——你寫的是 spec,它讀成了用語規範。
這個失效型態不限於這個任務。Day 1 的最後一行就是它:你以為你講清楚了,其實你只講了最後想到的那一條。
第二個想法是把生成跟評分拆開:讓另一個模型依三級去評分,強度太低的打回去重寫。沒有選,兩個理由。
第一,把驗證推到下游,等於讓錯的東西先被生出來再抓。生成端一點都沒有變,只是多了一道篩子,而篩子會漏。
第二個理由比較麻煩:評審模型吃的是同一批語料,偏誤是同向的。 一個打從心裡覺得「加強教育訓練」是合理對策的模型,去評另一個寫出「加強教育訓練」的模型,會給它通過。用同一種偏誤去檢查同一種偏誤,你得到的不是驗證,是共識。
Day 5 立過一條規則:生成的模型跟評判的模型不能同源,最好連系列都不同。那條規則防的是造題的跟改考卷的是同一個;這裡漏掉的是另一種同源——兩邊讀過的結案報告是同一批。獨立的是模型,不是判準,就像兩份獨立的 CI 設定跑同一份寫錯的 test,兩邊都會過。
(用 AI 評 AI 到底能不能成立、界線在哪,Day 23 會專門處理,這裡先不展開。)
最後採用的做法不是叫它「寫好一點的對策」。與其再下一句更用力的指令,不如給它一份 schema,而強度是這份 schema 裡不能空白的那一欄。
每一條對策必須帶四個欄位:
| 欄位 | 內容 |
|---|---|
| 對策 | 一句話,動詞開頭 |
| 強度 | 強效/中效/弱效,三選一,必填 |
| 判定依據 | 為什麼是這一級。必須指出這條對策改變的是環境還是人 |
| 為什麼上不去 | 只要不是強效,就必須說明無法採取更高強度對策的具體阻礙 |
前三欄是把判準形式化——Day 8 談稽核條目時做的是同一件事,只是量的對象從病歷換成了對策。有了「判定依據」,強度就不再是形容詞,而是一個要附理由的判定;而附了理由的判定,人才有辦法反駁。
真正的關鍵是第四欄。
「為什麼上不去」這個欄位,把模型從產生對策逼成論證約束。而約束是現場知識,模型沒有。於是會發生兩件事之一:
聽起來很像那麼一回事,而且完全是編的——它不知道我們的資訊單位排程長什麼樣子。
但這正是我要的。它編的地方,正好就是需要人接手的地方。
這一欄不是用來拿到正確答案的,是用來把不確定性趕到一個固定的位置。它變成品管圈開會時的第一個議程:這五條「上不去的理由」,哪幾條是真的?哪一條其實只要跟資訊單位問一句就知道不成立?
過去那個下午的討論是發散的,大家憑印象說「那個系統應該改不動吧」;現在討論用的電子表格裡有五句具體的斷言,每一句都可以被查證、被推翻。
不要求模型不出錯,要求它在固定的欄位裡出錯。看得見的錯誤是工單,看不見的錯誤才是事故。
強度一旦是結構化欄位,它就不只是這一案的事了。
一季的改善案跑一次批次,可以得到一張對策強度分布。這一步我還沒做,是我打算這樣做——而它值得做的理由不在 AI:這張圖是拿來評我們自己的。如果幾年下來,落在弱效的比例沒有動過,那代表我們做的不是改善,是改善的形式。
方向很有意思:我一開始想用這把尺去管 AI 的產出品質,寫到這裡才發現它反過來給了品管室一個原本沒有的指標——過去沒有人有力氣把幾百條對策逐條標上強度。這可能可以變成一種監測方法,但一個量要真的上得了管制圖,門檻比「畫得出來」高得多,那是 Day 26 的事。
你的系統裡也有一堆「加強教育訓練」:那行註解、wiki 上那頁沒有人再打開過的規範、PR checklist 裡那條所有人都直接打勾的項目、onboarding 文件裡那句「請特別注意」。
它們都在說同一件事:這個問題我們沒有改掉,我們只是拜託下一個人更小心。
行動強度階層值得從醫院搬過來,不是因為它高明,是因為它把「我到底修好了沒有」這個原本靠感覺的問題,變成一個可以標上刻度、可以被別人質疑的東西。
規則寫得下來的那一半,你早就自動化了。寫不下來的那一半,第一步從來不是急著寫規則,是先找到一把尺。
明天談要因分析:五個為什麼,以及為什麼它問到第三個就開始鬼扯。你會發現 AI 在那一層塌得比這裡更快,而且塌的方向跟今天這個偏誤是親戚。