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