跳到主要內容

專案管理系列:第五章 - Project Mgmt. Tool 專案管理工具

已生成 4

四種專案管理工具的分工與串接——WBS 拆範圍、Gantt 排時程、Kanban 追流動、Task 記執行;涵蓋 100% Rule、WIP 限制與用時間欄位反推流程瓶頸。

更新於 2026/06/21

Mgmt. Tool(管理工具)

前面的筆記談的大多是觀念——專案與產品的差異、方法論的選擇、角色職責的分工,以及 Waterfall 的流程。這一章會將這些觀念轉成可落地執行的具體作法,也就是使用專案管理工具。

下面是專案管理常用的工具,實際上當然不只這些,下面幾項工具只是根據之前的經驗統整出來,且可以按層級區分使用情境的部分:

工具回答的問題層級
WBSWork Breakdown Structure,工作分解結構:把交付物由上而下層層拆解成可估時、可指派的工作單元。要做哪些事?(範圍)規劃
工作包Work Package:WBS 拆到最底的葉節點,是「範圍」的最小單位,以成果命名(如「會員系統」),排程時再展開成多個 Task。範圍拆到最小是哪一塊?(最小交付單位)拆解
Gantt甘特圖:用時間軸排出各任務的起訖與先後依賴,看整體時程。什麼時候做、誰先誰後?(時程與依賴)排程
Kanban看板:用欄位視覺化工作流、限制在製品(WIP),讓任務順暢流動、瓶頸現形。現在進行到哪了?(流動狀態)追蹤
Task任務:由上一層工作包展開出的執行單元,以動作命名(如「設計會員資料表」),記錄執行的人、時間與狀態等細節;一個工作包通常對應多個 Task。這件事的細節與紀錄是什麼?(執行)執行

WBS(Work Breakdown Structure)

結構特性

  • 樹狀結構:專案總目標 → 主要交付物 → 子交付物 → 工作包
  • 100% Rule:子節點總和必須等於父節點的全部範圍,同時也包含總工時
  • 以「交付物 / 成果」為導向,而非以「動作」為導向(避免拆成一堆動詞清單)

拆解的粒度

一個末端工作包的工時建議落在 8 ~ 80 小時之間:

  • 太大 → 難以估時與追蹤,風險被掩蓋
  • 太細 → 管理成本超過實際產出價值
  • 理想 → 能被一個負責人扛起,且驗收標準明確

為什麼 PM 需要 WBS

  • 確認範圍(Scope):未列入 WBS 的東西,預設就不在這次專案內
  • 估算的基礎:沒有拆解就沒有估時與成本估算
  • 風險識別:拆解過程會浮現原本沒想到的依賴與盲點
  • 指派責任:每個工作包都應有明確負責人(呼應 專案管理系列:第三章 - Role & Responsibility (R&R) RACI 中的 R)
  • 承接後續工具:Gantt、Kanban、Task 都是以末端工作包為基礎再展開

範例:DutyMate 值日生排班系統

以我們現在在跑的 Side Project「DutyMate」(值日生排班 App)為例,把 PRDProduct Requirement Document,產品需求文件:在動工前定義專案要做什麼的依據文件,通常包含問題背景、目標、使用者角色、功能規格與驗收標準、時程等。它界定了專案範圍,正好是 WBS 拆解的輸入來源。 的範圍拆成 WBS:

TEXT
DutyMate 值日生排班系統
├── 1. 需求與規劃
│ ├── 1.1 痛點訪談與需求確認
│ ├── 1.2 PRD 定稿與待釐清項確認
│ └── 1.3 範圍與里程碑確認
├── 2. 設計
│ ├── 2.1 業務流程與 Use Case
│ ├── 2.2 資料庫 Schema 設計
│ ├── 2.3 API 規格設計
│ └── 2.4 UI Mockup
├── 3. 開發
│ ├── 3.1 基礎建設與權限(專案骨架、登入、用戶管理、角色權限)
│ ├── 3.2 活動設定與排除時段(活動設定、排除時段、排班限制表)
│ ├── 3.3 草稿班表與推薦演算法(推薦演算法、排班統計、班表發布)
│ ├── 3.4 正式班表與檢視(篩選值日生、工作任務備註、無法出勤標記)
│ └── 3.5 出勤統計與過往班表匯入
├── 4. 測試
│ ├── 4.1 單元測試(Jest)
│ ├── 4.2 系統整合測試(SIT)
│ └── 4.3 使用者驗收測試(UAT)
└── 5. 上線
├── 5.1 Docker 部署設定
├── 5.2 Cutover 與 Go-Live
└── 5.3 上線後監控與保固

