User story,即用戶故事菱鸥,是敏捷的基礎(chǔ)工具宗兼,用于描述用戶的需求。那么疑問就來了氮采,和我們?nèi)粘5男枨笠?guī)格有什么區(qū)別呢殷绍?先占時拋開這個問題,先聊聊User story來歷鹊漠。
User story是Kent Beck的創(chuàng)意主到。大約在20世紀(jì)19年代末的時候,Kent發(fā)現(xiàn)軟我們是通過文檔來精確描述想要的東西躯概。但是同一份文檔登钥,閱讀的人不同,各自得到的信息也不一樣楞陷。最后開發(fā)出來的東西大相徑庭怔鳖,才發(fā)現(xiàn)大家理解不一致。這時候抱怨聲四起,DEV抱怨BA需求描述不清结执,BA抱怨業(yè)務(wù)對描述內(nèi)容有缺失度陆。但是我們依然立志寫一份完美的文檔,甚至是讓大家在文檔上簽字以確保達成共識献幔。Kent想摒棄“寫出完美文檔”的執(zhí)念懂傀,希望大家坐在一起,通過講故事的方式把需求呈現(xiàn)出來蜡感。User story因此得名蹬蚁。
US是想讓需要解決問題的人和有能力解決問題的人,坐在一起郑兴,描述為什么要這么做犀斋,而不是傳統(tǒng)需求文檔一樣只是體現(xiàn)了怎么做。通過彼此協(xié)作情连,統(tǒng)一語言叽粹,達成共識。
1.User Story三大要素
理解US之后却舀,不得不提US的三大要素虫几。
Card:在一堆卡片上寫下期望的軟件特性。US需求的載體挽拔,不是需求本身辆脸。敏捷宣言里也強調(diào)“可工作的軟件勝于詳細的文檔”,記錄關(guān)鍵要素支撐交付螃诅,切勿為了文檔而寫文檔啡氢。Card體現(xiàn)了核心、簡單州刽、小空执。
Conversation:聚在一起對要開發(fā)的軟件進行深入討論。強調(diào)與用戶溝通穗椅,確保理解一致,從而進一步探索需求細節(jié)奶栖。
Confirmation:對完工條件進行確認匹表。即驗收條件,再次確認信息傳遞的準(zhǔn)確性宣鄙,確認US是否實現(xiàn)袍镀,以及是否達到預(yù)期。
2.User story基本拆分原則
US是基于用戶視角的需求描述冻晤,如果按照前臺苇羡、中臺、后臺鼻弧、數(shù)據(jù)庫等維度平行切分设江,交付結(jié)果對用戶來說沒有價值锦茁,所以拆分US原則上要求端到端,有點類似豎著切蛋糕的方式叉存,從奶油码俩、面包、水果一起切分歼捏,而不是奶油一層稿存、面包一層、水果一層瞳秽。
拆分Story有6大原則:
Valusble:US是用戶的故事瓣履,體現(xiàn)用戶所需,對用戶有價值练俐,而不是開發(fā)團隊的價值拂苹。
Negotiable:US是逐步清晰和細化的,其工具就是不斷的溝通和協(xié)商痰洒。
Independent:保持US間相互獨立的瓢棒,便于US的排序、工作量評估和測試丘喻。
Testable:可測能讓我們驗證US是否完成脯宿。
Estimable:US可評估,說明了US足夠清晰泉粉,達到可以開發(fā)的條件连霉。
Small:US需確保在迭代中完成,不能太大嗡靡,當(dāng)然US拆分越細跺撼,需求會越清晰,而成本也會越高讨彼,團隊平衡即可歉井。
以上的Invest原則只是經(jīng)驗建議,實際拆分還需要按照產(chǎn)品情況進行哈误,有些時候代碼重構(gòu)哩至、架構(gòu)優(yōu)化、性能需求等也可以作為US的蜜自。
3.User story拆分方法
以下是大家伙經(jīng)驗總結(jié)的方法菩貌,不是唯一標(biāo)準(zhǔn),也不是一種方法就可以hold所有情況重荠,基本是多種方法的結(jié)合箭阶。
簡單說明下以上9種方法:
工作流:每個工作節(jié)點相對獨立,可以按照工作流切分,再從工作節(jié)點再深入打開仇参。
主要/簡單:先把主要部分中的簡單內(nèi)容進行拆分
數(shù)據(jù)輸入:以數(shù)據(jù)類型進行拆分
數(shù)據(jù)處理:以數(shù)據(jù)處理模式進行拆分
主要/次要:按照需求的主要/次要的層次進行拆分
MVP:最小產(chǎn)品試驗的理念進行拆分嘹叫,最小化US數(shù)量和大小
性能:比如在功能實現(xiàn)和性能要求上,拆分為兩個US冈敛,先實現(xiàn)功能待笑,再實現(xiàn)性能提升。
CURD:增刪改查
Spike:探針模式抓谴,這是找不到辦法中的辦法暮蹂,先拆分試試。
4.User story書寫模板
US是需求載體癌压,強調(diào)用戶和Team共同完成的仰泻,大家所想的一樣。模板核心回答了“誰”滩届、“什么”集侯、“為什么”的問題,強調(diào)了用戶想要的部分帜消。當(dāng)然該模板也只是參考棠枉,我們是可以適當(dāng)增刪。
但是泡挺,User story的創(chuàng)意初心是大家一起來講一個好故事辈讶,共同一致理解US,強調(diào)的是團隊間的協(xié)作和共識娄猫。如果僅是為了US而寫US贱除,這和傳統(tǒng)的需求文檔沒差。