通常人們會將User Story和Use Case放在一起比較,雖然二者在形式上具有一定相似性,但是究其本質來說,還是天淵之別的。這一點,專業BA李默同學總結的格外準確:“用戶故事是可見的商業價值,而不是功能描述”。想要更好的理解這句話,需要了解什么是好的用戶故事。好的用戶故事,可用INVEST原則來概括:

I - Independent
N - Negotiable
V - Valuable
E - Estimable
S - Small
T - Testable

我個人覺得,這個總結雖好,但不免分散注意。要我說,想把握好User Story,只用把握兩個就夠了Negotiable和Valuable。那么首先要確定什么是Negotiable的。User Story有一個流傳廣泛的書寫形式:

As <role>, I'd like to <action>, so that <benifit/value/goal>.

為了更好的獲取story還有很多最佳實踐,比如personas, 比如business process modeling,其實這些全是糖衣炮彈,As, I'd like to都是噱頭,就是為了把用戶忽悠暈了,然后圖窮匕現直取商業價值和目標。一旦商業價值確定下來,role, action都是可以negotiable。比如李默之前在文章里舉的用戶登錄的例子,輸不輸用戶明密碼?可以商量嘛!是不是只有注冊用戶可以享受個性服務?可以商量嘛!關鍵是用戶想要什么,至于怎么實現這些到頭來都是可以商量的,都是Negotiable。只有客戶的商業價值是不能商量的,也沒的商量。價值沒有了,目標不存在了,這個User Story也就沒用了,商量啥?重寫一張就好了。

因此user story又有另外一個名稱,叫requirement placeholder。就是客戶價值的"立此存照"。至于具體需求,那么就到iteration plan meeting上是商量吧,看看當時什么樣的形式(功能)才是最符合用戶需要。到此,其實大家可以看出來了,user story重點就不再How上,而是在Why上的。有了why,且可Negotiable,把握了精神,你就是按用例來寫需求又有何妨涅?

有了valuable和negotiable的想法墊底,在看看基于user story的初步計劃制定——也就是有名的prioritization——就容易理解多了。用戶根據每張卡的價值,自行比較作出決定,大體場景就跟向神仙許愿一樣。

神仙:我可以滿足你一個愿望。
我:我要榮華富貴!!!
神仙:哦,榮華富貴,那么要不要愛情涅?
我:恩,這個...那我要忠貞的愛情好了!!
神仙:哦,忠貞的愛情,那么要不要健康平安呢?
我:呃....
repeat 無數次,最終我要了一件過冬的皮猴...