我個人習慣在 WBS 上直接加上負責人(PIC)欄位,還有進度欄位。這樣在排程與指派時就能一併完成。下面的示意圖就是結合 WBS 與 Gantt 的樣子, 但礙於版面限制,只留工作項目、PIC、工時和開始日期的欄位:

視覺化 · free generated/wbs-simulator.tsx
彙總節點:唯讀,顯示子工作包工時加總工作包:可估時、可刪除(刪除即移出範圍)
工作項目
PIC
工時
開始日期
DutyMate 值日生排班系統
Σ 452 h
需求與規劃
Σ 32 h
痛點訪談與需求確認
h
PRD 定稿與待釐清項確認
h
範圍與里程碑確認
h
設計
Σ 88 h
業務流程與 Use Case
h
資料庫 Schema 設計
h
API 規格設計
h
UI Mockup
h
開發
Σ 256 h
基礎建設與權限
h
活動設定與排除時段
h
草稿班表與推薦演算法
h
正式班表與檢視
h
出勤統計與過往匯入
h
測試
Σ 56 h
單元測試(Jest)
h
系統整合測試(SIT)
h
使用者驗收測試(UAT)
h
上線
Σ 20 h
Docker 部署設定
h
Cutover 與 Go-Live
h
上線後監控
h
6/156/226/297/67/137/207/278/38/10
6/16–6/17
6/19–6/20
6/21–6/22
6/23–6/25
6/26–6/29
6/30–7/4
7/5–7/8
7/9–7/20
7/21–7/26
7/27–7/31
8/1–8/3
8/4–8/5
8/6–8/7
全部未刪除工作包合計:452 h
<8h:工時過短8–80h:工時合理>80h:工時過長點名稱前的狀態圖示可看詳細建議
整合式 WBS 甘特表:凍結欄位估時/指派 PIC/編輯開始日,右側時間軸自動排程,狀態 icon 點擊看工時建議

這邊也提供了一個用 Excel 建立的 WBS 模板,已經套用好基礎欄位,未來有機會使用到也可以下載

下載 WBS 範本

另外 Excel 官網也提供了其他的範本可以參考,可以訪問 Free Gantt charts customizable templates online


Kanban(看板)

基本元素

元素說明
Board(看板)代表整個工作流的板子
Column(欄位)對應工作流的每個階段,如 To Do / In Progress / Review / Done
Card(卡片)對應一個 Task任務:最末端、可被執行與追蹤的工作單元,記錄負責人、時間與狀態等細節。本篇最後一節「Task(任務)」會專門介紹。,在欄位之間由左往右流動
WIP Limit每個欄位同時可存在的卡片數量上限
Swimlane(泳道)橫向切分,區分不同類型工作(如 新功能 / Bug / 技術債)或不同產品線

核心精神

  • 視覺化(Visualize):所有人一眼看到目前狀態與卡關處
  • 限制 WIP:強迫團隊「先完成、再開始」,避免同時推太多卻沒一件結案
  • 管理流動(Manage Flow):關注 Lead Time前置時間:從任務「被建立 / 提出」到「完成交付」的總耗時,反映的是需求方(顧客)從開口到拿到成果一共等了多久。 與 Cycle Time週期時間:從「實際開始動工」到「完成」的耗時,反映團隊真正處理一件事的速度;它是 Lead Time 的子區段(扣掉排隊等待的部分)。。後面的章節會專門講指標,這裡只先提一下它們是 Kanban 的核心指標,用來反推流程上的瓶頸與改善效果
  • 明確的流程政策:每個欄位的進入條件與完成的定義要寫清楚,例如說,推進到 Done 的條件是開發團隊完成功能開發與交付技術文件,與 PM 通過功能測試,而不是「我覺得我做完了」
  • 持續改善:定期檢視瓶頸、調整欄位與 WIP 上限
我的習慣:先別急著卡死 WIP

