iT邦幫忙

2026 iThome 鐵人賽

DAY 25
0

一個沒有人記得答案的問題

學校裡有很多小系統,是這幾年陸續開發的。有一天某個系統出問題,或是某個單位要改個功能,問題就來了:

「這支程式是誰負責的?」

需求單位通常不記得——對他們來說,當初是「提了需求、有人做好了」,至於是誰做的、後來誰接手,沒有人會特別記住。

而這件事的答案其實有紀錄:每一次的開發需求都填過審核表單,表單上寫著申請單位、申請人、系統類別、專案名稱,還有維護人。

問題是那些表單是一張一張的截圖,散在資料夾裡。你要找某支程式的負責人,得一張一張打開來看。

我做的事

今年 7 月,為了釐清各系統的負責人是誰,我把那些截圖交給 Google 的 Antigravity CLI(Day 20 介紹過的 agy)辨識,整理成一份結構化的清單。

現在那份清單裡的每一筆長這樣:案件編號、申請單位、申請人、系統類別、專案名稱、維護人、備註、時間,以及對應的原始截圖檔名。

有了它,「這支程式誰負責」變成一個查詢就能回答的問題。

這件事為什麼適合交給它

一、量大。 一百多張截圖,人工看完要好幾個小時。

二、每一筆都一樣。 表單格式固定,欄位位置固定,判斷規則明確。

三、結果可以驗。 這是關鍵——每一筆都有對應的原始截圖,任何一筆有疑問,打開那張圖就能核對。

四、錯了的代價可控。 就算某一筆辨識錯了,也是「查到的維護人不對」,我打開原圖就會發現,不會造成不可逆的損害。

我實際驗了什麼

寫這篇的時候(10 月 6 日),我請 AI 把那份清單重新檢查了一次。

欄位完整度:八十幾筆資料,那八個從表單辨識出來的欄位每一個都有值,沒有空白。這只代表每個欄位都有產出,不代表內容都辨識對了——要確認正確,還是得逐筆對照原始截圖,這件事我還沒做完。

(第九個欄位是「對應的截圖檔名」,那個有 4 筆是空的。它不是辨識出來的內容,是建檔時要掛上去的關聯,所以它空白代表的是另一件事——我下一段就踩到了。)

維護人的分布:清單裡有 5 個不同的名字,沒有任何一筆是空白的。實際負責維護的是 4 位,第 5 個名字只在兩張表單上被指派過。

這個分布本身就有資訊:工作量集中在少數幾個人身上。 而人會異動,記憶會跟著走,紀錄不會——這正是這份清單最有價值的地方。

然後我發現了一個缺口

順便數了另一件事:9 月中數的時候,資料夾裡有 108 張截圖,但清單裡只對應到其中 80 張,有 28 張沒有進到清單裡。

10 月初發文前再數一次,資料夾變成 126 張,清單還是 82 筆、對應的還是那 80 張——沒進清單的變成 46 張,超過三分之一。

多出來的 18 張是 9 月之後陸續放進資料夾的新表單。清單是 7 月跑出來的,之後沒有再跑過,它不會自己長大。原本那 28 張,可能是重複的截圖、可能是同一案的第二頁、也可能就是漏跑了,我還沒有一張一張確認。

還有一個反方向的缺口:清單引用了 81 個檔名,其中有一個檔案在資料夾裡根本不存在——可能是後來改了檔名或刪掉了。這種「指向空處」的引用比漏建檔更麻煩,因為它看起來是有紀錄的。

但重點是:如果不是為了寫這篇文章重新檢查,我不會發現這件事。

而這個缺口的性質特別討厭——它正好會發生在「以後想查卻查不到」的那些案子上。我做這整件事的目的就是「以後查得到」,結果有三分之一以上可能查不到。

示意圖:表單建檔清單的欄位結構(值全部是示意),以及 10 月 6 日重數時的兩個缺口:資料夾 126 張截圖、清單 82 筆,46 張沒進清單,另有 1 個引用指向不存在的檔案;實際維護人 4 位

一個必須要說的提醒

這些表單截圖上有申請人的姓名和單位。

把它們交給 AI 辨識,就是把這些資訊送出去。這件事沒有標準答案——每個單位對「什麼資料可以送到外部服務」的規定不一樣,你要自己確認。

而且我要老實講時間順序:這批截圖是 7 月交出去的,那時我還沒有把「碰個資的工作,自己做、不要丟」寫成規則。那條規則是 9 月才寫下的(Day 20 引用過)。照現在的規則回頭看,這件事會落在「自己做」的那一邊。規則是做過之後才長出來的,這也是 Day 24 講的事。

我只能說我的原則:這種決定不要「順手」做。 不要因為「反正就是幾張截圖」而跳過判斷。要先想清楚這裡面有什麼、送到哪裡、留多久,然後才做。

