← 全部概念地圖
標準

概念地圖・Harel 狀態圖

分類:系統

這一頁不只是把一個概念解釋一遍——一張自己畫的結構圖,加上拿台灣情境從頭走一次的實例演練、這個框架什麼時候會騙你,以及它接回 P.A.I.N. 之後長什麼樣。一頁必須交付的三層 →

Harel 狀態圖:把同一條轉換少畫五次

一張派工單的狀態下拉選單,捲兩下才看得完。十一個選項裡有三個都叫「待料」,括號裡分別寫著缺料、等客戶回覆、等原廠授權——三個名字指的其實是同一格,差別只在停下來的理由。Harel 狀態圖是一九八七年被提出來的畫法:狀態不必攤平成一長排,可以往裡面塞(巢狀)、可以並排擺(並行)、還可以記得上次停在哪一格(歷史記號)。它管的只有一件事——同一組轉換,你到底要重畫幾次。

同一組狀態的兩種畫法:平面六格對上 Harel 巢狀並行 左半是平面狀態機:維修進度三格乘保固計時兩格,攤成六個方格,每一格各拉一條朱紅線到下方的「結案」,六條線在中間擠成一團。右半是 Harel 畫法:「已受理」以箭頭指進一個叫「處理中」的大圓角框,框內用垂直虛線分成兩個並行區,左區三格、右區兩格;「結案」只有一條綠線,畫在大框的下邊界上。大框右下角一個圓圈寫著 H,代表回來時停在離開前那一格。 平面狀態機 Harel 巢狀並行 到場 待料 施工 到場 待料 施工 計時中 計時中 計時中 已停表 已停表 已停表 結案 狀態 6 格・結案線 6 條 已受理 處理中 並行區一 並行區二 到場 待料 施工 保固計時中 已停表 H 結案 一條線接走框內任一格 回來時停在 離開前那一格 狀態 3+2・結案線 1 條
右邊那條線只畫一次,因為它掛在大框的邊界上,接走的是框內任何一格。

三種畫法,省掉的是哪一種重複

同一張派工單,換三種畫法各畫一次,差別會落在同一個位置:「結案」這條轉換得寫幾遍。

畫法圖上會出現幾格「結案」要畫幾條省掉的是哪一種重複
平面下拉選單11 個選項排成一排0 條,轉換靠人腦記省不掉——重複被藏進選項名稱,三個「待料」看起來像三件事
平面狀態機維修進度 3 格 × 保固計時 2 格=6 格6 條,每一格各拉一條省不掉——兩件獨立的事被乘在一起,格數跟著相乘長大
Harel 巢狀並行3+2=5 格,包在 1 個「處理中」大框裡1 條,畫在大框邊界上省掉「同一條轉換抄六遍」,少畫的那五條就是圖上的擁擠來源

三列擺在一起,會浮出一個容易被略過的事實:從第二列走到第三列,狀態格數只從 6 掉到 5,看起來沒賺;真正變輕的是線——6 條變 1 條。狀態表讀起來累,累的來源多半是轉換那一欄——狀態那一欄反而還好。乘法也在這裡斷掉:平面畫法裡再多加一個維修狀態,六格會變八格、六條線會變八條;巢狀畫法裡只是左區多一格,那條結案線還是一條。

狀態表開始變厚,三個訊號

一、同一條轉換,你已經連著抄了好幾次。代理商的派工單上,「結案」這個動作在六個格子裡各寫了一遍,維修的三格要寫、保固的兩種計時狀態也要寫。抄第三遍的時候還忍得住,抄到第六遍就會開始有人漏抄——漏掉的那一格,客戶會替你發現。自問:這張圖上有沒有一條轉換,我已經連著畫了三次以上?

二、有兩件事各自獨立在變。維修師傅走到哪一格,跟保固計時有沒有停表,是可以同時各停在自己那一格上的:師傅在「待料」的同時,保固可以在「計時中」,也可以在「已停表」。兩個區塊各走各的節奏,誰都不需要等誰。攤平的狀態表沒有辦法表達這種同時性,只好把它乘開來——於是三乘二變成六格。自問:我列出的狀態裡,有沒有兩組可以同時各停在自己的一格上?

