使用者故事

2013 年 4 月 22 日

使用者故事是軟體系統中所需行為的區塊。它們廣泛用於敏捷軟體方法,將大量功能劃分為較小的部分以利規劃。你也可以聽到相同的概念稱為功能,但「故事」或「使用者故事」這個詞彙在敏捷圈中已相當普遍。

Kent Beck 最初將這個詞彙引入極限編程,以鼓勵需求引導時採用更非正式且對話式的風格,而非冗長的書面規格。故事的精華可以寫在單張便條紙上(Kent 和我比較喜歡 3" x 5")。故事在準備好開發之前,刻意不會詳細說明,你只需要有足夠的理解,以便與其他故事進行優先順序排序。

Bill Wake 提出 INVEST 助記符,用來描述好故事的特徵

  • 獨立:故事可以按任何順序交付
  • 可協商:故事中內容的詳細資訊,會在開發期間由程式設計師和客戶共同建立。
  • 有價值:軟體的客戶或使用者認為此功能有價值。
  • 可評估:程式設計師可以提出合理估計,用於建構故事
  • :故事應該在短時間內建構完成,通常是數個人天。你當然應該可以在一個迭代中建構多個故事。
  • 可測試:你應該可以撰寫測試,以驗證此故事的軟體是否正確運作。

制定故事的常見方式是「作為一個…,我想要…,以便…」的形式。「作為一個」子句是指誰想要這個故事,「我想要」描述功能是什麼,「以便」描述他們想要這個功能的原因。「以便」部分提供了重要的背景資訊,有助於了解客戶認為他們想要什麼,並提供他們實際需要的東西。

Mike Cohn 寫了 目前撰寫使用者故事的標準書籍。若要了解使用者故事在 XP 中的根源,請考慮 白皮書有品味的綠皮書。在較早的 bliki 條目中,我討論了為什麼 UseCasesAndStories 是不同的。