我自己的習慣不會特別去限制 WIP,因為可以透過 Kanban 看目前大部分的任務堆積在哪個階段,另外也可以透過 Lead Time / Cycle Time 的數據來反推流程上的瓶頸在哪裡;如果一開始就把 WIP 卡死,反而會失去這些訊號。

為什麼 PM 適合用 Kanban

  • 進度透明:不必開會問進度,看板本身就是進度
  • 瓶頸可視化:哪個欄位卡片堆積,就是當前瓶頸(通常是 Review 或驗收)
  • 與 WBS 搭配:WBS 末端工作包展開出的 Task任務:最末端、可被執行與追蹤的工作單元,記錄負責人、時間與狀態等細節。本篇最後一節「Task(任務)」會專門介紹。,可一張張變成卡片直接進入流動

我的看板狀態設計

我自己的 Kanban Task任務:最末端、可被執行與追蹤的工作單元,記錄負責人、時間與狀態等細節。本篇最後一節「Task(任務)」會專門介紹。 的狀態流, 會按以下方式設計:

TEXT
Open ──→ On Going ──→ Done ──→ Verified ──→ Closed
(待辦) (進行中) (待驗收) (待結案) (已結案)
視覺化 · free generated/kanban-simulator.tsx

點擊推進卡片;可拖放移欄;達到 WIP 上限的欄位標頭會變色;標記Pending 或Cancelled 會讓卡片離開欄位、移到下方「離開流動」泳道

Open待辦
3

首頁改版

WL

會員登入流程

CY

購物車 UX

SL
On Going進行中
2/2
WIP2

商品列表 API

0 格
JW

搜尋功能

TK
Done待驗收
1

訂單通知信

WL
Verified待結案
1/2
WIP2

金流串接

CY
Closed已結案
0
離開流動Pending(暫離)與 Cancelled(退出)不佔欄位 WIP,已離開正常往前的流動
暫離流動

活動報名頁

原欄位:On Going
PM
退出流動

舊版報表匯出

原欄位:Done
TK
可操作的 Kanban 模擬器:拖動卡片流動、調整 WIP 上限、讓瓶頸現形,並把 Pending/Cancelled 移入「離開流動」泳道

Task(任務)

一個任務需要包含足夠資訊,才有助於追蹤管理。

時間欄位

  • 預計完成起訖時間
  • 實際完成起訖時間
  • 驗收起訖時間
  • 上線時間

人員欄位

  • 需求提案人
  • 需求審核人
  • 執行人
  • 驗收人
  • 上線審核人

狀態

一般作法較精簡,推到「已完成」即收尾;我自己則把「驗收」與「結案」獨立成可追蹤的狀態。

狀態說明
To Do已建立,但還沒開始
In Progress正在進行中,尚未完成
Done已完成,且通過驗收
狀態說明
Open任務建立了,但還沒開始
On Going正在進行中,尚未完成
Done已完成,等待驗收
Verified驗收通過,等待結案
Closed驗收通過,正式結案
Pending暫停(有問題待解,或優先級調整)
Cancelled取消(有更好方案,或資源不足所以取消)

兩套狀態的對照

這兩套其實是同一條流程,差別在後段的細緻度。一般的狀態是任務推到「Done」就結束,因為 Done 的狀態表示驗收與結案被涵括在內進行處理。

我的習慣一般作法說明
OpenTo Do已建立、尚未開始,完全對應
On GoingIn Progress進行中,完全對應
DoneDone開發完成、待驗收;但我的 Done 只是中段而非終點
Verified(包含在 Done 的階段中)驗收通過,不另立狀態
Closed(包含在 Done 的階段中)正式結案,不另立狀態

換句話說,我多出來的 Verified 與 Closed,是把壓在「Done」裡的「驗收」與「結案」獨立拉出來成為可追蹤的狀態。 代價是流程看起來變長,好處是「完成 → 驗收」「驗收 → 上線」這兩段耗時能被量化,瓶頸才看得見。

為什麼要這麼多時間欄位

對使用者而言,最關心的往往只有一個時間點——什麼時候上線。但對 PM 來說,上線時間只是其中一個要素; 若把眼光拉到產品的長期推進,重點就不只是「準時上線」,而是讓每一次的規劃都比上一次更準。

