如何做好敏捷式開發(fā)?
編輯導(dǎo)語:作為一名UI/UX設(shè)計(jì)師,在工作中接觸到“敏捷”一詞時(shí),也會(huì)感覺到模式和難以理解。從需求到設(shè)計(jì)每一步都需要了解清楚,那么敏捷開發(fā)這種模式該如何做呢,我們一起來看看吧。
剛接觸敏捷時(shí)我對(duì)這種模式是不能理解的,沒有調(diào)研沒有文檔,從需求到設(shè)計(jì)用的方法和學(xué)校里所學(xué)的完全不一樣,但經(jīng)過兩年的工作后,我的認(rèn)知開始發(fā)生變化,下面我將作為一個(gè)UI/UX分享一些我對(duì)敏捷式開發(fā)的理解。
在互聯(lián)網(wǎng)行業(yè)中,一個(gè)項(xiàng)目的完整生命周期都是由一個(gè)團(tuán)隊(duì)完成的,團(tuán)隊(duì)成員也許會(huì)變化,但任何一個(gè)角色都不可或缺。
為了更好地完成共同目標(biāo),團(tuán)隊(duì)成員除了在自己負(fù)責(zé)的領(lǐng)域是專家,還需要了解其他人的工作內(nèi)容及整個(gè)團(tuán)隊(duì)的工作模式。工作模式是連接團(tuán)隊(duì)成員的一種運(yùn)作方式,要求每個(gè)人都清晰了解,并認(rèn)同。
一、敏捷式開發(fā)宣言(Agile Program Development)
起源于20世紀(jì)90年代,由開發(fā)程序員提出,是相對(duì)于傳統(tǒng)軟件開發(fā)方法(如瀑布流模型)而言的一種新軟件開發(fā)模式。這里認(rèn)為該模式不僅僅適用于開發(fā),也適用于團(tuán)隊(duì)除開發(fā)外的其他角色,因此將它視作為團(tuán)隊(duì)工作模式。下圖為敏捷開發(fā)的價(jià)值觀。
個(gè)體和互動(dòng)高于流程和工具:人是最重要的因素,敏捷提倡打破部門的概念,人與人之間面對(duì)面溝通,交流。敏捷的辦公室常常是很熱鬧的。
工作的軟件高于詳盡的文檔:看文檔是一件讓人頭疼的事,無論是需求或技術(shù)文檔,撰寫和維護(hù)都需要耗費(fèi)大量的人力,文檔的不靈活性讓其地位在敏捷開發(fā)中地位降低,因此這里的文檔要盡可能精簡(jiǎn),能用軟件替代文檔的任務(wù)首選軟件。
客戶合作高于合同談判:客戶對(duì)產(chǎn)品的需求會(huì)隨著他自己的認(rèn)知和心情變化,能從一開始就確定細(xì)節(jié)的項(xiàng)目實(shí)在太少,經(jīng)常與客戶溝通,給予反饋才能促成項(xiàng)目的成功。
響應(yīng)變化高于遵循計(jì)劃:和瀑布流中將產(chǎn)品的功能完全規(guī)劃好后集中開發(fā)不同,不斷變化的需求讓敏捷從業(yè)者制定計(jì)劃時(shí)盡可能的簡(jiǎn)化,這里可以結(jié)合MVP(Minimum Viable Product 最小可行性產(chǎn)品)的概念去理解。
每次迭代交付一個(gè)可用的最小功能,這個(gè)功能時(shí)是不完美的、簡(jiǎn)陋的,只能滿足用戶最基本的需求,然后通過后期客戶的正反饋慢慢完善功能。這種方式試錯(cuò)成本低,能快速應(yīng)對(duì)需求變化。
二、工作流程
這里簡(jiǎn)單描述自己工作中兩周為一個(gè)迭代的工作流程。
一個(gè)開發(fā)階段稱為一個(gè)Sprint(沖刺),每個(gè)Sprint開始前,都會(huì)舉行一個(gè)Planning Meeting(計(jì)劃會(huì))來共同規(guī)劃這個(gè)迭代的開發(fā)任務(wù),會(huì)議主持人一般為PM(產(chǎn)品經(jīng)理)或PO(Product Owner,產(chǎn)品負(fù)責(zé)人)。
會(huì)上,PO會(huì)向團(tuán)隊(duì)成員展示列入這個(gè)迭代開發(fā)的需求。
每一個(gè)需求都是一個(gè)或多個(gè)任務(wù)(Task),PO根據(jù)優(yōu)先級(jí)安排要開發(fā)的任務(wù),描述每個(gè)任務(wù)要達(dá)到的目標(biāo),和設(shè)計(jì)、開發(fā)、測(cè)試確認(rèn),在Scrum Master(敏捷教練,一般為技術(shù)大牛)的協(xié)作下找到任務(wù)處理人并以工時(shí)為單位預(yù)估任務(wù)完成需要的時(shí)間。
最后,團(tuán)隊(duì)成員之間聊個(gè)五毛話題增進(jìn)感情,Planning Meeting就算結(jié)束了。在接下來的兩周內(nèi),每天上午團(tuán)隊(duì)成員要開一個(gè)簡(jiǎn)短的Standing Meeting(站會(huì)),每人說明昨天做了什么,完成度如何,如有拖延是因?yàn)槭裁丛颍欠裥枰渌蓡T幫助,以及今天計(jì)劃要完成的任務(wù)。
一周下來,要開一個(gè)半程回顧會(huì),了解開發(fā)進(jìn)度,若有延遲,及時(shí)做出對(duì)應(yīng)調(diào)整。兩周下來是一個(gè)全程Review Meeting(回顧會(huì)),回顧這個(gè)迭代的完成度,并展示實(shí)現(xiàn)的功能,現(xiàn)場(chǎng)Demo。
三、部分概念理解
注:這部分示例圖來自騰訊敏捷類辦公產(chǎn)品Tapd。
1. 需求及任務(wù)(Story and Task )
需求由PO建立,是將用戶故事(User Story)簡(jiǎn)化后的產(chǎn)物,描述在什么場(chǎng)景下需要完成什么樣的功能,對(duì)開發(fā)而言就是一個(gè)開發(fā)任務(wù)(Task)。
功能比較復(fù)雜的需求往往會(huì)被拆解成多個(gè)需求,拆分到以用戶角度可接受的最小顆粒度功能作為子需求,以父子需求的方式進(jìn)行關(guān)聯(lián)。開發(fā)的角度上看可以由一個(gè)開發(fā)(Story Owner)接下這個(gè)任務(wù),再分配給其他開發(fā)人員。
2. 需求池(Backlog)
需求池里記錄著待開發(fā)的需求及優(yōu)先級(jí),優(yōu)先級(jí)按照對(duì)用戶的價(jià)值進(jìn)行排序,高的會(huì)先開發(fā)。PO在表述需求時(shí)往往不會(huì)有詳細(xì)的需求文檔,一般會(huì)用簡(jiǎn)短的文字描述在需求詳情里,再加上面對(duì)面溝通將需求傳遞給設(shè)計(jì)或是開發(fā)。
3. 故事板(Story Board)
以卡片的形式展示當(dāng)前迭代的進(jìn)度,包括任務(wù)內(nèi)容,優(yōu)先級(jí),處理人,狀態(tài)等信息。PO可從這里清楚地看到團(tuán)隊(duì)的進(jìn)度,開發(fā)也可以通過篩選來了解自己各種狀態(tài)的開發(fā)任務(wù)。
4. 工時(shí)
工時(shí)是影響一個(gè)迭代完成度的重要因素,涉及到任務(wù)處理人對(duì)工時(shí)的預(yù)估,如果實(shí)際工時(shí)高于預(yù)估,勢(shì)必會(huì)造成任務(wù)延期或開發(fā)加班,影響整個(gè)迭代的完成度,如果實(shí)際工時(shí)低于預(yù)估,便會(huì)造成人力資源的浪費(fèi),影響效率。
準(zhǔn)確的預(yù)估工時(shí)需要開發(fā)人員有豐富的經(jīng)驗(yàn),掌握業(yè)務(wù)邏輯,了解自己的開發(fā)能力,此外工時(shí)還包括安全時(shí)間,以處理特殊情況。
一般每個(gè)開發(fā)一周有略低于40(5×8)個(gè)工時(shí)的任務(wù)量。處理Bug所用時(shí)間不算在工時(shí)內(nèi),Bug秉承優(yōu)先解決,誰開發(fā)誰解決的原則。
四、成也靈活,敗也靈活
敏捷的特點(diǎn),優(yōu)點(diǎn),缺點(diǎn)都是靈活。
優(yōu)點(diǎn):
- 應(yīng)對(duì)需求的靈活性讓功能的開發(fā)時(shí)間縮短,可盡早得到市場(chǎng)的反饋,提高規(guī)避風(fēng)險(xiǎn)的能力
- 人與人之間的直接溝通能充分利用時(shí)間,工作效率提高
缺點(diǎn):
- 面對(duì)面溝通讓信息傳遞的質(zhì)量隨傳遞人數(shù)的增加而降低,從產(chǎn)品到設(shè)計(jì)到開發(fā)再到測(cè)試的信息傳遞會(huì)出現(xiàn)偏差,這讓敏捷在大項(xiàng)目大團(tuán)隊(duì)中的實(shí)施變得困難
- 較少的文檔在團(tuán)隊(duì)人員過多,人員變動(dòng)或項(xiàng)目持續(xù)時(shí)間較長(zhǎng)時(shí)無法全面了解到產(chǎn)品的全貌,溝通成本增加
五、總結(jié)
- 敏捷是一種理念,原則,價(jià)值觀,不同的團(tuán)隊(duì)在實(shí)行這個(gè)模式都是不同的。
- 實(shí)行敏捷的目的是為了幫助團(tuán)隊(duì)高效地合作溝通,過程中的去文檔,去流程,面對(duì)面溝通都只是手段,最后還是以結(jié)果為導(dǎo)向。切記敏捷流于形式,糾結(jié)于步驟!
- 敏捷要求團(tuán)隊(duì)成員有很強(qiáng)的主觀能動(dòng)性,并能主動(dòng)推進(jìn)整個(gè)項(xiàng)目前進(jìn),當(dāng)他人停滯不前時(shí),PUSH他們。
- 敏捷團(tuán)隊(duì)的建立需要時(shí)間和經(jīng)驗(yàn)積累,當(dāng)任務(wù)出現(xiàn)問題時(shí)主動(dòng)承擔(dān)責(zé)任優(yōu)于互相推諉,成員間切忌心存芥蒂,這樣才能保持團(tuán)隊(duì)的凝聚力。
本文由 @B端交互設(shè)計(jì)師 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于CC0協(xié)議
- 目前還沒評(píng)論,等你發(fā)揮!