昨天寫,把人留在流程裡,得先給他條件。
今天寫另一半。就算條件都給了,他還是會走別的路。
主管看了警語,還是回頭改。 考核那個專案,我在送出的地方寫了提醒,送出之後請不要再修改,後面的流程會以這一版為準。結果還是有人改。
會計在我改程式之前,自己先把資料改掉了。 他們提出一條新規則,我排進待辦,但那個月的報表他們等不及,就直接在表上手動調整。等我把程式改好,發現兩邊對不起來。
有人被手動換掉,然後信就沒寄出去。 報表產出之後,會計手動把某幾筆的收款業務員改成業助。系統照著名單去找對應的信箱,找不到,那幾封催款信就被跳過了。那次是事後補寄的。
這三件事當時在我的紀錄裡,都被歸類成「坑」。
不是講好不要改嗎。
不是說好等我改完嗎。
這個欄位不是這樣用的。
我現在看這三句話,它們有一個共同點,主詞都是我。 我講好的、我說好的、我設計的用法。
主管改,是因為他後來知道了新的事情。 共識會議之後他對某個人的評價變了,而我的流程裡沒有一個「改」的入口。我只給了他一個送出,沒給他一個修訂。他要修訂,就只能回去動原本那張表。
會計手動改,是因為他這個月就要用。 我的排程是下個月,他的結帳是這個月。他不是不想等我,是他等不起。
收款業務員被換掉,是因為職務真的調動了。 那不是亂改,那是現實。而我的系統假設一張單出來之後,負責的人不會變。
所以這三次不是他們不守規矩。
是我設計的那條路,沒有通往他們真正要去的地方。
想通這件事之後,我對「被繞過」的看法整個變了。
一個人要繞過一個系統,其實是有成本的。他要自己算、自己改、自己記得哪裡動過手腳,而且萬一出事是他要解釋。
沒有人會為了好玩去繞。他繞,是因為那樣比較省。
比較省就代表我那條路比較貴。貴在哪裡,那就是我漏掉的東西。
所以現在我看到有人手動改了什麼,第一件事不是去問他為什麼不照流程走。我會去看他改的是哪一欄。
那一欄通常就是答案。
不過這裡有一個我很晚才想通的分別。
知道被繞過之後,最直覺的反應是把它堵起來。把欄位鎖住、加驗證、讓他改不了。
我做過這件事,而且發現它的效果很差。
因為堵住一條路,他會走更遠的那一條。 系統裡改不了,他就自己開一份 Excel 算;表單鎖住,他就用訊息私下跟人講一聲。
而一旦他走到系統外面,我連他繞過了都不知道。
堵死不會讓繞過消失,只會讓繞過變得看不見。 而看不見的繞過,比看得見的危險很多。
所以我後來的做法換了方向。
考核那個快照就是這樣來的。我沒有鎖住那張表,主管還是可以改,他要改就改。我做的是在送出的那一刻把內容複製一份,後面的流程走那一份。
他的修改權保住了,而我要的一致性也保住了。 兩件事沒有衝突,衝突的只是我一開始的想法,我以為要達成一致性就得禁止他改。
寫到這裡我想講一件更根本的。
我一直以為自己在設計流程。
但我能設計的只有系統,而系統只是流程裡面,可以被程式表達的那一段。
剩下的部分一直都在。會計心裡的那條判斷、主管在走廊上講的一句話、業助之間互相幫忙接手的默契,這些東西在我來之前就存在,在我做完之後也還在。它們沒有被我自動化,也沒有消失,它們只是不在我畫的那張圖上。
所以「使用者沒照設計走」這句話本身就有問題。
他沒有不照流程走。他走的就是流程,只是那一段我沒有畫進去。
明天寫交出去之後的事。這幾個東西現在都還在跑,但我想問一個比較難的問題,如果我明天離職,它們還活得下去嗎。