對于Scrum開發來說,User Story是開發的基礎,它不同于傳統的UDD開發方式,而是把原本需求拆成最小粒度的Story,以方便Scrum小組拆分Task,估計開發
時間,領取開發任務。
User Story不需要太過于詳細,只有在正式開發時,做詳細設計時在進入Detail階段,如果初期時間估算不準確,實際工作量增多時,Sprint Chart需要適當的
Burn-up。
User Story可以遵循以下模板:
As a <User Type>
I want to <achieve goal>
So that I can <get some value>
例如:作為一個病人,我可以預約一個醫生,讓他給我看病。
User Story應遵循INVEST規則:
Independent 獨立性,避免與其他Story的依賴性。
Negotiable 可談判性,Scrum中的story不是瀑布開始某事中的Contract, Stories不必太過詳細,開發人員可以給出適當的建議。
Valueable 有價值性, Story需要體現出對于用戶的價值
Estimable 可估計性,Story應可以估計出Task的開發時間。
Sized Right 合理的尺寸, Stories應該盡量小,并且使得團隊盡量在1個sprint(2 weeks)中完成。
Testable 可測試性, User Story應該是可以測試的,最好有界面可以測試和自動化測試。每個任務都應有Junit Test.
經驗:
1. 永遠不要在User Story中使用And和Or,因為這是些分支詞就表示分支任務,把它們拆成兩個Story.
2. 數據整理:通常情況下1個sprint(2周一次迭代)可以做4~5個Story,極端大的Story不可大于1個sprint。
3. 數據整理:通常情況下1個sprint(2周一次迭代)可以做50個左右的Task。
4. User Story用于描述用戶故事,不要包括任何的技術,框架等內容。Task可以包括框架,技術等內容。
我們通常用User Story來描述Backlog里的各個Backlog項,User Story是從用戶的角度對系統的某個功能模塊所作的簡短描述。一個User Story描述了項目中的一個小功能,以及>這個功能完成之后將會產生什么效果,或者說能為客戶創造什么價值。
User Story要由Stakeholder(利益相關者)來編寫。User Story的形式很簡單,人們可以很容易地掌握編寫User Story的方法。這樣就可以保證是由與項目相關領域專家們來
編寫User Story,而不是開發人員。
我們通常把User Story寫在一張小卡片上,同時在卡片上標明它的優先級和預計完成時間,以便開發人員根據任務的優先級來制定Sprint Backlog。而且,Stakeholder可以隨時更改一個Story的優先級,那么此時開發人員就應該相應地調整Story的開發次序。
一個User Story的大小和復雜度應該在一個Sprint中開發完畢為宜。如果User Story太大,可能會導致對它的開發橫跨幾個Sprint。這種情況是需要避免的。此時就應該將這個User Story分解。
為了能及時、高效地完成每個Story,Scrum團隊會把每個Story分解成若干個Task。每個Task都是可以在明確的時間內完成的,而且時間是以小時為計量單位的。特別提示:每個Task的時間最好不要超過8小時,就是要保證1個工作日內完成,如果做計劃時發現有些Task的時間超過了8小時,就說明Task的劃分有問題,需要特別注意。
-----------------------------------------------------
Silence, the way to avoid many problems;
Smile, the way to solve many problems;