iT邦幫忙

2026 iThome 鐵人賽

DAY 18
0

https://ithelp.ithome.com.tw/upload/images/20260807/20183265kKQ47wb5ba.jpg

昨天,你剛把部署發布變成了無聊的日常——金絲雀發布(Canary)、藍綠部署(Blue-Green)搭配自動化回滾,一切線上風險皆在可控範圍內。

然而,今天早上的站會上,你卻發現了另一個悄悄吃掉團隊交付速度的巨大怪物。

一個僅僅修改了三行程式碼的 Bug Fix,從工程師提交 PR 到最終在生產環境上線,竟然走了整整 11 天

這絕不是因為技術有多難,而是因為無休止的「等待」。


場景:五道審批關卡,讓兩天的工作拖成兩週

AI 團隊的一位工程師在 Slack 頻道上丟出一個 Pull Request 連結:「這個改動只有三行,只是修正了 Prompt 裡的一個英文拼字錯誤。但這個 PR 已經在審查流程裡卡了整整第六天了。」

你點開該 PR 的 Timeline 紀錄,看見了一條令人窒息的冗長審批鏈:

[PR #473 審批流流轉時間軸]
├─ Day 01  10:30 ── 提交 PR
├─ Day 01  11:00 ── ✅ 自動化測試(CI)順利通過
├─ Day 01  14:00 ── ✅ AI Team Lead 代碼審查(Code Review)通過
├─ Day 03  09:00 ── ✅ Platform Team 確認無基礎設施變動影響
├─ Day 05  16:00 ── ✅ Data Team 確認無資料管線相依問題
├─ Day 07  10:00 ── ✅ QA 團隊簽核 (Staging 測試環境人工驗證)
├─ Day 09  15:00 ── ✅ 安全合規組完成人工審核
└─ Day 11  11:00 ── ⏳ 等待 Ops 團隊手動排程部署 (排隊隊列:剩餘 8 項)

五道重疊的人工簽核關卡,每一道平均要讓代碼排隊等待兩天。

你皺起眉頭問各團隊 Lead:「這些層層把關的簽核,真的全部都必要嗎?有沒有哪一道關卡曾經實質上幫我們攔截過線上問題?」

會議室裡一片沉默。

AI Team Lead 翻了翻過去三個月的 Git 歷史紀錄:「呃……Platform Team 的簽核好像從來沒有 Reject 過,每次都是主管忙完後看一眼說『OK』直接放行。Data Team 上一次拒絕變更是因為發現了 SQL 注入(SQL Injection)風險,但那已經是兩個月前的事了。至於安全組的合規檢查,我們其實早已經用 Pre-commit Hook 在本地自動跑過一遍了……」

你突然一針見血地明白了。

這些繁瑣的關卡,大部分只是形式主義的「橡皮圖章」——它們的存在並不是為了真正把關,而是為了「看起來有在把關」,好在出事時讓各部門免責。

每一道人工審批關卡,都是一次資訊中斷的交接(Handoff)。每次交接,都是等待浪費、脈絡遺失、以及責任模糊的根源。


兩難:追求虛假的心安?還是追求交付的速度?

CEO Steve 在走廊上攔住你:「Bill,我聽到業務端的人在抱怨我們的新功能部署太慢了。我們的審查流程是不是太繁瑣了?但安全組的主管又向我堅持,這些關卡是合規的底線……」

你站在走廊上,腦中浮現兩條截然不同的路:

🔴 選項 A:保留所有人工簽核關卡,以「求心安」 🔵 選項 B:砍掉無實質作用的交接,以自動化檢查代替
短期效益:✓ 獲得「層層把關」的虛假安全感,平息內部政治摩擦長期代價:✗ 前置時間(Lead Time)崩潰,審查淪為形式主義✗ 工程師為趕進度開始繞過流程走捷徑,帶來更大隱患結果:✗ 流程全面癱瘓,僅留下一層脆弱的安全假象 短期代價:✗ 需說服各團隊「自動化校驗比人工看眼更有說服力」✗ 部門可能產生「審查權力被架空」的防衛與心理抗拒長期效益:✓ 價值流動更敏捷且安全,人只專注於關鍵的商業決策✓ 引入政策即代碼,建置高度可視化與可追溯的產線結果:✓ 徹底消除不必要交接,實現開發速度與品質的雙贏

如果是你,此時會如何拍板?是保留所有關卡以求得各部門的心安,還是大刀闊斧砍掉累贅、全面換成自動化流程?


翻牌:每一道橡皮圖章,都在無形中偷走你的交付速度

正確答案是 選項 B

但這往往是組織變革中阻力最大的一步——因為宣稱要「砍掉安全審查關卡」,在傳統管理層聽起來簡直就像是在主動降低產品質量。

然而在精實管理中,過多且不必要的交接(Handoff),正是摧毀產品質量的頭號殺手

《鳳凰專案》中精實生產專家 Erik 帶領 Bill 走訪工廠時,展示了極為相似的一幕:半成品在產線上每經過一個獨立的工作站,就必須停下來排隊等待下一個工作站的人進行「簽收檢查」。每次交接,零件就在那裡原地躺著,累積成堆的無效在製品(WIP)庫存。

而在軟體工程中,人工交接的代價更為高昂:

  1. 等待時間長:每個審查者都有自己的日常工作,不可能立刻跳轉去審查你的 PR,導致代碼排隊等待時間通常長達 1 到 3 天。
  2. 資訊遺失:修改的原始背景、為什麼要這樣改、潛在風險在哪裡,在交接過程中都需要反覆向不同的審查者重新解釋,極易遺漏細節。
  3. 責任模糊:因為心態上抱持著「反正後面還有三道關卡會看」,導致前期的審查者容易敷衍了事,一旦線上出事,各部門開始互相推諉。
  4. 橡皮圖章化:當流程堆疊了太多道審批,審查徹底流於形式——「既然前面兩隊都點同意了,那我也直接點同意吧。」

在價值流圖(Value Stream Mapping, VSM)中,最令人震驚的數字永遠是「實際處理時間(Process Time)與等待時間(Queue Time)」的懸殊比例。

以剛才那個修改三行 Prompt 的 Bug Fix 為例:

  • 實際處理時間:10 分鐘修改代碼 + 30 分鐘跑測試 = 40 分鐘。
  • 等待排隊時間:11 天 = 264 小時。

實際做事的時間占比甚至不到 0.25%,其餘 99.75% 的生命週期,代碼全都躺在隊列裡無所事事地「等待」。

這正是為什麼 DevOps 的核心原則極力強調 減少交接(Handoff)

「將人工橡皮圖章轉化為自動化的政策即代碼(Policy as Code)校驗,將口頭簽核轉化為透明的可視化監控。只把真正需要人腦判斷與商業權衡的關卡留給人類專家,其餘全部代碼化。」


如果有 AI Agent:將五道人工關卡壓縮為一道

問題在於,「自動化政策檢查」聽起來很理想,在實踐中該如何落地?

傳統方式是工程師需要耗費大量時間編寫 Static Analysis 靜態掃描、整合測試與環境校驗,規則維護成本極高。

但在 2026 年,AI Agent 可以主動承擔起這個職責:在 PR 提交的瞬間,自動在背景跑完所有原本需要「跨部門人工審批」的安全與相依性校驗。

graph TD
    A[提交 PR] --> B[Agent 自動檢查]
    B --> C[程式碼品質<br/>Linter + 格式]
    B --> D[安全風險<br/>SQL injection/XSS/<br/>hardcoded secrets]
    B --> E[影響範圍<br/>哪些服務會被影響]
    B --> F[相依衝突<br/>會不會 break 其他模組]
    B --> G[合規檢查<br/>是否符合 policy]
    C --> H{全部通過?}
    D --> H
    E --> H
    F --> H
    G --> H
    H -->|是| I[自動標記 ✅<br/>只需 1 道人工 review]
    H -->|否| J[標記問題並阻擋<br/>附詳細報告]
    I --> K[真正需要人判斷:<br/>商業邏輯/架構決策]
    J --> L[修正後重新提交]

AI Agent 在 PR 提交時自動執行的把關機制:

  1. 代碼質量檢查(取代 Platform 團隊):自動執行 Linter、Type Check 與 Format 格式檢查。
  2. 安全合規掃描(取代安全合規組):靜態與動態掃描是否存在 SQL 注入、跨站腳本(XSS)或硬編碼憑證(Hardcoded Secrets)風險。
  3. 影響範圍分析(取代 Data 團隊):深度分析本次代碼變更會波及哪些 API 介面、資料庫 Schema 以及下游資料管線。
  4. 相依衝突檢測(取代 QA 團隊):自動將變更部署至臨時隔離沙箱,驗證是否會破壞系統其他模組的相依相容性。

原本需要跑兩週的五道人工關卡,現在被重構為:

  • 自動化智能關卡:Agent 在 PR 提交後 5 分鐘內自動跑完上述所有硬性政策校驗,自動打上 ✅(通過)或 ❌(阻擋並附上修改建議)。
  • 唯一的關鍵人工關卡:AI Team Lead 僅需專注審查商業邏輯與核心架構決策(這才是真正需要人腦判斷的硬核工作)。

流程從「五道人工關卡 × 平均等 2 天 = 10 天以上」,縮短為「自動化檢查 5 分鐘 + 人工確認半天 = 當天搞定」。

而且安全性大幅提升——因為自動化規則每次都會被系統 100% 執行,絕不會像人工看代碼那樣,因為時間太晚或看累了就「掃一眼直接過」。


現場推演:那條從七道簽核砍到一道的部署流程

我們來看一個 30 人軟體團隊的轉型實踐:

在導入流程優化前,該團隊的變更發布流程被繁瑣的 7 道人工簽核 所綁架(Tech Lead → QA 團隊 → 安全組 → 基礎設施組 → 產品經理 → 合規組 → 運維手動排程),這導致一個普通 PR 的平均上線前置時間高達 12 個工作天

技術主管決心打破藩籬,指派兩名工程師利用兩週時間將這些人工檢查全部「代碼化」:

  • 在 GitLab CI 中引入自動化的單元測試、整合測試與 E2E 測試。
  • 使用 Snyk 自動掃描依賴庫的安全漏洞。
  • 使用 Terraform Plan 自動分析雲端基礎設施的配置變動。
  • 引入 AI Agent 自動分析代碼改動影響範圍,並在 Slack 上自動 @ 相關利害關係團隊。

改革後的全新流程:

  1. 工程師提交 PR ➔ 自動化防禦流水線在 5 分鐘內完成所有合規性與安全性靜態檢查。
  2. 僅保留唯一的人工審查關卡:由 Tech Lead 進行架構與業務邏輯 Review。
  3. Review 通過後代碼自動部署至 Staging 進行 2 小時的金絲雀測試。
  4. 若無任何異常監控指標,系統自動將流量無縫導入 Production 生產環境。

🏢 2026 年優化審查流程後效能比對:

  • ⏱️ 交付前置時間(Lead Time):由原本的 12 個工作天縮短至 0.8 天 (包含自動化金絲雀測試時間)
  • 🚀 部署頻率(Deployment Frequency):由原本的每週 2 次大幅提升至 每日 8 次
  • 🔴 變更失敗率(Change Failure Rate):由原先 the 18% 降至 6% ── 得益於自動化政策校驗比人工看眼更加精準嚴格。

更為關鍵的是,開發團隊再也沒有人抱怨「變更審查太慢」——因為只要代碼符合安全與架構政策,系統在提交的瞬間就已經為你開通了綠色通道。

這正是第一航道(Flow)的精髓:透過程式碼將檢查規則自動化,消滅不必要的交接與排隊等待,讓改動從想法到生產環境的路徑最短、摩擦力最小。


今日金句

「每一道流於形式的橡皮圖章簽核,都在無情地偷走團隊的交付速度。真正的安全防禦從不是靠人工簽字,而是靠自動化的代碼校驗與透明的可視化指標。」


留給你的問題

在你們目前繁複的變更發布流程中,那幾道人工審批的關卡,真的曾經幫團隊攔截過線上事故嗎?還是大部分時間,大家只是在排隊等主管點同意?

如果我們把那些「過去半年從未 Reject 過任何 PR」的冗餘人工關卡全部砍掉,用政策即代碼的自動化校驗代替,你們的交付前置時間(Lead Time)能縮短多少天?

明天,我們要去面對一個更根本的技術問題:為什麼你們的生產環境配置、系統部署以及基礎設施變更,依然在依靠工程師「手動登入伺服器修改」?

手動 SSH 進去修改 Config、手動在後端調整 K8s 參數,且沒有任何版本紀錄——這正是引爆 Day 2 薪資雪崩災難的罪魁禍首。

如果所有的變更,都能轉化為一次標準的 Pull Request 呢?

Day 19 見。


上一篇
Day 17: 損失 500 萬,你還敢星期五上線嗎?
下一篇
Day 19: 你敢不敢讓「改動」變成一次 Pull Request?
系列文
Phoenix 2026:當《鳳凰專案》遇上 AI Agent —— 30 天 DevOps 職場 RPG 冒險28
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言