本書(shū)講解了如何去確定一個(gè)軟件系統(tǒng)應(yīng)該做什么還有軟件需求調(diào)研人員如何與不同的人溝通硫痰。需求文檔是重中之重卧斟,但是大量預(yù)先的需求收集和文檔會(huì)很容易導(dǎo)致項(xiàng)目失敗囚聚。最常見(jiàn)的是需求文檔變成軟件開(kāi)發(fā)的目的跨晴。我們不應(yīng)為了寫(xiě)文檔而寫(xiě)文檔。文檔只是為了軟件開(kāi)發(fā)更為方便的一種工具根吁,我們不應(yīng)將大部分的時(shí)間浪費(fèi)在無(wú)用的文檔撰寫(xiě)上员淫。同時(shí)大量的文檔也會(huì)出現(xiàn)記錄語(yǔ)言不準(zhǔn)備的弊病。因此我們需要學(xué)習(xí)和研究击敌,如何更加準(zhǔn)確介返,簡(jiǎn)潔的描寫(xiě)出用戶的需求。這也是這本書(shū)一直討論的問(wèn)題沃斤。
?????? ?用戶故事能夠合理的還原場(chǎng)景圣蝎,使需求調(diào)研人員感同身受,這是我的理解衡瓶,它代表了對(duì)用戶有價(jià)值的功能徘公。這時(shí)故事卡就是一種非常有用的工具。故事卡包含用戶或者日客戶有價(jià)值的功能的簡(jiǎn)短描述鞍陨,是故事的可見(jiàn)部分步淹,但客戶團(tuán)隊(duì)和開(kāi)發(fā)人員對(duì)于故事的對(duì)話更重要。在編寫(xiě)故事時(shí)诚撵,也有很多需要注意的點(diǎn),比如故事必須要對(duì)用戶或客戶有價(jià)值键闺,故事變?yōu)榭捎么a必須是可實(shí)現(xiàn)的寿烟。故事之間是獨(dú)立的,他們之間并不會(huì)有很強(qiáng)的依賴性辛燥。有用戶故事就有用戶類型筛武。這也是我們?cè)陧?xiàng)目開(kāi)發(fā)中極易忽略但又特別重要的一點(diǎn)。大部分項(xiàng)目小組只考慮單一的用戶類型挎塌,這是不可取的徘六,會(huì)導(dǎo)致軟件忽略原本需要的一些用戶類型。軟件寫(xiě)出來(lái)就是為了讓人來(lái)進(jìn)行使用的榴都,沒(méi)有了用戶待锈,軟件的存在也就沒(méi)有意義。 ???????
??????? 需求捕獲就像出海捕魚(yú)嘴高。魚(yú)有大小之分竿音,需求會(huì)隨著時(shí)間也逐漸變化和屎。需求調(diào)研人員需要做的就是將這些有捕撈價(jià)值的“魚(yú)”使用各種各樣的網(wǎng)捕捉起來(lái),棄掉無(wú)用的魚(yú)春瞬,也不能漏過(guò)任何一條有價(jià)值的魚(yú)柴信。而與需求調(diào)研人員合作的,便是用戶代理宽气。用戶能夠更好的為我們提供需求分析的案例随常,因此選好用戶代理也是非常重要的
在一個(gè)大型項(xiàng)目中,尤其是有許多用戶角色的項(xiàng)目萄涯,確定用戶故事有時(shí)讓人無(wú)從下手线罕。我發(fā)現(xiàn)最好的辦法是考慮每一個(gè)用戶角色,了解用戶使用我么軟件的目的窃判。
所以編寫(xiě)故事的時(shí)候注意以下幾點(diǎn)。第一袄琳,根據(jù)實(shí)現(xiàn)時(shí)間來(lái)確定故事規(guī)模询件,逆向?qū)W⒂谧钚枰汴P(guān)注的領(lǐng)域。通常唆樊,這意味著要把注意力放在那些即將發(fā)生的事情上宛琅,而不是放在更遠(yuǎn)的將來(lái)才發(fā)生的事情上。對(duì)股市而言逗旁,要基于故事實(shí)現(xiàn)的時(shí)間跨度嘿辟,以不同的層次來(lái)編寫(xiě)故事。例如片效,對(duì)于下面幾輪迭代的故事红伦,它們的大小應(yīng)該能夠安排進(jìn)那幾輪迭代中,而對(duì)于更遙遠(yuǎn)的故事淀衣,它們可能會(huì)更大昙读,但精準(zhǔn)度則更低。第二膨桥,不要過(guò)早設(shè)計(jì)用戶界面蛮浑,一直困擾軟件需求方法的問(wèn)題之一是將需求和解決方案混在一起。也就是說(shuō)只嚣,在陳述需求的時(shí)候沮稚,也顯式說(shuō)明或暗示了解決方案。最常見(jiàn)的情況是用戶界面册舞,這個(gè)應(yīng)該放在最后邊考慮蕴掏。第三,不要忘記意圖,不要忘記囚似,故事啦的主要目的是用來(lái)提醒開(kāi)發(fā)人員和客戶團(tuán)隊(duì)對(duì)功能進(jìn)行討論的剩拢。既然僅僅是一個(gè)提醒,就要保持它的簡(jiǎn)潔性饶唤。加入需要的細(xì)節(jié)徐伐,以便聯(lián)想到繼續(xù)對(duì)話的切入點(diǎn),但不要在故事卡上加入太多細(xì)節(jié)并以此取代對(duì)話募狂。
接下來(lái)我們就需要著手估算用戶故事了办素,首先一定要找到故事點(diǎn)。有一種可以滿足所有這些目標(biāo)的估算方法祸穷,即用故事點(diǎn)估算性穿。故事點(diǎn)有個(gè)很好的特性是團(tuán)隊(duì)可以定義自己認(rèn)為合適的故事點(diǎn)。一個(gè)團(tuán)隊(duì)可能決定定義一個(gè)故事點(diǎn)為一個(gè)理想日的工作雷滚。另一個(gè)團(tuán)隊(duì)可能定義一個(gè)故事點(diǎn)為一個(gè)理想周的工作需曾。還有一個(gè)團(tuán)隊(duì)可能把故事點(diǎn)作為故事復(fù)雜度的測(cè)量。因?yàn)楣适曼c(diǎn)有很多意義祈远,有意Joshua Kerievsky認(rèn)為故事點(diǎn)代表時(shí)間的模糊單位呆万。
我們可以將一個(gè)故事點(diǎn)的工作量看做是一個(gè)理想日的工作。我們極少會(huì)有這樣的理想日车份,但是用理想時(shí)間考慮故事有兩個(gè)好處谋减。第一,相對(duì)于用連續(xù)的時(shí)間估算扫沼,它更簡(jiǎn)單出爹。用持續(xù)時(shí)間估算破事我們考慮對(duì)時(shí)間的各種可能性影響,例如缎除,星期二全公司會(huì)議严就,星期三約了牙醫(yī),每天花幾個(gè)小時(shí)回郵件等等伴找。第二盈蛮,相較于用完全模糊單位沒(méi)用理想日估算故事點(diǎn)可使我們的估算擁有更好的依據(jù)。估算的主要目的之一是知道整個(gè)項(xiàng)目的工作量技矮,所以最后我們總是要將估算換算成時(shí)間。顯然殊轴,相較于完全模糊單位衰倦,用理想時(shí)間更簡(jiǎn)潔。
安排好故事點(diǎn)后旁理,我們需要將匯集的故事點(diǎn)轉(zhuǎn)換成項(xiàng)目的預(yù)計(jì)工程樊零。答案當(dāng)然是使用速率,迭代輪數(shù)等于理想日除以使用速率。