讀《用戶故事與敏捷方法》

敏捷開(kāi)發(fā).png

當(dāng)我第一次聽(tīng)到敏捷的時(shí)候汁胆,看名知意梭姓,敏捷即快速。聽(tīng)聞些許公司用敏捷開(kāi)發(fā)嫩码,心里曾想誉尖,莫不是用什么高效率的開(kāi)發(fā)方式來(lái)開(kāi)發(fā)稱為敏捷開(kāi)發(fā)。

眾所周知铸题,IEEE830需求(瀑布式需求)铡恕。但是用戶故事與IEEEE830需求的區(qū)別是什么呢?

IEEEE830需求聲明關(guān)心解決方案的特征丢间,用戶故事關(guān)心用戶目標(biāo)探熔。IEEEE830需求鼓勵(lì)團(tuán)隊(duì)在寫(xiě)代碼之前完成所有的需求聲明,而不是像用戶故事那樣使用迭代的方式千劈。寫(xiě)需求聲明需要花費(fèi)很大的精力來(lái)確保文字表達(dá)了正確的意思祭刚;用戶故事鼓勵(lì)通過(guò)口頭的交流澄清細(xì)節(jié)。

一.用戶故事

1.初始化

用戶故事必須要了解的一個(gè)就是用戶故事卡墙牌。

由于用戶故事的描述信息都是以傳統(tǒng)的手寫(xiě)方式寫(xiě)在直至卡片上涡驮,所以Ron Jeffries對(duì)這三個(gè)方面起了一個(gè)非常好的以相同的英文字母開(kāi)頭的名字:

卡片(Card):用戶需求

對(duì)話(Conversion):開(kāi)發(fā)根據(jù)卡片同客戶討論用戶需求的細(xì)節(jié)

確認(rèn)(Confirm):確認(rèn)用戶需求

2.卡片

一個(gè)優(yōu)秀的用戶故事卡應(yīng)該保證有以下幾個(gè)特征:

  • 獨(dú)立的:每一個(gè)故事卡是一個(gè)很小的需求,卡與卡之間(需求與需求之間)沒(méi)有關(guān)系連接喜滨,保證卡是獨(dú)立的
  • 可以討論的:一個(gè)卡里面的內(nèi)容可以與客戶進(jìn)行交流捉捅,才是一個(gè)好的卡,不能交流的卡完全喪失了敏捷故事卡存在的意義
  • 對(duì)用戶或者客戶有價(jià)值的:記住對(duì)用戶有價(jià)值的東西虽风,才能避免多做很多沒(méi)有價(jià)值的事
  • 可以估計(jì)的:可以估計(jì)這張卡完成的時(shí)間
  • 小的:史詩(shī)級(jí)別的卡(特別大的需求卡)棒口,就如同需求文檔一般,這將會(huì)變得毫無(wú)意義辜膝,喪失了敏捷開(kāi)發(fā)的特點(diǎn)
  • 可以測(cè)試的:成功通過(guò)了測(cè)試表示開(kāi)發(fā)人員實(shí)現(xiàn)了這個(gè)故事卡无牵。
3.對(duì)話

用戶故事卡是作為對(duì)話的前提,避免了需求過(guò)于精確的假象厂抖,如果是需求文檔茎毁,做的最好的無(wú)非就是完成了需求文檔上面所有的精確的需求,然而,對(duì)話可以完成文檔背后的需求七蜘。

4.確認(rèn)

測(cè)試谭溉,用于表達(dá)和編檔故事細(xì)節(jié)并且可以確定用戶故事什么時(shí)候能夠完成。

5.意圖

故事卡的主要目的是用來(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ì)話。

總結(jié):編寫(xiě)用戶故事卡就是在一個(gè)卡上正面寫(xiě)上最好一句話就可以描述完成的小需求谈为,不要寫(xiě)太多的細(xì)節(jié)旅挤,細(xì)節(jié)自己和客戶討論(因?yàn)榭ㄉ厦鎸?xiě)上過(guò)多的細(xì)節(jié)會(huì)讓人過(guò)于關(guān)注細(xì)節(jié)而忘記討論才是正事)踢关;卡的背面則可以寫(xiě)上這個(gè)故事卡所需要的測(cè)試伞鲫。

