敏捷開(kāi)發(fā)的落地實(shí)踐
![](http://image.woshipm.com/wp-files/img/92.jpg)
敏捷開(kāi)發(fā)是一種面臨迅速變化的需求快速開(kāi)發(fā)的能力,非常適合需求變化頻繁的產(chǎn)品研發(fā),可以快速的響應(yīng)需求的變更并擁抱這種變化。很多人認(rèn)為敏捷開(kāi)發(fā)只是開(kāi)發(fā)團(tuán)隊(duì)走敏捷的模式,這是一個(gè)誤區(qū),實(shí)行敏捷開(kāi)發(fā)不僅要求開(kāi)發(fā)的敏捷,也要求測(cè)試的敏捷,需求分析的敏捷,即整個(gè)軟件產(chǎn)品的研發(fā)過(guò)程都需要敏捷起來(lái),才能真正意義上實(shí)現(xiàn)敏捷。敏捷開(kāi)發(fā)模式的介紹已經(jīng)有很多,大多停留在理論層面,本文從實(shí)踐的角度,從需求規(guī)劃,產(chǎn)品開(kāi)發(fā),產(chǎn)品測(cè)試三個(gè)維度,介紹軟件產(chǎn)品研發(fā)過(guò)程如何走敏捷開(kāi)發(fā)的模式。
名稱 |
優(yōu)先級(jí) |
工作量估算 (小時(shí)) |
描述 |
備注 |
????????存款 | ??? 10 | ???????? 5 | 登錄,打開(kāi)存款界面,存入10元,轉(zhuǎn)到我的賬戶余額界面,檢查我的余額增加了10元。 | 需要UML順序圖,目前需要考慮加密的問(wèn)題。 |
??? 查看交易明細(xì) | ??? 8 | ???????? 8 | 登錄,點(diǎn)擊“交易”,存入一筆款項(xiàng),返回交易頁(yè)面,看到新的存款顯示在頁(yè)面上。 | 使用分頁(yè)技術(shù)避免大規(guī)模的數(shù)據(jù)庫(kù)查詢,和查看用戶列表的設(shè)計(jì)相似。 |
通常都把backlog存放在共享的Excel文檔里面,以便團(tuán)隊(duì)成員都可以隨時(shí)查看。一般來(lái)說(shuō)這個(gè)文檔歸產(chǎn)品經(jīng)理維護(hù),但也并不把其他團(tuán)隊(duì)成員排斥在外。開(kāi)發(fā)人員和測(cè)試人員常常要查閱這個(gè)文檔或者修改工作量估算。需要注意的是,描述Backlog的時(shí)候只需說(shuō)明要達(dá)到什么結(jié)果即可,而不能說(shuō)如何去達(dá)到。
產(chǎn)品的敏捷開(kāi)發(fā)
需求Backlog清單都列出來(lái)了之后,開(kāi)發(fā)人員需要根據(jù)排定的需求優(yōu)先級(jí),從需求池當(dāng)中選出需求排到當(dāng)前的迭代中,直到所有需求的估算工作量加起來(lái)達(dá)到迭代周期的工作量為止,一般會(huì)留一小部分時(shí)間來(lái)做為緩沖。開(kāi)發(fā)人員集體估算每個(gè)需求的工作量并維護(hù)到上述的Backlog列表中,這些都是在敏捷的迭代計(jì)劃會(huì)上完成的。通常一個(gè)迭代的開(kāi)始都是通過(guò)計(jì)劃會(huì)議來(lái)開(kāi)始的。
接下來(lái)是確定Backlog是否還需要拆分,即判定是否可以在一個(gè)迭代內(nèi)完成,或者是否可以在一天內(nèi)完成,敏捷開(kāi)發(fā)模式可以建立詳細(xì)的考核機(jī)制,每天都跟蹤之前一天的任務(wù)是否已經(jīng)完成。開(kāi)發(fā)人拆分Backlog出來(lái)的結(jié)果就是一條條的Task,然后開(kāi)發(fā)人員根據(jù)各自的任務(wù)來(lái)編寫(xiě)《產(chǎn)品系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)》,最后匯總。
這里涉及到工時(shí)估算的問(wèn)題,一般的估算方法都是讓團(tuán)隊(duì)中不同級(jí)別的成員對(duì)某個(gè)Backlog進(jìn)行估時(shí),并取某個(gè)中間值或者團(tuán)隊(duì)都可并接受的值為最終的估算工時(shí)。一般拆分的依據(jù)如下:
1、? 每個(gè)拆分出來(lái)的Task都是可單獨(dú)驗(yàn)證并上線的;
2、? 每個(gè)拆分出來(lái)的Task都是可以在單個(gè)迭代內(nèi)完成的;
每日站會(huì)可以跟蹤需求實(shí)現(xiàn)的進(jìn)度,檢查每天的工作進(jìn)展是否按照迭代計(jì)劃在進(jìn)行,永遠(yuǎn)確保資源投入在高優(yōu)先級(jí)的Backlog上;該完成而未完成的任務(wù)有哪些以及是什么原因?及時(shí)識(shí)別出對(duì)迭代中后續(xù)問(wèn)題的影響,并根據(jù)風(fēng)險(xiǎn)和應(yīng)急方案努力規(guī)避;遇到的問(wèn)題應(yīng)該由誰(shuí)來(lái)負(fù)責(zé)解決以及何時(shí)必須解決,否則會(huì)影響后續(xù)計(jì)劃中哪些條目?尤其是那些有前后依賴關(guān)系的條目;開(kāi)發(fā)過(guò)程中會(huì)出現(xiàn)對(duì)原有需求的進(jìn)一步細(xì)化,可能會(huì)和迭代計(jì)劃時(shí)討論的結(jié)論有一些差異,那么變更的內(nèi)容是否會(huì)對(duì)既定的業(yè)務(wù)需求產(chǎn)生調(diào)整?
需求變更一般發(fā)生在計(jì)劃會(huì)議之后,既定的Backlog盡可能保持穩(wěn)定;但是需求變更是很難避免的,若業(yè)務(wù)或者技術(shù)發(fā)生變化時(shí),敏捷團(tuán)隊(duì)該如何響應(yīng)呢?一般從需求的緊急程度來(lái)考慮,緊急的需要團(tuán)隊(duì)內(nèi)部開(kāi)發(fā)討論,如果能在緩沖時(shí)間內(nèi)完成的就完成掉,如果不能則需要從已安排的任務(wù)當(dāng)中挪出一部分到下個(gè)迭代。
產(chǎn)品的敏捷測(cè)試
有人說(shuō)敏捷測(cè)試是順應(yīng)敏捷開(kāi)發(fā)方法,是力求達(dá)到質(zhì)量和效率平衡的一系列的測(cè)試實(shí)踐,其實(shí)并一定要敏捷開(kāi)發(fā)了才敏捷測(cè)試,其他開(kāi)發(fā)模式下也可以采用敏捷測(cè)試。敏捷測(cè)試只是測(cè)試的一種,強(qiáng)調(diào)從用戶的角度,即從使用系統(tǒng)的用戶的角度來(lái)測(cè)試系統(tǒng)。重點(diǎn)關(guān)注持續(xù)迭代的測(cè)試新開(kāi)發(fā)的功能,而不再?gòu)?qiáng)調(diào)傳統(tǒng)測(cè)試過(guò)程中嚴(yán)格的測(cè)試階段。
所以在敏捷開(kāi)發(fā)模式下,開(kāi)發(fā)人員不是等整個(gè)迭代的任務(wù)都開(kāi)發(fā)完了才送測(cè),而是做完一個(gè)送測(cè)一個(gè)。前面也講到Backlog拆解成Task時(shí)要求每個(gè)Task都是可以單獨(dú)驗(yàn)證的,也就是說(shuō)每個(gè)Task都是可以單獨(dú)測(cè)試的,這樣測(cè)試人員可以對(duì)每個(gè)已開(kāi)發(fā)完成的Task進(jìn)行測(cè)試,及時(shí)發(fā)現(xiàn)問(wèn)題,及時(shí)改進(jìn)。這種模式下,效率高的話可以精確控制到每天的開(kāi)發(fā)結(jié)果驗(yàn)證,這樣可以確保產(chǎn)品需求都是按照計(jì)劃來(lái)進(jìn)行的,并且不會(huì)偏離需求本身。
測(cè)試人員也是從迭代計(jì)劃會(huì)議開(kāi)始參與到每個(gè)迭代當(dāng)中,對(duì)本次迭代中安排的所有需求清單編寫(xiě)測(cè)試用例,最后形成一份匯總后的《測(cè)試用例及測(cè)試報(bào)告》。在每天的站會(huì)上,測(cè)試人員可以及時(shí)告知每天的測(cè)試進(jìn)展和測(cè)試的問(wèn)題,及時(shí)幫助開(kāi)發(fā)人員修正。這樣測(cè)試人員就可以持續(xù)測(cè)試、持續(xù)反饋,整個(gè)測(cè)試的階段性會(huì)比較模糊,主要強(qiáng)調(diào)測(cè)試的速度和適應(yīng)性。
敏捷測(cè)試要求測(cè)試人員去扮演“用戶”的角色,確保產(chǎn)品滿足既定的需求;強(qiáng)調(diào)直接的溝通、協(xié)作以及團(tuán)隊(duì)責(zé)任,不太關(guān)注對(duì)缺陷的記錄與跟蹤;需要建立起有效的自動(dòng)化測(cè)試方法,對(duì)老模塊的功能用自動(dòng)化測(cè)試,新模塊用手工測(cè)試結(jié)合的方法。
從以上的內(nèi)容可以看出,一個(gè)好的高效的迭代計(jì)劃會(huì)議非常重要,可以將需求拆分成可在一個(gè)迭代內(nèi)實(shí)現(xiàn)的幾個(gè)部分,再加上每日站會(huì)的過(guò)程跟蹤,發(fā)現(xiàn)問(wèn)題及時(shí)解決,最后通過(guò)敏捷測(cè)試及時(shí)驗(yàn)證已開(kāi)發(fā)完成的任務(wù),這樣的過(guò)程基本可以保證每個(gè)需求的實(shí)現(xiàn)都是按照原先的需求規(guī)劃來(lái)的。
敏捷開(kāi)發(fā)模式下也并不是沒(méi)有文檔的要求,設(shè)計(jì)、開(kāi)發(fā)、測(cè)試這樣的過(guò)程下來(lái),會(huì)有《產(chǎn)品需求設(shè)計(jì)說(shuō)明書(shū)》、《產(chǎn)品系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)》、《測(cè)試用例及測(cè)試報(bào)告》三份文檔,而且文檔也是走敏捷的模式,每個(gè)迭代更新其中的一部分,最后合成在一起,這樣的方式有過(guò)程也有記錄,敏捷開(kāi)發(fā)照樣重視文檔的作用,也重視文檔的維護(hù),只不過(guò)比較強(qiáng)調(diào)宜少且精煉。
敏捷開(kāi)發(fā)是否深入到團(tuán)隊(duì)中,一般是根據(jù)團(tuán)隊(duì)呈現(xiàn)出來(lái)的工作氛圍、項(xiàng)目運(yùn)作狀態(tài)、團(tuán)隊(duì)成員的感性認(rèn)識(shí)等方面來(lái)評(píng)估團(tuán)隊(duì)和其開(kāi)發(fā)過(guò)程的敏捷成熟度。團(tuán)隊(duì)有共同的愿景,并且對(duì)這個(gè)愿景充滿信心的;有明確的階段目標(biāo)并且為每個(gè)成員所知曉;知道當(dāng)前計(jì)劃:做什么、何時(shí)完成、預(yù)期效果等;所有任務(wù)是低耦合的,團(tuán)隊(duì)之間緊密協(xié)作。
采用敏捷開(kāi)發(fā)模式,一定要把敏捷設(shè)計(jì)、敏捷開(kāi)發(fā)、敏捷測(cè)試連在一起,這樣才能最大限度的發(fā)揮敏捷的效用。
來(lái)源:《網(wǎng)絡(luò)傳播》2013年第8期,作者:朱軍華
- 目前還沒(méi)評(píng)論,等你發(fā)揮!