三、離開再回來,要記得上次停在哪。代理商最常遇到的中斷,是客戶臨時喊停:診所忙、院長出國、預算還沒批。兩週後要接續時,派工單如果只能回到「已受理」,師傅得重新確認一次現場、重新對一次料號——那些工都做過了。狀態圖上的歷史記號,處理的就是這個「回到離開前那一格」。自問:中斷之後回來,執行的人要不要從第一格重走一次?

一家牙科器材代理商的派工單,三種畫法各畫一次

實例演練

底下這家台灣中部的牙科器材代理商,是為了把這個結構講清楚而編出來的示意情境,沒有指涉任何真實公司。他們代理診間的治療椅與消毒鍋,工程部三個師傅跑中彰投的診所,一天六到八張派工單。

  • 畫法一:十一個選項的下拉選單:從「已受理」一路列到「已結案」,中間塞了十一個選項。其中三個都叫「待料」,括號裡分別是缺料、等客戶回覆、等原廠授權——三個名字指的是同一格,差別在停下來的理由。派工系統要求師傅選一個,於是同一台治療椅的同一次維修,兩個師傅會選到不同的「待料」。同一格被切三份
  • 畫法二:3 × 2 的平面狀態機:把維修進度收成三格(到場、待料、施工),把保固計時收成兩格(計時中、已停表),攤平相乘=六格。圖上清楚多了,代價是「結案」這條轉換要從六個格子各拉一條線出去,六條線擠在同一個角落。以後多加一個「已報價待核」,六格會變八格,六條線會變八條。線比格子先爆
  • 畫法三:Harel 的巢狀並行:畫一個叫「處理中」的大框,框內用一條虛線切成兩個並行區——左區放維修進度那三格,右區放保固計時那兩格,狀態數 3+2=5。「結案」只畫一條,掛在大框的邊界上,接走框內任何一格。六條收成一條
  • 並行的兩件事是真的各自獨立在變:師傅在「待料」的同時,保固可以停在「計時中」,也可以因為缺料責任歸原廠而停在「已停表」。兩個區塊同時各待在自己的一格上,改一邊不必去動另一邊——這正是把它們並排擺、別再相乘的理由。兩區各走各的
  • 歷史記號派上用場的那一刻:待料期間診所臨時喊停,兩週後才說可以接續。有歷史記號的畫法,回來時直接停在「待料」;沒有的話,派工單只能退回「已受理」,師傅重跑一趟現場確認。省掉一趟重走

這家代理商真正卡住的地方,跟選項有幾個關係不大——三個「待料」把同一格切成三份之後,沒有人說得出「現在到底在等誰」。換成巢狀並行之後,選項從十一個收成五格,維修進度與保固計時各歸各的區,等待的理由從狀態名稱裡被擠出來——變成一欄要另外填的備註。這件事有它的代價:備註欄需要有人維護,而系統不會替你維護。圖畫得再乾淨,那一欄空著的時候,客服接起電話還是只能說「我幫您查一下」。上面這組 11、6、5、1 的數字,是為了說明三種畫法差在哪而設的示意值。以上為說明結構用的示意情境,僅供理解框架之用。

這張狀態圖什麼時候會騙你

  1. 並行區不是免費的層次。把兩件事拆成兩個並行區,圖上的線確實變少了,但讀圖的人必須同時追兩條進度。三個並行區以上,多數人會開始只看自己負責的那一區——維修的師傅只看左區,業務只看右區,交界處那些「保固已停表但維修還在跑」的組合,反而更沒有人盯。線少了,注意力被切碎了。
  2. 歷史記號會把一個業務判斷藏起來。圖上畫一個 H,等於預設「回來就接著走」。可是停了兩週之後,現場真的還是離開前那個樣子嗎?料號可能已經停產,保固可能已經到期,診所可能換了院長。歷史記號解的是「不必重走流程」,它解不了「該不該重新確認」——而後者才是客訴真正的來源。畫 H 之前,先問一句:停多久之後就不該接續了。
  3. 圖上省掉的線,程式裡不一定省得掉。把六條結案轉換收成一條邊界轉換,是描述層的收斂。真正跑起來的時候,離開大框的那一刻,兩個並行區都得各自收尾:維修要結工單,保固要決定停表的時間要不要補回去。這些收尾動作在圖上只是一條線,在系統裡仍然是兩段程式。把「圖變乾淨」當成「事情變少」,是這種畫法最常被誤讀的地方。

