本文是今年1月份參加Agile1001公開課後,並參考《用戶故事與敏捷方法》這本書整理,閱讀全文html
用戶故事是描述對用戶有價值的功能,好的用戶故事應該包括角色、功能和商業價值三個要素。安全
用戶故事一般的格式爲:做爲一個<角色>, 我想要<功能>, 以便於<商業價值>。一個好的用戶故事包括三個要素:性能
當故事很是大時,咱們將很難對它進行估計。若是故事預計在N次迭代後才進行,那麼大的故事很正常。但若是估計預計在接下來的迭代中進行,那麼咱們就可能會對大的故事進行拆分。很大的故事基本上都能進行拆分,只要肯定每一個小故事均可以交付業務價值就行。注意在這裏不要把故事拆分到任務,故事是能夠交付的東西,是產品負責人所關心的,而任務是不可交付的東西,產品負責人對它並不關心,任務是在sprint計劃會議上拆分的。測試
分割用戶故事:網站
1. 按照用戶故事所支持數據的邊界來分割大型用戶故事(例如導入GBQ文件、Excel等)。lua
2. 從主用戶故事中除去對例外或錯誤條件的處理(至關於用戶的基本路徑和擴展路徑),從而把一個大型用戶故事變小許多。spa
3. 按照操做邊界分割,把大型用戶故事分割成獨立的創建、讀取、更新和刪除操做(例如預算二次導入,或者新增時須要嚮導、規則而比較複雜時也能夠單獨成一個故事來描述)。設計
4. 考慮去除橫切考慮(例如安全處理、日誌記錄、錯誤處理等),爲用戶故事創建兩個版本:一個具有對橫切考慮的支持,另外一個不具有這種支持。3d
5. 考慮功能性需求和非功能性需求隔離到不一樣的用戶故事,從而分割大型用戶故事(性能)。日誌
在拆分故事時,咱們有時也須要考慮組合故事的場景,如把bug列入產品backlog時,能夠把多個相似的bug組合成一個故事。
最簡單的方法就是問問客戶最但願在下一個迭代中最想看到的是哪一些功能。從考慮的因素來看,咱們能夠從如下4個因素來考慮:
1. 獲取這些功能帶來的經濟價值,價值越高的優先級越高。
2. 開發成本帶來的影響。例如可能2個月後因爲使用新技術只須要2周,而如今作須要2個月,這時能夠考慮把優先級放低一些。
3. 獲取新知識的重要性。在開發中會不斷的產生一些項目和產品的新知識,及早了解和開發這些新知識能夠減小不肯定性,因此這類功能優先級會高些。
4. 故事之間會存在依賴關係,這時候被依賴的優先級會更高,須要先完成。
5. 開發這些功能所減小的風險。在開發過程當中,會出現進度風險、成本風險、技術風險等,對於風險越高價值越大的咱們須要首先處理,對風險高價值低的要儘可能避免,能夠經過如下圖查看肯定功能優先級時綜合考慮風險和價值的關係。
對每一個故事進行初始估計後就能夠知道項目的規模。通常採用故事點來進行這類初始評估,能夠經過撲克牌來進行,撲克牌點數通常有0、1/二、一、二、三、五、八、1三、20、40、100、?、咖啡。首先由產品負責人對product backlog進行講解,而後由Scrum master負責協調進行初始評估工做。敏捷估算中不是要估計絕對的時間,而是儘可能確保故事之間的相對估計是準確的。因爲估計是相對的,因此須要首先找打 一個基準,咱們能夠先找一個不是最小的,也不是最大的來做爲一個基準,能夠先找出一個你們認爲適合分配爲2點的故事。在找2點的故事時,極可能會出現你們 意見不一致的狀況,這時就須要你們都分別說明本身的看法後再從新找。有了2點基準後,就能夠對每一個故事進行評估了,然後面的故事均可以基於之前的故事來進 行相對估計了。在估計過程當中,有可能會出現你們對故事理解不一致,這時就須要返回去修改故事,確保你們理解一致。
優秀用戶故事的一些準則:
1.試着讓故事的大小可以在使用後讓用戶感到能夠去喝杯咖啡休息一下;
2.不要讓故事過早涉及用戶界面;
3.實際編寫故事時,要包括用戶角色;
4.用主動語態編寫故事;
5.爲單個用戶編寫故事;
6.讓客戶編寫故事,而不是開發人員;
7.用戶故事要簡短,它們只是提醒開發人員和客戶進行對話;
8.不要給故事卡添加編號。
一、用戶故事是描述對用戶有價值的功能,用戶故事應該包括角色、功能和商業價值三個要素。
二、優秀的故事應該具有六個特徵:獨立的、可討論的、 對用戶有價值的、可估算的、小的、可測試的
三、當故事很是大時,咱們將很難對它進行估計,有必要進行故事拆分
四、故事優先級評定,最簡單的方法就是問問客戶最但願在下一個迭代中最想看到哪些功能。
五、故事評估通常採用故事點來進行這類初始評估,能夠經過撲克牌來進行。