跳到內容

審查清單

這份審查清單,和內部使用的審查完全相同,只是改寫成你可以親自對自己的建置執行的版本。大約需要一小時,而且如果執行審查的人不是建置這個東西的人,會有用得多。

如何執行

  1. 把下面的評分表複製一份,放在你正在審查的建置旁邊。
  2. 依序檢視每項原則的問題,這些問題取自八大原則。
  3. 為每個問題評分:已達成、部分達成、尚未達成,或不適用。
  4. 每個分數都需要一個佐證——某個具體、能證明這個分數的東西:一筆特定的紀錄、一段你親眼看著發生並貼上來的結果、一張實際行為的截圖。沒有任何佐證的分數,只是一個意見,不是審查。
  5. 任何評為尚未達成的項目,要嘛在上線前修好,要嘛就寫一則附上日期的說明,記下是誰接受了這個缺口,以及原因。

讓這件事值得做的幾條規則

  • 審查者不是建置者。 審查自己作品的人,往往只找得到自己原本就已經知道的問題。
  • 實際執行,不要只是看過就算。 不要因為一項測試看起來應該會過,就假設它真的會過。實際執行它,親眼看結果。
  • 「不適用」需要理由。 這是一個正當的分數,但沉默不算——寫下為什麼這個問題在這裡不適用。
  • 部分達成不等於通過。 它是一個有名字、有負責人的缺口,最好還附上一個日後要重新檢視的日期。
  • 這份審查的對象是建置,不是人。 目的是讓成果變得更好,而不是對建置的人做出評斷。

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 模型會讀取這個建置的資料?其中有沒有任何一個在部署環境之外?

已接受的缺口

缺口目前為什麼可以接受接受者日期何時重新檢視