SPIDR - 完美分割用户故事的五种简单技巧
根據(jù)INVEST原則,對用戶故事的要求是它必須“足夠小”或具有合適的大小。用戶故事應(yīng)該足夠小,可以在沖刺中完成6-10個(gè)。當(dāng)然這也取決于開發(fā)團(tuán)隊(duì)的速度。為了原則上實(shí)現(xiàn)這一目標(biāo),必須相應(yīng)地分割大型故事。在下文中,我想向您介紹Mike Cohn的簡單快速的SPIDR方法。他總結(jié)了五種技術(shù),幾乎每個(gè)大型用戶故事都可以分為幾種。
釘鞋
Spike是敏捷軟件開發(fā)中使用的術(shù)語。尖峰是功能的小型原型實(shí)現(xiàn),通常用于新技術(shù)的評估和可行性。
該方法涉及調(diào)查和建立知識。如果其他SPIDR方法效果不佳,則應(yīng)該使用它。借助這些新獲得的知識,可以更好地理解一些故事,并可能更容易地分裂。然而,該方法相對抽象,因此比其余方法更難應(yīng)用。
路徑
如果用戶故事中有多個(gè)可能的備用路徑,則一個(gè)選項(xiàng)是從這些路徑中的某些路徑創(chuàng)建單獨(dú)的用戶故事。為每條路徑寫一個(gè)故事并不是絕對必要的,只要它有意義。例如,讓我們看一個(gè)用戶想要在線商店購買的用戶故事。現(xiàn)在有兩種可能的途徑:使用信用卡付款或使用Paypal付款。理論上,信用卡付款可以進(jìn)一步細(xì)分,但你需要權(quán)衡每種類型的信用卡是否有自己的故事。然而,支付購買的首要任務(wù)分為上述兩種備選方案。因此,新創(chuàng)建的故事更小,更容易估計(jì)。
接口
在該上下文中的接口可以是例如不同的設(shè)備或設(shè)備類型,例如由iOS或Android供電的智能電話。用戶故事也可以根據(jù)這種多樣性進(jìn)行劃分。讓我們堅(jiān)持使用不同操作系統(tǒng)的示例:例如,在項(xiàng)目中,可能存在僅與Android設(shè)備的使用相關(guān)的用戶故事,或者專注于Web瀏覽器的其他用戶故事。為了避免使故事過于龐大和全面,您應(yīng)該問自己要開發(fā)哪些設(shè)備或接口。也許第一個(gè)開發(fā)結(jié)果應(yīng)該只引用iOS設(shè)備,因?yàn)榭赡芨蟮哪繕?biāo)組。
數(shù)據(jù)
當(dāng)初始故事僅涉及相關(guān)數(shù)據(jù)的子范圍時(shí),可以使用另一種用于分割用戶故事的技術(shù)。以一個(gè)旨在吸引游客到特定城市的網(wǎng)站為例。例如,如果它是以博物館而聞名的城市,那么第一個(gè)故事可能包括該地區(qū)不同博物館的信息。隨后的故事可能包括穿越城市的各種旅游,以及另一項(xiàng)戶外活動。
規(guī)則
業(yè)務(wù)規(guī)則或技術(shù)標(biāo)準(zhǔn)可能是另一個(gè)分裂因素。以在線購買電影票為例。通常存在約束,例如基于相應(yīng)電影的業(yè)務(wù)要求,例如每個(gè)電子郵件地址最多五個(gè)票的在線購買限制。
有了這個(gè)故事,可以想象開發(fā)團(tuán)隊(duì)省略了這個(gè)限制,允許每個(gè)訪客購買盡可能多的門票。然后可以在第二次迭代步驟中添加限制。像這樣的增量交付意味著初始故事不會立即完全實(shí)現(xiàn),而是以幾個(gè)較小的步驟提供。有時(shí)忽略技術(shù)規(guī)范或業(yè)務(wù)規(guī)則是有意義的,如果通過這樣做,您可以更快地實(shí)現(xiàn)滿足用戶或客戶的可呈現(xiàn)結(jié)果。可以在以后檢索省略的故事。
小用戶故事 - 更容易實(shí)現(xiàn)
用戶故事分裂并不總是那么容易:許多初學(xué)者傾向于將他們的故事過于全面而且過于龐大。但是,當(dāng)涉及到開發(fā)團(tuán)隊(duì)的改進(jìn),并最終實(shí)現(xiàn)故事時(shí),很快就會發(fā)現(xiàn)必須制作更小的故事。在我之前關(guān)于寫(好)用戶故事的博文中,我堅(jiān)持認(rèn)為故事應(yīng)該是“可估計(jì)的”和“小的”。如果您知道如何分割大型故事,則更有可能發(fā)生這種情況。正如編寫用戶故事一樣,練習(xí)也是完美的。
敏捷軟件開發(fā)
- 什么是敏捷軟件開發(fā)?
- 什么是用戶故事?
- 什么是用戶故事映射?
- 用戶故事與敏捷軟件開發(fā)的使用案例
總結(jié)
以上是生活随笔為你收集整理的SPIDR - 完美分割用户故事的五种简单技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jdbcTemplate 后台接口中的分
- 下一篇: Go并发编程之美-读写锁