概念地圖・絞殺藤模式
分類:創新
這一頁不只是把一個概念解釋一遍——一張自己畫的結構圖,加上拿台灣情境從頭走一次的實例演練、這個框架什麼時候會騙你,以及它接回 P.A.I.N. 之後長什麼樣。一頁必須交付的三層 →
絞殺藤模式:讓新的一格一格接手,舊的留到最後才拆
一條一點二公里的主要道路要把架空線埋進地下。全線同時斷電這個選項,從一開始就被排除——沿線十四個路口的號誌、路燈與監視器,不可能一起熄掉四個小時。於是工班一次只換一個路口:每個路口先架一座臨時接駁箱,地下新線接進來,舊的架空線還吊在上面,箱子決定這一格現在走哪一條。這正是絞殺藤的長法——藤沿著宿主往上爬,氣根一條一條紮進地面,等到環環相扣把樹幹包起來,宿主已經被架空了。舊的那一套在整段過程裡都活著,只是身上掛的東西愈來愈少。這張圖畫的就是那個減法,以及最後那句「什麼時候敢拆」。
三圈接手,中間那一層在做什麼
整張圖只有三個時間點,每一個時間點都要問三件事:舊的還剩什麼、攔截層在做什麼、這一段最容易在哪裡出事。
| 階段 | 舊的那一套 | 攔截層 | 這一段的風險 |
|---|---|---|---|
| 切換之前 | 所有功能都掛在它身上,動一項就動到全部 | 還沒有 | 此時要換,只剩「整個關掉再開」這一種做法 |
| 切換期間 | 主體照常運轉,身上的功能一項一項被減掉 | 擋在最前面,每一筆進來的需求由它決定轉給舊的還是新的 | 兩套並行,維護的工與料都是雙份 |
| 切換之後 | 只剩空殼,可以整個移除 | 還在原位,什麼時候拆是另一個決定 | 它自己已經變成新的維護對象 |
表格裡最容易被跳過的是右下那一格。多數人講絞殺藤只講到「舊的拆掉了」,然後把慶功宴辦了——可是攔截層是這段期間才長出來的東西,原本的規劃沒有它,原本的維護清單也沒有它。於是它會安安靜靜地活很久。
動第一項功能,先確定三件事
一、第一項要挑最邊緣的。把一條路的架空線埋進地下,最誘人的起點通常是流量最大的那個路口——因為改善最明顯。但第一次切換同時也是你第一次發現接駁箱的端子排錯、圖資跟現場對不上、備援電源根本沒被試過的地方。第一次的價值在於便宜地犯錯,所以要挑用戶最少、周邊沒有醫院也沒有紅綠燈連鎖的那一個。自問:我要第一個接手的那一項,是不是最邊緣、出事影響最小的那一項?
二、並行期的成本要先找到出錢的人。攔截層擋在中間的那幾週,新埋的管溝要通電,舊的架空線也不能斷——巡線、除草、颱風前的加固,一樣都不能少。這筆錢在提案的簡報上幾乎不會出現,因為它不屬於「新工程」也不屬於「原本的維運」,它是兩者中間那一塊。找不到它掛在誰的預算下,並行期就會被壓縮,而壓縮並行期的唯一做法就是回頭去做大爆炸切換。自問:攔截層擋在中間的那段期間,兩套並行的成本是誰在付?
三、拆除的門檻要在動工前就寫下來。「舊的縮到夠小就拆」是一句沒有邊界的話。夠小是幾個路口?還掛著兩支路燈算不算?寫下來的門檻應該長成這樣:全線十四個路口的負載都在新線上、連續兩週沒有回切紀錄、颱風季前完成——三個條件同時成立才動拆除。門檻寫在動工前,那時候還沒有人急;寫在後面,寫的人會是那個最想結案的人。自問:舊的那一套要縮到什麼程度,我才敢把它整個拆掉?
一條一點二公里的管溝,逐個路口接一次
底下這條在台灣中部的一點二公里主要道路,是為了把這個結構講清楚而編出來的示意情境,沒有指涉任何真實路段或真實工程。
- 先數清楚舊的那一套有多大:全長一點二公里,沿線十四個路口,每個路口都掛著號誌、路燈與監視器的供電,全部吊在同一條架空線上。要接手的項數先變成一個確定的數字
- 每個路口架一座臨時電纜接駁箱:十四個路口,十四座箱子。地下管溝拉進來的新線先進箱子,箱子再決定這個路口的負載走新線還是走上面那條舊的。攔截層就位,之後每一次切換都只動箱子裡的接點
- 第一階段只接三個路口:挑的是用戶數最少、位置最邊緣的那三個——路口末端接的是兩支路燈和一組閃光號誌,真的斷了,影響範圍看得見也講得清。第一次犯錯的價格被壓到最低
- 每個路口的切換窗口四小時:凌晨進場,天亮前復電。四小時包含拆接、測試與回覆確認,超過就得回切到舊線隔週再來。窗口是硬的,四小時一到就得有結果
- 六週走完十四個路口:每週的排程是三、三、二、二、二、二。前兩週跑得最快,後面四週每週只敢排兩個——因為剩下的都是幹道交叉口。進度曲線在第三週開始往下彎,而簡報上的線還是直的
- 第七週才拆最後一段舊架空線:全線負載都在新線上、連續兩週沒有回切,拆除才排進工期。同一週還有十四座接駁箱等著被拆,那批工還沒排
這個場景真正值得記住的接縫,在第五步跟第六步之間。前面十二個路口一路順利,會讓所有人相信剩下兩個也是同一種難度——但那兩個之所以被排在最後,正是因為它們有最多條線交會、最多個單位要會勘。絞殺藤的節奏是先易後難,而先易後難的副作用是:你手上累積的信心,跟你面前剩下的難度,是往相反方向走的。第七週拆掉架空線的那天很好拍照,可是十四座接駁箱還立在原地,它們的拆除工序、材料回收與人力,沒有出現在任何一份結案報告裡。以上為說明結構用的示意情境,僅供理解框架之用。
絞殺藤什麼時候會騙你
- 攔截層自己會變成要維護的東西。它在圖上只是中間那一圈細線,在現場是十四座要巡、要防水、要編號的箱子。第七週舊架空線拆掉之後,這十四座箱子照規劃全部要撤走——撤走要排工、要停電、要再走一次交維計畫。真實世界裡它們最常見的結局是留著,因為「以後說不定用得到」。三年後,會有人指著它問這是誰的資產。
- 整段期間的成本是雙份的,而且那段期間比想像中長。六週裡每一個還沒切換的路口都同時養著兩條路:地下新線已經通電待命,上面的舊架空線還要照常巡查、除草、颱風前加固。人力是雙份,備料是雙份,出事時要判斷「這一格現在到底走哪一條」也是額外的判斷成本。換到的是每一次故障的規模只有一個路口,代價寫得完整一點就是:你用六週的雙份支出,買下十四次小規模失敗的權利。
- 這個做法的前提是功能切得開。十四個路口能一個一個接,是因為每個路口的供電本來就有自己的分段開關。真正切不開的那一項——例如全線共用的同一具變壓器——沒有任何順序可以拆,最後還是要整段停一次。動工前先把「切不開的那幾項」列出來,它們決定了這個做法的天花板在哪裡;列不出來就等於假設全部切得開,而那個假設會在最後一週現形。
- 進度容易停在「剩最後兩項」。三、三、二、二、二、二這條排程看起來平滑,實際上前面十二個路口的順利,會讓人低估最後兩個。最後那兩個通常是幹道交叉口:交會的管線最多、要會勘的單位最多、能施工的夜間時段最少。專案在那裡卡住三週的時候,最危險的提議會出現——「反正只剩兩個,一次做完算了」。那句話等於把整段絞殺藤的成果,換回一次大爆炸切換。
用痛點的眼光挑第一項
絞殺藤這張圖,數的是舊核身上還剩幾項功能。
可是「還剩幾項」是一個工程指標,它跟「誰在痛」之間沒有必然關係。這張圖畫得出每一格功能什麼時候換手,畫不出那四個小時裡有多少人站在路口等著號誌亮起來。P.A.I.N. 的第一個字問的是誰在痛——套到切換順序上,它要你先找出「出事時第一個發現的人數最少、而且他能等的時間最長」的那一項。技術上好不好搬,那是另一張表的事。十四個路口裡,末端那三個之所以該排在最前面,理由跟管線好不好接沒什麼關係:它的使用者是深夜經過的機車騎士,而幹道交叉口的使用者是清晨六點半的通勤車流與一輛可能正在趕路的救護車。同一個工序,痛的密度差很多。所以順序排錯的時候,機械閘門不會叫,圖也不會歪——只有現場的抱怨電話會先響。今晚可以先做一件小事:把手上那套東西的功能列成一張清單,在每一項後面標一個數字,那一項出事的時候,第一個打電話進來的人有幾個。
關於絞殺藤模式,常被問到的幾件事
絞殺藤模式跟直接停機重做,差在哪裡?
差在風險的形狀。停機重做把所有風險壓進同一個窗口,那個窗口成功就全數成功,失敗就整段回不去。絞殺藤把同一批風險攤成十四次小的,每一次都有一條退路可以回切——第三個路口出狀況,受影響的就是那三支路燈。代價寫在帳上:攔截層要做、要維護、最後要拆,兩套並行的期間所有支出都是雙份。它買的是可回復性,帳面上要為此多付一筆。
攔截層一定要另外做一個新東西嗎?
不一定。最省的攔截層是拿本來就在那裡的東西改用途——現場已有的配電盤、既有的分歧箱、原本就在收所有請求的那一層路由。自己做一個新的攔截層,等於在切換期間多養一個沒有人用過的元件,而它擋在所有流量的最前面,是整條路上最不該有新變數的位置。真的必須新做,就把它做得笨一點:只做轉發判斷,新功能一律留給接手的那一邊。
舊的那一套什麼時候可以真的拆掉?
看三個條件同時成立:所有功能都已經在新的那一邊跑、有一段夠長的觀察期沒有出現回切、拆除的工序與人力已經排進工期。這三個條件要在動工前就寫成文字。留到最後一週才討論,討論的人心裡都揣著結案壓力——那時候寫出來的門檻,會剛好等於現況。門檻寫得早,是為了讓後來的自己不必憑當下的心情判斷。
這個做法會不會反而更貴?
總支出通常更高。多出來的是攔截層的材料與工、並行期雙份的維護,以及分成十四次的動員成本——每一次進場都要重來一遍交維、封路與復原。這些錢換到的是:任何一次失敗的影響範圍只有一個路口,而且都有退路。判斷值不值得,看的是失敗一次的代價:整段道路同時斷電三小時的社會成本,跟一個末端路口斷電三小時,量級完全不同。
先挑一項最邊緣的功能,把它從舊的那一套身上搬出來。搬得動的前提是它跟核心之間本來就有一道界線,六角形架構畫的正是那道界線該長在哪裡;而遲遲搬不動、只能繼續拖著的那幾項,帳會用另一種方式記下來——技術債的利息每個月都在跳。
喜歡這篇文章嗎?
每週幫你拆二本好書,把判斷力、好書金句、好問題,直送你的信箱。
不適合你可隨時退訂 · 每週兩封,陪你把書讀進生活。
送出即表示同意我們依隱私權政策使用你的 email。