昨天寫我怎麼選自動化的方式。
今天寫更前面的一個問題,有些重複的操作我自動化了,有些到現在都不敢碰,我用什麼標準分這兩堆。
逾期報表那個專案,程式每個月自己跑,算完之後自動寄催款信給幾十個業務 ,信裡面寫著哪些客戶欠了多少、逾期幾天。我不會逐封看過,它就寄出去了。
填單這個專案,程式做完所有事情之後停在那裡,最後那一下儲存要由人自己按,而且我把工具做成根本沒有「儲存」這個功能。
為什麼一個可以全自動,一個卻需要將人放在流程中呢?
最直覺的解釋是財務比較敏感。
但這個解釋站不住,催款信是對人的,它會改變業務那天的工作順序,也會改變他跟客戶的對話。Day 12 我還寫過真的寄錯過一次,因為會計改了規則而我還沒改程式。
那次也不是沒有代價。
所以重要性不是分界線,因為這兩件事都很重要。
我是把兩件事的「出錯之後」攤開來比。
催款信寄錯了,收到的業務當天就會知道,他會覺得奇怪,然後來問我。那封信本身就是一個通報管道,它自己會把錯誤送到一個會反應的人面前。
但憑單填錯了存進去,不一定有人會發現。
它看起來就是一張正常的單,金額欄位有數字,科目有填,日期合理。要等到對帳、結帳、或是某個人剛好去翻那個月的明細,才有可能發現。
而那可能是一個月以後,甚至更久。
我敢自動化的,是那些錯了會有人來找我的事。我不敢的,是那些錯了沒有人會來找我的事。
這跟技術難度完全沒有關係,而且常常是反過來的,越安靜的錯誤,技術上越單純。
Day 6 我寫過自動化把「看得見」這件事拿掉了,那篇講的是流程的進度看不見。今天要講的則是連錯誤本身都看不見。
多久會被發現。 當天、這個月、還是要等結帳,這是最重要的一題。
撤銷要付出什麼。 補寄一封信跟沖銷一筆分錄,代價差很多。前者是一次尷尬,後者會在帳上留下兩筆紀錄。
產出會不會被別人拿去用。 一份只有我看的報表,跟一張後面接著付款流程的單據,往下游走的距離不一樣。錯誤會跟著走。
連續錯十次會怎樣。 這一題是我後來才加的。
最後這題為什麼重要,因為人出錯跟程式出錯的形狀不一樣。
一個人填錯一張單,是意外,下一張通常是對的。程式一填錯,代表它會把接下來每一張都填錯,而且錯得一模一樣。
Day 7 我寫過系統會正確的出錯,講的就是這件事,它不會累、不會分心、也不會突然覺得哪裡怪怪的。它只會非常穩定地,把同一個錯誤重複到有人叫停為止。
所以評估一個自動化的風險,不能只看單次出錯的損失,要乘上它會跑幾次。
想清楚上面那些之後,我對「哪一步要留給人」這件事的理解也變了。
我以前以為留一個人在流程裡,是因為那一步人做得比較好。
多數時候這不是真的,人看一張填好的單,比程式讀回來比對還不可靠,人會漏看、會跳著看、會因為每次都對而愈看愈快。
那為什麼還要留。
因為人在那裡其實做了兩件事。
一件是有機會攔下錯誤。 程式不會驚訝,它填完就是填完了,不管那個數字有多奇怪。而一個人在按下去之前看一眼,就算十次有九次什麼都沒看出來,第十次的發現仍然是整條流程裡唯一一個會自己停下來的東西。
另一件是有人為這個結果負責。 這件事跟他看不看得出來無關。
第一件是運氣,第二件是制度。而我真正需要的是第二件。
因為萬一那張單出了問題,它的來源會是一個人按下去的,而不是「系統自己跑出來的」。Day 7 我寫過自動化把責任的歸屬也一起改掉了,這裡是我目前找到的唯一一個解法,把最後那一下還給人。
當然,不需要在每一步都請人確認,那樣等於沒有自動化,而且確認得越多,人看得越隨便。
只需要在最後一個地方留人,讓他對結果負責。
寫完我才發現,「這件事敢不敢自動化」這個問題問得不夠精確。
它預設了只有兩個答案,做或不做。
但我從來沒有真的在做跟不做之間選過,我選的是這件事會怎麼錯,然後護欄應該要長什麼樣子。