而且要記得自己送過什麼——哪一批、什麼時候、送到哪個服務。這件事的重要性我留到 Day 27 講。

補上缺口的時候,撞到自己畫的線

10 月 7 日,我把缺的那批截圖交給 agy 補建檔。

它停下來問我了。Day 24 我替 agy 換上的全域規則裡有一條:「碰到姓名、學號、電話等個資就停下來回報,不要處理」。它照做了:先停,問我要不要繼續。

我說繼續。補完之後,清單從 82 筆變成 127 筆,資料夾 127 張截圖裡只剩 1 張沒進清單——那張是補完二十多分鐘後才新放進來的表單。原本那個指向不存在檔案的引用也不見了。

缺口補上了,但這裡有一個我必須承認的坑:agy 照規則做了它該做的——停下來回報;違反規則的是我。 Day 20 那條「碰到個資的工作,自己做、不要丟」,是寫給交代工作的人看的。上一段才寫「照現在的規則,這件事會落在自己做那一邊」,真的被一百多張截圖壓著的時候,我還是按了繼續。

而且我後來才注意到另一件事:名字不只出現在「申請人」那一欄。 很多人會直接在「使用需求或異常描述」這種自由填寫的欄位裡寫上同仁的名字。就算把申請人那一欄遮掉,名字還是會跟著截圖送出去。

換個做法:不送出去,也查得到

所以我們回頭找了一個不用把截圖送到雲端的做法。這一段的程式和測試,都是幫我整理稿子的 AI 寫好、在我電腦上跑的;截圖只在本機處理,沒有傳給任何雲端服務,AI 拿到的只有統計數字和表單上印的欄位名稱。

一、只留需要的四個欄位。 要查「誰維護這個系統」,只需要案件編號、系統分類、專案名稱、指派處理人員(就是維護人)。用 Windows 內建的文字辨識,在電腦上把整張表單讀一遍,再依照表單上印著的欄位名稱,只把這四格的內容留下來。「使用需求或異常描述」那一欄讀到了也不存,裡面寫了誰的名字都不會進清單。

二、名字不從零認,從已知名單裡挑。 本機辨識認名字常認錯——我拿 20 張逐張對照過,名字是 agy 的清單才對。但這一欄只會出現 5 個名字(4 位維護人,加上被指派過兩次的另一位),所以不必「認出一個名字」,只要「從這 5 個名字裡挑最像的」。沒把握的不猜,交給人工。

全部 123 張(另有 4 筆沒附截圖)跑完花了 36 秒,結果是:

欄位 結果
案件編號 111 張完全正確
系統分類 87 張大致正確
專案名稱 93 張大致正確
維護人 86 張挑對、36 張交人工、1 張挑錯

準確度比 agy 低,但沒有任何一個名字離開這台電腦。那 1 張挑錯,也說明人工核對這一步省不掉。

我們也試過折衷:只把「指派處理人員」那一小格裁下來交給 agy 認名字,其他欄位留在本機。結果 agy 看完第一張就停了——指示裡寫了「作者已同意」,它還是照全域規則停下來。規則比單次的交代優先,這是好事。但它停下來的那則回覆裡,把圖上的名字寫了出來:告訴我「這是個資、我不處理」的訊息,本身就帶著那筆個資。

最後我沒有放寬規則,維護人那 36 張就人工核對——只是從 5 個名字裡選一個,但一樣要對照原圖確認。

這件事真正解決了什麼

回到最開始的問題。

以前「這支程式誰維護」的答案存在三個地方:某個人的記憶、一堆截圖、或是「不知道」。

現在它存在一份可以查詢的清單裡。這不是什麼厲害的技術,但它把一個會隨著人員異動而消失的知識,變成了留得住的東西。

行政工作裡這種知識非常多,而且大部分還在第一種狀態——只在某個人的記憶裡。

如果你也要做類似的整理,這次留下的做法是:

  • 只取需要的欄位,其他欄位讀到了也不存
  • 能在本機做,就不要送出去;真的要送,只送那件事需要的那一格,而且要照規則、經過授權
  • 名字從已知名單裡挑,沒把握就交人工,不要讓工具猜
  • 從源頭改表單:在自由填寫的欄位加一句「請勿填寫姓名、電話」,聯絡人另外設一個欄位
  • 記得自己送過什麼:哪一批、哪一天、送到哪個服務

明天

Day 26:額度是會用完的——怎麼知道自己還剩多少。


上一篇
Day 24:把判準寫成規則,而不是每次提醒
下一篇
Day 26:額度是會用完的——怎麼知道還剩多少
系列文
用 Google AI 簡化行政工作流程:一個學校行政人員的 30 天實作紀錄 共 26 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言