這份審查清單,和內部使用的審查完全相同,只是改寫成你可以親自對自己的建置執行的版本。大約需要一小時,而且如果執行審查的人不是建置這個東西的人,會有用得多。
如何執行
- 把下面的評分表複製一份,放在你正在審查的建置旁邊。
- 依序檢視每項原則的問題,這些問題取自八大原則。
- 為每個問題評分:已達成、部分達成、尚未達成,或不適用。
- 每個分數都需要一個佐證——某個具體、能證明這個分數的東西:一筆特定的紀錄、一段你親眼看著發生並貼上來的結果、一張實際行為的截圖。沒有任何佐證的分數,只是一個意見,不是審查。
- 任何評為尚未達成的項目,要嘛在上線前修好,要嘛就寫一則附上日期的說明,記下是誰接受了這個缺口,以及原因。
讓這件事值得做的幾條規則
- 審查者不是建置者。 審查自己作品的人,往往只找得到自己原本就已經知道的問題。
- 實際執行,不要只是看過就算。 不要因為一項測試看起來應該會過,就假設它真的會過。實際執行它,親眼看結果。
- 「不適用」需要理由。 這是一個正當的分數,但沉默不算——寫下為什麼這個問題在這裡不適用。
- 部分達成不等於通過。 它是一個有名字、有負責人的缺口,最好還附上一個日後要重新檢視的日期。
- 這份審查的對象是建置,不是人。 目的是讓成果變得更好,而不是對建置的人做出評斷。
1. 溯源性
| # | 問題 | 分數 | 佐證 | 備註 |
|---|
| 1 | 不需要別人幫忙,能不能從輸出結果中的一個數字,直接追到它背後的紀錄? | | | |
| 2 | 答案有沒有附上「截至」的日期? | | | |
| 3 | 被引用的那一行,有沒有對照來源、並附上位置來證明? | | | |
| 4 | 當資料無法回答這個問題時,使用者會看到什麼? | | | |
| 5 | 每一行被引用的內容,是不是真的支持它的結論,還是只是剛好出現在來源裡? | | | |
2. 確定性
| # | 問題 | 分數 | 佐證 | 備註 |
|---|
| 1 | 每個數字,具體是在哪裡計算出來的? | | | |
| 2 | 業務人員能不能在不需要開發人員協助的情況下,自行更改門檻值? | | | |
| 3 | 同一個問題問兩次,會不會得到同樣的答案? | | | |
| 4 | 當系統遇到一條它還沒有實作的規則時,會發生什麼事? | | | |
3. 模組化
| # | 問題 | 分數 | 佐證 | 備註 |
|---|
| 1 | 任何被標示為「共用」的東西,請說出兩個真實、各自獨立的使用情境。 | | | |
| 2 | 有沒有任何變體,實際上是靠修改內容做出差異,而不是靠設定? | | | |
| 3 | 一個元件能不能在沒有正式帳號、也沒有網路連線的情況下,單獨被測試? | | | |
| 4 | 這個建置裡,有沒有任何東西找不到一個真實、指名道姓的使用者? | | | |
4. 領域無關的核心
| # | 問題 | 分數 | 佐證 | 備註 |
|---|
| 1 | 核心邏輯裡,有沒有出現公司名稱,或特定客戶才有的細節? | | | |
| 2 | 只要改變設定,這個核心能不能拿去服務另一間公司? | | | |
| 3 | 設定裡的每一項,是不是都真的有被用到;而每一個被用到的項目,是不是都有在設定裡宣告? | | | |
| 4 | 有沒有任何工作流裡,包含某台機器的網路位址? | | | |
5. 人為治理
| # | 問題 | 分數 | 佐證 | 備註 |
|---|
| 1 | 出示最近一次決策的紀錄。是誰、決定了什麼、什麼時候? | | | |
| 2 | 如果核准者聯繫不上,還會不會有東西被送出去? | | | |
| 3 | 這個關卡是自己算出答案,還是相信別人交給它的答案? | | | |
| 4 | 審核者原本在哪裡工作?那條路徑是否曾以他們的身分從頭到尾走過一遍?單單打開連結,會不會決定任何事? | | | |
| 5 | 同一個決策送達兩次,會發生什麼事? | | | |
| 6 | 代理人能不能寫入記錄決策的欄位? | | | |
| 7 | 當檢查還沒有在紀錄上蓋章時,後面的步驟會怎麼處理? | | | |
| 8 | 分別核准一筆、拒絕一筆,再留一筆不處理。每一種情況,流程是不是都會自己往下走? | | | |
6. 原生優先
| # | 問題 | 分數 | 佐證 | 備註 |
|---|
| 1 | 一個不是開發人員的人,能不能看懂這個建置,說出每一步在做什麼? | | | |
| 2 | 搜尋整個建置,會不會找到任何長得像憑證的東西? | | | |
| 3 | 每一段自訂程式碼,當初考慮過、後來又放棄了哪個內建功能?為什麼? | | | |
| 4 | 把這個建置搬到另一個帳號上,會有什麼東西壞掉? | | | |
7. 可維運性
| # | 問題 | 分數 | 佐證 | 備註 |
|---|
| 1 | 你有沒有親自執行過測試,並且親眼看著它們通過? | | | |
| 2 | 固定測試集放在哪裡?上一次評分是什麼時候? | | | |
| 3 | 重置之後,這個建置會不會回到完全相同的起始狀態? | | | |
| 4 | 有什麼東西是獨立在檢查主要路徑的?它上一次和主要路徑的結果不一致,是什麼時候? | | | |
| 5 | 一個完全不認識這個建置的人,光靠套件和文件,能不能把它裝起來、跑起來? | | | |
| 6 | 每一個步驟,是哪一筆紀錄能證明它真的執行過? | | | |
8. 安全與主權
| # | 問題 | 分數 | 佐證 | 備註 |
|---|
| 1 | 即將被分享出去的東西裡,有沒有任何長得像憑證的內容? | | | |
| 2 | 任何 AI 工具能存取到的憑證,是不是範圍有限、用完即可丟棄的? | | | |
| 3 | 敏感欄位的遮蔽,是由平台強制執行,還是靠一個可能被跳過的步驟? | | | |
| 4 | 誰能看到未經遮蔽的原始資料?實際上是什麼機制,阻止了 AI 被連接到這份資料? | | | |
| 5 | 你上一次分享出去的套件,實際上包含了什麼? | | | |
| 6 | 有哪些 AI 模型會讀取這個建置的資料?其中有沒有任何一個在部署環境之外? | | | |
已接受的缺口