痛點視角:那個沒人記得的中斷點

痛點視角

這張圖收掉了五條線,收不掉一通催單電話。

狀態表會愈列愈厚,多半是因為同一組問題在每一格裡都被重問了一次——而重問的原因,通常是當初沒人問「這一格的人在等誰」。P.A.I.N. 的第一個字母問的是誰在痛:派工單上的三個「待料」,痛的其實是三種不同的人。缺料痛的是倉管,等客戶回覆痛的是業務,等原廠授權痛的是老闆。巢狀並行把它們併成一格,圖立刻乾淨了,也同時把三個人的等待壓成同一個標籤——收斂會開一張帳單,只是它開得很安靜。這張圖畫得出狀態之間怎麼走,畫不出客戶在哪一格開始改打給你的競爭對手。真正該記下來的,是每一個停下來的格子裡,有人正在替你等——而等待的長度,客戶記得比系統清楚。今晚做一件事:打開派工單的狀態選項,對每一個選項問一句「這一格的人現在在等誰回覆」,把答案相同的兩格併起來、答案不同的兩格拆開。

常見問題

Harel 狀態圖跟一般的狀態機圖差在哪?

一般狀態機是平的:每一個狀態都是同一層,轉換一條一條連。Harel 在一九八七年加了三件事——狀態可以包狀態(巢狀)、可以並排同時存在(並行)、可以記得離開前停在哪(歷史記號)。三件事都在對付同一個症狀:狀態一多,同一條轉換要重複畫很多次。所以它比較像一組描述上的約定:讓同一份流程用比較少的線畫完。至於用哪一套工具或哪一種語言去畫,那是另一層的選擇。

並行區是什麼意思?兩件事同時發生要怎麼畫?

並行區就是在一個大狀態裡面拉一條虛線,切出兩個彼此獨立的區塊,各自有自己的狀態與轉換。系統待在大狀態裡的時候,兩個區塊會各停在自己的一格上——維修進度停在「待料」,保固計時停在「已停表」,兩者互不干涉。判斷能不能用並行的方法很簡單:如果 A 的每一格都要跟 B 的每一格組合出一個新名字,而且組合出來的名字沒有新意義,那就是兩件該並排、卻被你乘起來的事。

歷史記號一定要畫嗎?

看中斷之後回來的成本。如果流程從頭重走只花五分鐘,畫了反而是負擔——多一個記號就多一種要維護的狀態。真正需要它的,是「重走要付出真金白銀」的流程:師傅要再跑一趟現場、料要再驗一次、客戶要再簽一次名。畫的時候順手記一件事:歷史記號只負責記得停在哪一格;該不該接續,得由另一條規則來管。停多久之後要強制回到起點,那條規則得另外寫,圖上通常標成一條有時間條件的轉換。

狀態多到幾個才需要換成巢狀畫法?

數狀態沒有用,數線比較準。攤平的圖上如果有一條轉換重複出現三次以上(像上面那個「結案」重複六次),或是你發現狀態名稱開始長成「A 且 B」這種複合詞(「待料且計時中」),那就是攤平已經撐不住的訊號。反過來說,狀態只有四五個、轉換各自不同的流程,硬套巢狀只會多一層要解釋的框。先畫平的,等到同一條線抄煩了再收。

拉開手上那張狀態下拉選單,圈出兩個其實是同一件事的選項。圈完之後如果發現格子數量還好,麻煩的是幾條轉移規則互相打架,可以接著看斷路器狀態機——那張圖只有三個狀態、四條轉移,講的是單層狀態機怎麼把連續失敗擋在門外;這一張處理的則是狀態多到得往裡面塞、往旁邊排的時候,該怎麼收。

發現引用或事實有誤?請寫信回報,我會依更正政策修正。