1. 程式人生 > >使用者故事驅動開發系列之一:初識使用者故事

使用者故事驅動開發系列之一:初識使用者故事

本文是使用者故事驅動開發系列的第一篇,將簡要的分享“什麼是使用者故事”。

使用者故事驅動開發是敏捷開發的核心管理實踐,本系列將從使用者故事的來源,使用者角色建模,使用者故事的蒐集,編寫使用者故事,使用者故事的澄清與開發,使用者故事的測試與驗收等整個過程、多個維度進行探討,力求給大家呈現出使用者故事從“市場中來,到市場中去”的整個敏捷開發過程!

       既然是敏捷開發的實戰篇,我們在整個歷程中通過採用大家能夠耳熟能詳的“開發一個Android的Market市場Nearme網站”為例,為大家呈現出使用者故事驅動開發的全貌。正如敏捷實踐專家陳勇老師在探討敏捷時所講“無住於法,無住於空,非法,非非法”一樣,本人的敏捷來源於對實踐的思考,絕非普世之法,倘或能引起大家的思考,有一點點兒的收穫,則善莫大焉!

一、什麼是使用者故事

       使用者故事(User Story)是指敏捷開發中以站在使用者角度,採用使用者的語言編寫的產品需求,它是一個簡潔的、包含了對某類軟體使用者帶來價值的書面描述。

二、使用者故事的三要素:角色、功能、價值

     “作為……的角色,我希望……的功能,以便滿足我……的需求(價值)。”這就是使用者故事的三段論,也是“使用者故事三要素”,初看似乎有些“八股”的味道,雖然不能對所有的故事開發人員一概而論,卻是初期接觸敏捷開發的使用者故事需求編寫人員的“良藥”。

“使用者角色,產品功能,價值”是使用者故事簡要三段內必須體現的三個要素。

【例 如】:作為一名遊戲愛好者,我希望Nearme能夠提供豐富的遊戲供我下載,以便滿足我在悠閒時光暢享遊戲的樂趣。

三、使用者故事的3C原則:卡片(Card)、對話(Conversation)和確認(Confirmation)

      “卡片“包含使用者故事的一段書面文字描述,用來做計劃或者開放的提示;而需求的細節要在”對話“中獲得,就是精細化故事的細節是通過對話的澄清方式來實現的; “確認”部分記錄了故事測試驗收的細節,用於表達使用者故事何時可以開發完成。我們知道,迭代開發中的使用者故事通常是記錄到一張卡片上的,這張卡片隨著開發的進度進行方便的移動以體現出狀態的轉換,但是,正如上面那個Nearme的使用者故事所講,要理解遊戲愛好者所希望的“豐富的遊戲“,還需要開發人員與使用者代表(UE人員)進行深度的溝通明確究竟有那些類別的遊戲,通過哪些測試驗收才達到可以釋出的狀態,也即是使用者故事的確認開發完成。

四、使用者故事的INVEST原則

          一個好的使用者故事同時要符合INVEST原則,正如小時候寫記敘文有“六要素“一樣,INVEST原則分別是:

1. 獨立(Independent):使用者故事必須彼此獨立,低耦合;

2. 可協商(Negotiable):故事卡必須用來提醒團隊和干係人進行交談而不是作為一個合同來使用;

3. 有價值(Valuable):使用者故事對使用者或客戶來講必須是重要的,有價值的;

4. 可估算(Estimable):開發團隊必須能夠估算建立使用者故事所需的工作量;

5.規模適中(Small):使用者故事必須足夠小以便可以在1輪(或最多2輪)迭代內完成;

6. 可測試(Testable):使用者故事必須寫成可以被測試的(有足夠的細節)。

     有關使用者故事的INVEST原則會在後續的討論中詳細展開和舉例,本文不做詳細論述!