這正是為什麼光是「完成時間」,都要拆成「預計」與「實際」兩欄:兩者的差距就是估時誤差, 長期記錄下來,團隊才能逐步縮小落差,讓往後的時程估算越來越可靠。

把時間欄位攤開後,真正的價值在於反推每一段的耗時,找出流程瓶頸:

區間反映的問題
建立 → 開始(Open → On Going)問題還在釐清、資源不足或優先級不清;等待越久代表前置壅塞越嚴重
開始 → 完成(實際完成起訖)執行的工作量與估時準確度;與「預計」對照即估時誤差來源
完成 → 驗收(Done → Verified)驗收方的負荷;常被忽略卻最容易卡關(驗收人沒空、標準不清)
驗收 → 上線(Verified → 上線)上線審核或部署排程卡關

當能看出「卡的不是開發、而是驗收」或「估時總是低估」這類模式時,這些時間欄位才從單純的紀錄,變成可以拿來改善流程與校正估時的依據。

視覺化 · free generated/time-fields-bottleneck.tsx
總耗時 14 天

只記錄上線時間 → 看不出時間花在哪一段

切到「攤開視角」看看瓶頸在哪

時間欄位愈細,瓶頸愈清楚:切換情境與「合併/攤開」視角,看同樣的總耗時如何指出不同的卡點

發現瓶頸後的下一步

時間欄位幫你指出瓶頸卡在哪一段,但這只是第一步。更現實的問題是:很多時候,瓶頸根本不會有人主動講出來。

一般工程師常常埋頭苦幹,也容易報喜不報憂(其實就是在說我自己 🤡)——卡關了不一定會主動反應,問起來還會說「再一下就好」,結果一路拖到火燒屁股、一發不可收拾才被發現。等到那時候,往往已經錯過最便宜的處理時機。

所以瓶頸數據真正的價值,是讓 PM 不必等人開口就能及早發現異常:

  • 看趨勢、不只看單點:某一段的耗時連續幾次都在拉長,就算當事人說「沒事」,數據已經先示警了。
  • 主動把問題攤開來談:與其等對方求救,不如 PM 拿著數據先問「這段最近卡比較久,是不是遇到什麼困難?」——把「報憂」的責任從個人轉移到流程上。
  • 早一點介入、便宜一點解決:瓶頸越早抓到,可動用的選項(補人、調範圍、改順序)越多;拖到最後,常常就只剩硬扛一條路。

發現瓶頸之後,四種瓶頸的病因不同、藥方也就不同。下面這張互動處方手冊,把前置擁塞 / 估時失準 / 驗收塞車 / 上線延宕逐一拆開:點 tab 切換情境,再沿「介入前 → 介入中 → 介入後」三階段,依序看到察覺症狀、診斷病因、開立處方。

視覺化 · free generated/bottleneck-playbook.tsx
建立開始完成驗收上線
瓶頸
總耗時 15 天 · 瓶頸段 8 天
建立 → 開始(Open → On Going)

前置擁塞

症狀(看板上長怎樣)

卡片大量堆在 Open,遲遲不進 On Going;待辦越積越多,卻很少真正動工。

越早越便宜:前置一塞,後面每一段都跟著延後——這是最該先處理、CP 值最高的一段。

四種瓶頸的介入處方手冊:點 tab 切換情境,沿「介入前 → 介入中 → 介入後」依序看見症狀、病因與處方。

小結

這幾項工具不是各做各的,而是互相輔助:

工具在流程中的角色我的使用情境
WBS把交付物由上而下拆解,界定整個專案的範圍專案啟動、要確認「做什麼、不做什麼」時先攤開
工作包WBS 的末端葉節點,範圍的最小單位(以成果命名)拆到「能被一個人扛起、驗收標準明確」就停(呼應 8/80)
Gantt把工作包排上時間軸,看起訖、依賴與整體時程我習慣直接在 WBS 上加開始日 / 工時欄位反推時程
Kanban追蹤展開後的 Task 流動狀態,讓瓶頸現形日常推進看哪一欄堆積,反推卡點(通常是驗收)
Task工作包展開出的執行單元,記錄人 / 時間 / 狀態用細緻的時間欄位反推每段耗時、校正估時
讀完這篇了嗎?
建立於 2026/06/14 project-mgmt-tool-專案管理工具.mdx