Story 不是 IEEE 830 需求規格#

傳統的 IEEE 830 軟體需求規格(SRS)試圖在開發之前就完整記錄所有需求。User Story 與此根本不同:

  • SRS 追求完整性,Story 追求恰到好處
  • SRS 是分析活動的產物,Story 是對話的起點
  • SRS 假設我們能預先知道一切,Story 承認不確定性是常態

無論我們多麼認真地思考和分析,都不可能在專案初期就完美地規格化一個非平凡的系統。使用者會在看到軟體後改變想法——這是正常的。

Story 不是 Use Case#

Story 和 Use Case 看似相似,但有重要差異:

面向Use CaseUser Story
範圍通常較大,包含多個 Story通常較小,聚焦單一功能
完整度追求完整描述只記錄足夠引發對話的資訊
生命週期永久的專案文件用完即可丟棄
目的記錄客戶與開發者的共識促進發布規劃和對話
UI 假設容易包含 UI 細節盡量避免 UI 假設

Figure 12.1: A sample use case for pay for a job posting

Constantine 和 Lockwood 提出的 Essential Use Case(本質用例)移除了技術和實作的假設,其中的「使用者意圖」可以直接被解讀為 User Story。

Use Case Brief#

Cockburn 提到的 Use Case Brief(用例簡述)介於 Use Case 和 Story 之間:

  • 範圍仍等同於 Use Case(比單一 Story 大)
  • 以非結構化的文字撰寫
  • 是永久的文件,而 Story 是暫時的

Story 不是情境(Scenario)#

互動設計中的 Scenario(情境)是對使用者與系統互動的詳細敘述,通常比 Use Case 更大、更詳細:

  • 情境包含設定(setting)、角色(actors)、目標情節
  • 一個情境通常涵蓋多個 Story
  • 情境強調細節和寫實感,Story 強調簡潔

重點不在於思考使用者屬性的清單,而在於思考使用者的目標。從目標出發,更容易寫出有意義的 Story。

關鍵啟示#

  • 不同的需求方法各有優勢,Story 不是萬靈丹
  • 比起追求「完美的需求文件」,更應該追求足夠好的 Story 加上頻繁的對話
  • 使用者和開發者之間的早期且頻繁的回饋循環,遠比完美的前期規格更有價值