極限編程(XP)倡導者Bill Wake描述用戶故事有以下6個屬性,簡稱INVEST原則,能夠做爲咱們擬定用戶故事的現實參考。編程
一、獨立的(Independent)lua
獨立性和傳統軟件工程的鬆耦合的概念有殊途同歸之妙。強調用戶故事與用戶故事之間不要有太多的依賴,由於有依賴的不一樣故事,可能優先級是不一樣,這就會給故事的工做量估計,以及故事在開發迭代的排期形成困擾。開發
二、可協商的(Negotiable)table
故事是能夠協商,故事卡是用戶功能的簡單描述,細節須要在客戶與開發團隊的討論中產生。軟件
三、有價值的(Valuable)軟件工程
故事是以客戶或用戶的視角來書寫,一般是業務語言而非技術語言。在故事中天然體現這個功能具體給用戶帶來的價值是什麼。im
四、可估算的(Estimate)技術
每一個故事都對應估計的故事點數,即工做量應該是能夠度量的。開發人員能夠根據所業務領域的知識和相關技術經驗來估計每一個用戶故事可能對應的故事點數。基於每一個用戶故事的故事點數的估算,確保歸入每次迭代的故事的總故事點數不會超過開發團隊的速率,即處理能力。經驗
五、小的(Small)tab
每一個故事能夠小到在一次開發迭代中就能夠完成。合適的故事大小最終取決於團隊的速率,以及所使用的技術。咱們能夠考慮把一些大的史詩故事經過某些規則分解爲更小的可在一個迭代中就能夠完成的小的故事。
六、可測量的(Testable)
故事必須是可測量的,這個和每一個故事必須對應驗收條件是息息相關的。可度量的驗收指標是不可少的,好比系統的可用性爲99.99%,99%的狀況下,打開一個頁面的時間不能超過2秒等。