二.用戶角色建模

1.初始化

在很多項(xiàng)目中,需求分析人員只是從一個(gè)角度寫(xiě)用戶故事签舞,這樣往往容易疏忽一些需求故事秕脓,因?yàn)楣适箩槍?duì)的并不是系統(tǒng)的一般用戶。

我們將通過(guò)用戶角色儒搭,角色建模吠架,角色映射和虛擬人物,模擬出更多的用戶搂鲫,編寫(xiě)更多不同角度細(xì)節(jié)的故事傍药,來(lái)開(kāi)發(fā)更好的軟件。

2.為什么需要用戶角色建模

因?yàn)榇蟛糠猪?xiàng)目小組只考慮到了單一的用戶類型魂仍,這樣會(huì)導(dǎo)致軟件疏忽原本需要的一些用戶的模型拐辽。

為了避免從單一用戶的角度編寫(xiě)所有故事,要識(shí)別與軟件交互的不同用戶角色擦酌。通過(guò)每個(gè)用戶角色定義的相關(guān)的特征俱诸,可以更加清楚地看到不同角色之間的不同點(diǎn)。

對(duì)于有些用戶而言赊舶,用代表人物來(lái)描述會(huì)很有幫助睁搭。虛構(gòu)人物是假想出來(lái)的用戶角色代表。他們有名字笼平,有照片园骆,還有足夠的相關(guān)的細(xì)節(jié),因?yàn)閷?duì)項(xiàng)目成員來(lái)說(shuō)寓调,很真實(shí)锌唾。

對(duì)于有些應(yīng)用程序而言,極端人物可能有助于搜集原本被遺漏的故事捶牢。

總結(jié):角色建模就是不光要考慮到最普通大眾的需求鸠珠,還要考慮到其他一些不同類型用戶的需求巍耗。

三.搜集故事

1.初始化

如何和用戶一起工作,如何通過(guò)與他們溝通來(lái)發(fā)現(xiàn)故事渐排。為什么一定需要溝通:因?yàn)樾枨缶拖耵~(yú)一樣炬太,會(huì)成長(zhǎng),也可能會(huì)死亡驯耻。

2.用戶訪談

只需問(wèn)用戶“你們需要什么是不夠的“亲族,因?yàn)榇蟛糠钟脩舨惶朴诶斫猓y以表達(dá)他們的真實(shí)需求可缚。

僅僅因?yàn)橛行﹩?wèn)題是由用戶提出的就認(rèn)為只有用戶才有資格提出解決方案霎迫,這種觀點(diǎn)是不對(duì)的。

3.搜索需求

通過(guò)開(kāi)放式的帘靡,與背景無(wú)關(guān)的提問(wèn)更容易獲得有用的答案知给,例如:”高速我你想怎么搜索工作“,就勝于”你要通過(guò)什么職位名稱來(lái)搜索工作“描姚。

我們可以通過(guò)用戶訪談涩赢,觀察用戶,問(wèn)卷調(diào)查和舉辦故事編寫(xiě)工作坊來(lái)發(fā)現(xiàn)有用的用戶故事轩勘。

總結(jié):面對(duì)用戶故事卡筒扒,如何與客戶交流來(lái)搜索到更有用的信息需求。

四.與客戶代理合作

1.初始化

我們可能期望與不同的用戶進(jìn)行接觸绊寻,這些用戶代表來(lái)產(chǎn)品的不同角度花墩,當(dāng)我們無(wú)法接觸到他們時(shí),就代表我們需要求助于用戶的代理(user proxy)澄步,他們自己可能不是用戶冰蘑,但他們?cè)陧?xiàng)目里面代表著用戶。

2.可能的用戶代理
  • 用戶的經(jīng)理
  • 開(kāi)發(fā)經(jīng)理
  • 銷(xiāo)售人員
  • 市場(chǎng)營(yíng)銷(xiāo)團(tuán)隊(duì)
  • 以前的用戶
  • 客戶
  • 領(lǐng)域?qū)<?/li>
  • 培訓(xùn)師和技術(shù)支持
  • 業(yè)務(wù)分析師或者系統(tǒng)分析師

總結(jié):因?yàn)椴豢赡芙佑|到所有的用戶驮俗,只好委托一下用戶代理來(lái)幫助我們更好地了解到用戶的真實(shí)意圖來(lái)寫(xiě)用戶故事懂缕。

