書接上回~~~?故事點(diǎn)燃盡圖有什么用
為了能夠得到團(tuán)隊(duì)的真實(shí)進(jìn)度,我們應(yīng)該采用故事點(diǎn)燃盡圖來跟蹤真實(shí)的復(fù)合DOD標(biāo)準(zhǔn)的進(jìn)度盟庞。但是敏捷團(tuán)隊(duì)在轉(zhuǎn)型初期,采用故事點(diǎn)來跟蹤進(jìn)度的時(shí)候吴超,往往會(huì)發(fā)現(xiàn)故事點(diǎn)很難在迭代的早期下降松却,如下圖:
雖然很努力的按照標(biāo)準(zhǔn)的形式開展了幾個(gè)會(huì)議辕近,但是每次到了迭代執(zhí)行的時(shí)候介褥,總是不能讓故事點(diǎn)早一點(diǎn)開始下降吮廉。
可以說衡量一個(gè)團(tuán)隊(duì)是否真正的采用了敏捷的方式在工作逾礁,一個(gè)非常重要的標(biāo)志就是團(tuán)隊(duì)的故事點(diǎn)燃盡圖可以在迭代早期就進(jìn)行下降说铃。如下圖:
看到這樣的燃盡線,說明團(tuán)隊(duì)確實(shí)了理解敏捷中最最核心的一個(gè)思想嘹履,為客戶盡早交付有價(jià)值的可工作的軟件腻扇。到這個(gè)時(shí)候,基本上團(tuán)隊(duì)就可以自我成長和持續(xù)改進(jìn)了砾嫉。
那么幼苛,到底做什么、怎么做才能在迭代早期就讓故事點(diǎn)下降焕刮,并且在進(jìn)行中能夠持續(xù)下降呢舶沿?有很多的團(tuán)隊(duì)苦苦掙扎,到處探索配并,終是不得要領(lǐng)括荡。以至于到最后心里默默的會(huì)說,敏捷就是個(gè)形式溉旋,沒有什么用處畸冲。
~~~~~~~~~~~~~~~ 分割線 ~~~~~~~~~~~~~~~~~
今天給大家看一個(gè)例子,來看看如何讓故事點(diǎn)早點(diǎn)下降低滩。
“小馬召夹,最近在做什么功能呀岩喷?”恕沫,“哦,教練纱意,我們最近在開發(fā)一個(gè)新功能婶溯,正好來看看我們拆好的故事,怎么樣?比之前拆得細(xì)多了吧 :) ”
∑"額~褐筛,這是拆好了?"叙身,“是的渔扎,看看我們這次拆得怎么樣?”
“這是什么功能呀信轿?看起來很神秘的樣子”晃痴,“哦,給你看看我們的界面财忽,它長這個(gè)樣子倘核。我們只要把上面的任務(wù)做完,下面這個(gè)界面就可以用了”即彪。
“嗯紧唱,一個(gè)好的用戶故事,應(yīng)該是能夠看出他為用戶提供的什么樣的功能隶校。能給我解釋解釋這個(gè)界面和拆好的任務(wù)之間是什么關(guān)系嗎漏益?”,“好的深胳,我來給你解釋解釋”遭庶。~~~~一頓解釋~~~~稠屠。
“哦峦睡,我明白了。這是一個(gè)三維大樓的模型权埠,要對里面的一個(gè)個(gè)房間進(jìn)行裝飾材料的布置榨了,對吧”,“嗯攘蔽,是的龙屉。是這個(gè)功能。不過由于房間里面有很多的墻呀/梁呀/柱子呀/板子呀還有踢腳線呀满俗,所以得設(shè)置好它們的關(guān)系”
“原來是這樣转捕,那這個(gè)用戶故事得改改,改成用戶能看懂的描述唆垃,那么你的這個(gè)功能的用戶是誰呀五芝?”,“哦辕万,是預(yù)算員枢步,做工程預(yù)算的”沉删。
“OK, 那比如說子任務(wù)里面有一個(gè)柱布置,那用預(yù)算員能聽懂的話來描述這個(gè)功能醉途,怎么說呢矾瑰?”,“我想想隘擎,~~~殴穴,描述成這樣?"
作為預(yù)算員货葬,我希望對當(dāng)前房間內(nèi)的柱子進(jìn)行統(tǒng)一的墻面裝修
“哦推正,這樣。那做了這個(gè)功能對于預(yù)算員有什么用呢宝惰?”植榕,“哦,是這樣尼夺。原來預(yù)算員要對每一面墻尊残、柱子什么的一個(gè)個(gè)的把裝修材料布置上去,一棟樓里面其實(shí)有很多相同的戶型淤堵,裝修其實(shí)差不多的寝衫,這樣預(yù)算員就的做好多的重復(fù)勞動(dòng),所以就提出了這個(gè)功能來幫助他們拐邪∥恳悖”
“了解了,能用一句話描述下這個(gè)功能對預(yù)算員有什么價(jià)值嗎扎阶?”汹胃,“我試試,應(yīng)該說是減少重復(fù)勞動(dòng)东臀?”
“也可以着饥,減少重復(fù)勞動(dòng)反過來怎么描述呢?”惰赋,“那叫做加快完成速度宰掉?”,“~~赁濒,再想想”轨奄,“那要不就說提高工作效率?”拒炎,“也可以挪拟,不過有點(diǎn)太文縐縐的了。想想站在預(yù)算員的角度枝冀,對他個(gè)人有什么好處”舞丛,“嗯~~~耘子,那就是他可以早點(diǎn)完成大樓的裝修工作”果漾,“差不多球切,那把這個(gè)價(jià)值加到用戶故事的最后面吧∪拚希”
作為預(yù)算員吨凑,我希望對當(dāng)前房間內(nèi)的柱子進(jìn)行統(tǒng)一的墻面裝修,以便可以快速完成裝修布置任務(wù)
“哦户辱,我好像有點(diǎn)明白了鸵钝,這就可以做為一個(gè)用戶故事,有用戶庐镐,有功能恩商,還有價(jià)值,而且用戶還能看懂”必逆。
“是的怠堪,這就是敏捷里的神器,通過用戶故事來描述功能名眉,讓用戶/產(chǎn)品經(jīng)理/研發(fā)同學(xué)都能弄懂是什么意思粟矿。研發(fā)同學(xué)圍繞著用戶故事來組織開發(fā)任務(wù),這樣才可以用一個(gè)語言描述同一個(gè)事情”损拢,“哦陌粹,了解”。
“你再看看你上面最初拆解好的任務(wù)表福压,看出差別了嗎掏秩?”,“~~~荆姆,~~~哗讥,~~~我們研發(fā)能看懂”“恚“再看看”杆煞,“嗯,站在預(yù)算員的角度肯定不好懂了”腐泻,“那產(chǎn)品經(jīng)理呢决乎?”,“他們需要我們給解釋解釋就對應(yīng)上了”派桩,“這就是差別构诚!,多一次信息的轉(zhuǎn)換就會(huì)損失一層含義铆惑。所以才要使用用戶故事來對外溝通范嘱,對內(nèi)管理好研發(fā)任務(wù)”送膳。
“教練,我理解了這個(gè)含義了丑蛤。不過用用戶故事怎么能管理好開發(fā)任務(wù)呢叠聋?你看看這個(gè)界面,左邊是不同的房間受裹,中間是每個(gè)房間里面不同構(gòu)件的分類(墻梁板柱)碌补,下面是這些房間和分類的具體屬性,右下角還有一個(gè)各種構(gòu)件是否需要統(tǒng)一布置的一個(gè)配置界面棉饶。剛才那么寫故事好像不對呀”厦章。“嗯~那你覺得怎么寫才合適呢照藻?”
“我覺的應(yīng)該這樣”
左邊的房間定義一個(gè)故事袜啃,就叫做:房間和房間屬性的管理
中間的構(gòu)建定義一個(gè)故事,叫做:房間內(nèi)構(gòu)件和屬性的管理
右邊的構(gòu)建的配置也定義一個(gè)故事幸缕,叫做:布置設(shè)置
“這樣才能和研發(fā)的任務(wù)對應(yīng)上群发!所以前面的那個(gè)故事應(yīng)該拆成這三個(gè)才對”。
“原來你是這么想的呀冀值,如果這樣的話也物,比如說我們把你拆好的第一個(gè)故事房間和房間屬性做完了,對于用戶-預(yù)算員來說有什么價(jià)值嗎列疗?”滑蚯,“當(dāng)然有啦,預(yù)算員可以定義和管理房間了呀”抵栈。
“再想想告材,我們發(fā)掘出來的用戶價(jià)值是?”古劲,“是快速完成裝修布置任務(wù)”斥赋。
“那么,可以管理房間這個(gè)功能對于預(yù)算員完成裝飾布置有直接的價(jià)值嗎产艾?”疤剑,“直接價(jià)值?那還不行闷堡,只是完成了第一步隘膘。還要選構(gòu)件,進(jìn)行構(gòu)建設(shè)置杠览,然后才能一個(gè)個(gè)房間去布置裝修材料”
“所以呀弯菊,這個(gè)只能算一個(gè)開發(fā)任務(wù),而不能算用戶故事踱阿,因?yàn)樗鼘τ谧罱K用戶沒有產(chǎn)生價(jià)值管钳,也沒有辦法拿去找真正的客戶做驗(yàn)證钦铁,你總不好意思拿著一個(gè)半成品功能去驗(yàn)證吧〔牌幔”牛曹,“那倒是,可以這么想的話栽烂,要對用戶有價(jià)值躏仇,那我就得把所有的這些房間裝修布置的功能全部做完才能算作一個(gè)用戶故事了恋脚。這么大一個(gè)故事怎么可能在迭代前幾天就完成呢腺办?”
“嗯,你前面的想法是正確的糟描,我們做功能要想著做完以后能夠拿去給用戶去演示怀喉,也就是代表著用戶故事是要有用戶價(jià)值的才算一個(gè)真正用戶故事。在這個(gè)前提下船响,要想做到迭代內(nèi)盡早交付躬拢,就需要想各種辦法對這個(gè)故事進(jìn)行拆分”
“哦,那其實(shí)前面我們已經(jīng)拆分過了见间,把房間里面的構(gòu)件拆出來變成一個(gè)個(gè)故事聊闯,比如可以把柱子的裝修和踢腳的裝修功能單獨(dú)定義”
作為預(yù)算員, 我希望將當(dāng)前房間內(nèi)所有的柱統(tǒng)一進(jìn)行墻面裝修, 以便提高房間內(nèi)所有柱的墻面裝修布置效率
作為預(yù)算員, 我希望將當(dāng)前房間內(nèi)所有的柱統(tǒng)一進(jìn)行踢腳裝修, 以便提高房間內(nèi)所有柱的踢腳裝修布置效率
“不錯(cuò),是這個(gè)套路”米诉,“那教練菱蔬,還有一個(gè)配置的界面是不是要單獨(dú)寫一個(gè)故事呢?像下面這樣”
“這還是要回到業(yè)務(wù)史侣,預(yù)算員在對房間內(nèi)的各個(gè)構(gòu)件到底怎么布置都需要在這個(gè)界面進(jìn)行配置拴泌,但是單獨(dú)配置完對于用戶來說,算是完成了裝修布置任務(wù)了嗎惊橱?”蚪腐,“那不算,可這塊功能背后的規(guī)則也很復(fù)雜呀税朴,不算故事的話回季,放到哪個(gè)故事里也太大了呀?”
“我們還是要想辦法在保證用戶故事對于預(yù)算員有價(jià)值的前提下正林,進(jìn)行拆解泡一。來看看上面這配置界面里面包含了各種構(gòu)件類型,我們能不能把它們一一拆解出來卓囚,合并到其他故事里面去瘾杭。比如,界面里面有關(guān)于柱的配置(第六行/第七行)哪亿,我們把它單獨(dú)拆出來放入到下面這個(gè)故事里面去”
作為預(yù)算員, 我希望將當(dāng)前房間內(nèi)所有的柱統(tǒng)一進(jìn)行墻面裝修, 以便提高房間內(nèi)所有柱的墻面裝修布置效率
≈嗨浮-柱構(gòu)件窗口功能(構(gòu)件的增刪改查)
∠桶省-柱構(gòu)件屬性功能(屬性的調(diào)整)
-配置窗口里面柱的配置(其他配置先不顯示或灰掉)
“怎么樣讨阻,這樣一個(gè)用戶故事就和他的幾個(gè)開發(fā)任務(wù)緊密關(guān)聯(lián)起來了”芥永,“這樣做也可以,但是對于研發(fā)來說钝吮,我們之前都是一塊塊開發(fā)的埋涧,這樣不符合開發(fā)習(xí)慣∑媸荩”
“那么這樣做可以行的通嗎棘催?”
“可以是可以,但是就是感覺有重復(fù)工作量耳标,本來一個(gè)窗口醇坝,開發(fā)完就完了,這么拆的話次坡,要來來回回的在這里改代碼呼猪,還有重復(fù)測試,感覺浪費(fèi)了呀砸琅?”
“~~~你再想想宋距,這樣做真的是浪費(fèi)了嗎?~~~”
要開會(huì)了~症脂,欲知后事如何谚赎,且聽再下回分解。