過去幾十年來,軟體開發方法論迅速演進,從繁重的前期瀑布式文件,轉向輕量級、迭代式的敏捷實踐。長久以來,傳統的「使用案例」——物件導向軟體工程的基石——被認為與現代敏捷框架如 Scrum 和 Kanban 不相容。它經常被批評過於以文件為中心且速度緩慢。
進入Use-Case 2.0。由 Ivar Jacobson、Ian Spence 和 Brian Kerr 提出,這個現代框架重新定義了經典使用案例,使其輕量、可擴展且多功能。其設計目的在於彌合使用案例的結構性優勢與敏捷開發的彈性之間的差距。
什麼是 Use-Case 2.0?
Use-Case 2.0 是使用案例方法的現代演進,專門為解決傳統需求收集的限制而設計。與其前身不同,後者通常在程式碼開始前需要極其詳細的內容,Use-Case 2.0 則著重於核心要素、迭代交付與垂直切片。
此框架的核心創新在於能夠將使用案例分解為更小、可管理的單元,稱為使用案例切片。這使得團隊能在維持系統架構「整體視野」的同時,以符合 Scrum、SAFe 和有紀律的敏捷實踐的小型、衝刺規模增量,持續交付價值。
六大首要原則
Use-Case 2.0 建立在六項指導原則之上,確保流程保持精簡且以價值為導向:
- 以敘事方式保持簡潔:需求應保持敘事導向。使用案例本質上是關於系統如何被使用的敘事,並對所有利害關係人保持易於理解。
- 理解整體圖景:與扁平化的使用者故事不同,Use-Case 2.0 透過簡明的5至20個使用案例的圖示.
- 著眼於價值:每一個描述的互動都必須為使用者或利害關係人帶來明確價值,避免功能蔓延。
- 以切片方式建構系統:這是核心概念。開發人員不是一次建構整個使用案例,而是以垂直切片的方式逐步實現。
- 以增量方式交付系統:工作以迭代方式進行,並持續早期且頻繁地釋出可用的軟體。
- 依團隊需求調整:細節程度與正式性並非固定不變,而是根據專案的複雜度與法規要求,可擴展或縮減。
核心概念:切片是改變遊戲規則的關鍵
要理解 Use-Case 2.0 如何融入敏捷開發,必須先理解其構件。該框架將過去繁重的文檔簡化為三個主要組件。
1. 輕量級用例
用例仍然描述了參與者(使用者)與系統之間以目標為導向的互動。然而,在 2.0 版本中,它並不會一開始就完全詳細說明。它從名稱、簡要描述以及主要成功場景關於替代流程和例外情況的細節,會在開發優先順序確定後「即時」加入。
2. 用例切片
這個用例切片是此框架中最關鍵的創新。切片是對用例進行垂直切分,形成一個完整的價值流。它包含部分敘事(故事)、相關的測試案例以及實現它所需的程式碼。
切片使得單一用例(例如「處理訂單」)可以拆分到多個迭代中:
- 切片 1: 基本的「順利路徑」(標準訂單)。
- 切片 2: 替代路徑(使用折扣碼的訂單)。
- 切片 3: 例外路徑(信用卡被拒)。
每個切片都像一個待辦事項——它可估算、可測試,且可在一次迭代內交付。
3. 用例模型
雖然切片是在日常工作中處理,但用例模型仍作為地圖存在。它是所有用例的總和,提供了個人使用者故事通常缺乏的上下文與架構概覽。這解決了敏捷開發中常見的問題:團隊完成數百個故事,卻失去了對整體系統行為的掌握。
對比:Use-Case 2.0 與使用者故事及傳統用例
許多團隊在在使用者故事與用例之間做選擇時感到困擾Use-Case 2.0 主張你不必非得二選一;它提供了用例的結構,同時兼具故事的靈活性。
| 面向 | 傳統用例(2.0 之前) | 使用者故事 | 使用案例 2.0 |
|---|---|---|---|
| 前期努力 | 高(詳細規格) | 非常低 | 低 → 增量式 |
| 整體視野 | 是 | 經常遺失 | 是(透過使用案例模型) |
| 迭代能力 | 差 | 優異 | 優異(透過切片) |
| 可追蹤性 | 強 | 弱 | 強(可導向測試) |
| 測試導向 | 手動/晚期階段 | 接受標準 | 每切片內建(TDD) |
| 最佳環境 | 瀑布式/結構化 | 簡單的敏捷專案 | 複雜/企業級敏捷 |
工作流程:如何實踐使用案例 2.0
採用此方法論涉及一個循環式的工作流程,能完美融入標準的敏捷迭代中:
- 識別參與者與使用案例:首先列出系統的 5 到 20 個主要目標,以明確範圍。
- 優先排序並切片: 選擇高價值的使用案例。垂直切片(例如,將基本流程與例外情況分開)。這些切片將成為您的待辦事項。
- 及時詳述: 目前不要撰寫完整的規格說明。僅針對即將進行的迭代所選取的切片進行詳述。在此階段加入測試案例與使用者介面註記。
- 實作與測試: 為切片開發程式碼,並根據以下特定測試案例 進行驗證。Use-Case 2.0 強烈支援測試驅動開發(TDD)。
- 整合與增量: 將完成的切片合併至系統中。若架構已演進,則更新整體使用案例模型。
為何 Use-Case 2.0 適合現代化開發
Use-Case 2.0 在企業系統、受監管產業或複雜領域中特別有效,這些領域中簡單的使用者故事往往不夠充分。
它提供可擴展性,讓團隊可以輕量啟動,僅在必要時增加正式性。它確保價值導向,迫使團隊以端到端的使用者旅程思考,而非孤立的技術任務。最後,它解決了文件債務問題;由於使用案例模型是迭代更新的,文件會隨著程式碼演進,成為一個「活的」需求集合,而非陳舊的檔案庫。