五.用戶故事驗(yàn)收測(cè)試

1.初始化

驗(yàn)收測(cè)試提供了確認(rèn)故事是否被完整實(shí)現(xiàn)的基本標(biāo)準(zhǔn)。

2.測(cè)試的兩步流程
  • 將測(cè)試要點(diǎn)記錄在故事卡的背面王凑,任何時(shí)候發(fā)現(xiàn)新的測(cè)試都可以記錄在故事卡的背面搪柑。
  • 將測(cè)試要點(diǎn)編程全面的側(cè)首,這些測(cè)試可以用來(lái)演示故事已經(jīng)正確索烹,完整的實(shí)現(xiàn)了工碾。

總結(jié):驗(yàn)收測(cè)試就是寫(xiě)在用戶故事卡背面的測(cè)試,在編寫(xiě)功能代碼之前寫(xiě)下來(lái)的測(cè)試百姓,當(dāng)功能代碼編寫(xiě)完畢渊额,通過(guò)了之前寫(xiě)的測(cè)試,那么驗(yàn)收測(cè)試也算是完成了。

六.估算用戶故事

1.初始化

估算這個(gè)故事卡旬迹,需要多長(zhǎng)的時(shí)間才能夠完成火惊。

2.估算

估算的目的是知道整個(gè)項(xiàng)目的工作量,所以最后我們總是要將估算換成時(shí)間奔垦。

3.故事點(diǎn)

故事點(diǎn)沒(méi)有特別準(zhǔn)確的定義屹耐,完全根據(jù)團(tuán)隊(duì)而定。有的團(tuán)隊(duì)認(rèn)為一個(gè)故事點(diǎn)為一個(gè)理想周的工作椿猎,有的團(tuán)隊(duì)則把一個(gè)故事點(diǎn)作為故事復(fù)雜度的測(cè)量惶岭。

4.正確地使用故事點(diǎn)
  • 你的團(tuán)隊(duì)的故事點(diǎn)和我的團(tuán)隊(duì)的故事點(diǎn)事不一樣的。你的團(tuán)隊(duì)估算的故事有三個(gè)故事點(diǎn)犯眠,而我的團(tuán)隊(duì)則估算的是5個(gè)故事點(diǎn)按灶。
  • 一個(gè)故事(可能是一個(gè)史詩(shī)故事)分解成一些小故事,這些小故事估算的總和不需要與開(kāi)始那個(gè)史詩(shī)故事估算的故事點(diǎn)相同筐咧。
  • 故事點(diǎn)好似故事復(fù)雜度鸯旁,工作量或者工期的相對(duì)估算。
  • 故事點(diǎn)應(yīng)該由團(tuán)隊(duì)估算嗜浮。

總結(jié):估算故事點(diǎn)就是估計(jì)這個(gè)需求需要完成的時(shí)間羡亩。

七.發(fā)布計(jì)劃

1.初始化

大部分軟件以2-6個(gè)月為一個(gè)發(fā)布周期,這是最好的危融。

2.什么時(shí)候發(fā)布

可迭代的,由故事驅(qū)動(dòng)的過(guò)程使我們很容易確定一個(gè)日期雷袋,確定在指定日期里交付哪些哪些功能卻比較困難吉殃。

3.優(yōu)先級(jí)

對(duì)于一個(gè)項(xiàng)目來(lái)說(shuō),應(yīng)該先做最有風(fēng)險(xiǎn)的事楷怒,還是先做最有的價(jià)值的事蛋勺?

敏捷方法旗幟鮮明地支持先做最有價(jià)值的部分。

4.迭代長(zhǎng)度

短迭代允許項(xiàng)目更加頻繁地作出調(diào)整鸠删,項(xiàng)目進(jìn)度也更加透明抱完;但是每一輪迭代會(huì)有少許額外開(kāi)銷(xiāo)。加入不確定迭代長(zhǎng)度刃泡,請(qǐng)選擇迭代短的而不是迭代長(zhǎng)的巧娱,使用長(zhǎng)迭代更加容易犯錯(cuò)。

5.初始速率

執(zhí)行一輪迭代以獲取初始速率事一個(gè)很好的方法烘贴。但很多時(shí)候禁添,這個(gè)方法并不可行。

所以可以考慮使用歷史值或者猜測(cè)桨踪。

總結(jié):分好了需求的優(yōu)先級(jí)老翘,估計(jì)好了初始速率,計(jì)算好了迭代的長(zhǎng)度,大概確定好了發(fā)布日期铺峭,所做的這一系列的便是發(fā)布計(jì)劃墓怀。一個(gè)發(fā)布計(jì)劃中可能有多輪迭代。

八.迭代計(jì)劃

1.初始化

利用發(fā)布計(jì)劃卫键,我們可以將粗粒的故事分配到發(fā)布中的多輪迭代捺疼。

在開(kāi)始一輪迭代之前,再做更精細(xì)的進(jìn)一步的計(jì)劃也非常的重要永罚。

2.迭代計(jì)劃會(huì)議

整個(gè)團(tuán)隊(duì)會(huì)舉行一個(gè)迭代計(jì)劃會(huì)議為下一輪的迭代做計(jì)劃啤呼。

迭代計(jì)劃會(huì)議的內(nèi)容:

  • 討論故事
  • 從故事中分解故事
  • 開(kāi)發(fā)人員成段每個(gè)任務(wù)的職責(zé)
  • 討論所有的故事,并且接受了所有的任務(wù)后呢袱,開(kāi)發(fā)人員單獨(dú)估計(jì)他們所承擔(dān)的任務(wù)官扣,以確保他們不會(huì)做出過(guò)于樂(lè)觀的承諾。

總結(jié):迭代會(huì)議就是分解任務(wù)羞福,開(kāi)發(fā)人員選擇自己要做的任務(wù)惕蹄。

總結(jié)

用戶故事與敏捷方法其實(shí)就是拋棄了瀑布式的需求文檔,選擇了輕巧的故事卡治专,通過(guò)建立與用戶長(zhǎng)時(shí)間的需求交流卖陵,模擬了不同類型的用戶的想法,來(lái)完成相對(duì)精確需求的代碼編寫(xiě)张峰,驗(yàn)收測(cè)試的完成也代表了故事卡的完成泪蔫。

通過(guò)迭代計(jì)劃以及發(fā)布計(jì)劃來(lái)規(guī)劃了一次發(fā)布的幾輪迭代,一輪的迭代會(huì)議是對(duì)下一輪迭代的進(jìn)一步的計(jì)劃:故事的拆分喘批,故事的優(yōu)先級(jí)撩荣,迭代的時(shí)間速率,開(kāi)發(fā)人員對(duì)故事卡的自我選擇饶深。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末餐曹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子敌厘,更是在濱河造成了極大的恐慌台猴,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俱两,死亡現(xiàn)場(chǎng)離奇詭異饱狂,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)锋华,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)嗡官,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人毯焕,你說(shuō)我怎么就攤上這事衍腥』怯#” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵婆咸,是天一觀的道長(zhǎng)竹捉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)尚骄,這世上最難降的妖魔是什么块差? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮倔丈,結(jié)果婚禮上憨闰,老公的妹妹穿的比我還像新娘。我一直安慰自己需五,他們只是感情好鹉动,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著宏邮,像睡著了一般泽示。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蜜氨,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天械筛,我揣著相機(jī)與錄音,去河邊找鬼飒炎。 笑死埋哟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的厌丑。 我是一名探鬼主播定欧,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼怒竿!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起扩氢,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤耕驰,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后录豺,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體朦肘,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年双饥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了媒抠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咏花,死狀恐怖趴生,靈堂內(nèi)的尸體忽然破棺而出阀趴,到底是詐尸還是另有隱情,我是刑警寧澤苍匆,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布刘急,位于F島的核電站,受9級(jí)特大地震影響浸踩,放射性物質(zhì)發(fā)生泄漏叔汁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一检碗、第九天 我趴在偏房一處隱蔽的房頂上張望据块。 院中可真熱鬧,春花似錦折剃、人聲如沸另假。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)浪谴。三九已至,卻和暖如春因苹,著一層夾襖步出監(jiān)牢的瞬間苟耻,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工扶檐, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凶杖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓款筑,卻偏偏與公主長(zhǎng)得像智蝠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子奈梳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容