引子
在有些公司其實(shí)也會(huì)使用到敏捷管理,敏捷開發(fā),也就是Scrum,這個(gè)在一些外企使用比較多,國內(nèi)公司比較少見,我曾經(jīng)在外企呆過用的就是敏捷方式。那么在這里我們也對其進(jìn)行了解一下即可,畢竟有時(shí)候面試的時(shí)候可能會(huì)問起你,你也不要一問三不知,知道一些理念概念就可以了。
傳統(tǒng)開發(fā):從設(shè)計(jì)到編碼,從測試到交付,每個(gè)階段都必須完成,才能進(jìn)入下一個(gè)階段。這個(gè)是瀑布式開發(fā),他已經(jīng)過時(shí)了,這也是傳統(tǒng)工業(yè)的生產(chǎn)模式,在IT互聯(lián)網(wǎng)領(lǐng)域中早已經(jīng)不適用了。
舉個(gè)例子,平時(shí)去飯店吃飯,我點(diǎn)完菜都是逐個(gè)上菜的吧,但是大年夜飯店里吃年夜飯,大多都是套餐,都已經(jīng)做好了,你說要上菜,他就啪啪啪的全部上菜了,他不管你點(diǎn)了10個(gè)還是20個(gè)菜,都是一次性上的,你就很郁悶啊,就不能分開了,一個(gè)一個(gè)的上菜嗎,飯桌都放不下。
那么這個(gè)例子其實(shí)就是傳統(tǒng)開發(fā)模式,他交付的時(shí)候是把所有的內(nèi)容全部交付的,其實(shí)分開了單獨(dú)交付,也是沒問題的。
我們現(xiàn)在做產(chǎn)品,并不是把所有的計(jì)劃內(nèi)的功能全部實(shí)現(xiàn)以后,才上線的,如果這么做,市場份額就稀釋了,黃花菜都涼了。所以現(xiàn)在做項(xiàng)目都是分迭代期的,一期二期三期這么做下去。每周再分小迭代,修修補(bǔ)補(bǔ)或者做點(diǎn)新功能,逐步迭代,這樣才是最佳的上菜方式。畢竟我們不能一口氣吃成胖子嘛。
敏捷開發(fā)
所以這就引入了敏捷開發(fā)。什么是敏捷開發(fā)呢?如下:
敏捷開發(fā)是以用戶的需求進(jìn)化為核心的,以人為本,采用迭代、循序漸進(jìn)的方法進(jìn)行軟件開發(fā)。在敏捷開發(fā)中,軟件項(xiàng)目在構(gòu)建初期被切分成多個(gè)子項(xiàng)目(或者說子業(yè)務(wù),微服務(wù)),各個(gè)子項(xiàng)目也都需要具備可測試、可集成、可運(yùn)行的特征,本質(zhì)上就是把一個(gè)大項(xiàng)目分為多個(gè)相互聯(lián)系,但也可獨(dú)立運(yùn)行的小項(xiàng)目,并且分別單獨(dú)完成,在這個(gè)過程中軟件一直處于可使用狀態(tài),每個(gè)子項(xiàng)目子功能都可以持續(xù)迭代、持續(xù)交付。
通俗點(diǎn)來講,就是敏捷開發(fā)并不是一昧的追求完美的設(shè)計(jì)、完美的編碼、完美的產(chǎn)品。而是在短期內(nèi),以一個(gè)小周期進(jìn)行開發(fā)產(chǎn)品的核心功能,盡早發(fā)布第一個(gè)可用版本,然后再后續(xù)的項(xiàng)目周期中,按照需求再不斷迭代升級,完善產(chǎn)品。這個(gè)其實(shí)在之前的課程中我們也有提到過,比如最終版鋼鐵俠,他也是一步一步迭代過來的,根據(jù)需求去進(jìn)化;還有現(xiàn)如今的淘寶,也是從最初期慢慢演變過來的。又或者說架構(gòu),其實(shí)本質(zhì)也是慢慢的演變的,并不是一上來做項(xiàng)目就是選用一個(gè)高逼格的架構(gòu),越這么做越死得快。
Scrum
那么再來看Scrum,這又是啥意思呢?
我們這么做比喻,我們把敏捷開發(fā)比作MVC模式,那么MVC模式有很多框架呀,比如Struts,springmvc,springboot等,都是,這些都是基于MVC模式的基于這個(gè)理念的實(shí)現(xiàn)框架,我們要實(shí)現(xiàn)MVC模式只需要運(yùn)用選擇其中一個(gè)框架即可。而Scrum就是框架,就是敏捷開發(fā)的一個(gè)實(shí)現(xiàn),使用這個(gè)管理框架就可以了。當(dāng)然除了Scrum以外,還有極限編程啊等等。當(dāng)然scrum是最為流行的一種。
Scrum 術(shù)語
Screm中有一些術(shù)語,是需要了解一下的:
- Sprint:沖刺周期,其實(shí)就是迭代期,一般來說2-4周,主要看公司的情況。我所經(jīng)歷過的,是1-2周,最快1周,如果任務(wù)多,那么就2周,但是不能超過兩周,哪怕分為兩個(gè)sprint也可以。
- User Story:用戶的業(yè)務(wù)需求。也就是Sprint的目標(biāo)。比如要開發(fā)購物車,下單,結(jié)算付款功能,這些都是。他是一個(gè)用戶行為的整個(gè)業(yè)務(wù)流程。
- Task:把User Story中的需求拆分為多個(gè)任務(wù)點(diǎn),其實(shí)就是WBS分解,分解為多個(gè)task以后,我們可以分配給不同的團(tuán)隊(duì)成員去執(zhí)行開發(fā)。
- Backlog:需求列表,可以按照需求的優(yōu)先級或者需求的商業(yè)價(jià)值排序,往往先實(shí)現(xiàn)上層高優(yōu)先級,然后再迭代下層需求列表。每一個(gè)需求都可以是一個(gè)sprint。
- Daily Meeting:每日站會(huì),每天早上團(tuán)隊(duì)站起來開會(huì),匯總每個(gè)人的今日任務(wù),目的是為了更好的監(jiān)控和追蹤項(xiàng)目進(jìn)度。站著開會(huì)是為了更加有效,不要說廢話,提高開會(huì)效率。
- Sprint Review Meeting:沖刺評審會(huì)議,演示開發(fā)完后的成果。
- Sprint Burn Down:沖刺燃盡圖,查看任務(wù)完成的情況,之前在給公司做內(nèi)訓(xùn)的時(shí)候有講過,后面有時(shí)間再寫個(gè)帖子聊聊。
- Release:發(fā)布,當(dāng)前的迭代期完成,項(xiàng)目可以發(fā)布一個(gè)新版本。
Scrum 流程
以上的流程其實(shí)也可以通過如下圖進(jìn)行匯總:
(圖片來自百度搜索)
如圖中所示,首先產(chǎn)品負(fù)責(zé)人或者產(chǎn)品經(jīng)理,會(huì)整理用戶需求,也就是根據(jù)User Story來設(shè)計(jì)的,隨后產(chǎn)出產(chǎn)品需求列表,這個(gè)時(shí)候有很多,我們往往拿出一部分計(jì)劃,作為一個(gè)迭代期去做,也就是沖刺需求列表,一般來說這個(gè)節(jié)點(diǎn)也會(huì)有評審會(huì)議或者計(jì)劃會(huì)議,根據(jù)項(xiàng)目計(jì)劃去進(jìn)行沖刺的排期。隨后拿到?jīng)_刺列表以后,這個(gè)時(shí)候項(xiàng)目經(jīng)理就可以帶著團(tuán)隊(duì)去執(zhí)行了,假設(shè)迭代周期為兩周,那么這兩周內(nèi)主要任務(wù)就是開發(fā)和測試了。當(dāng)然每天也會(huì)有每日站會(huì),項(xiàng)目經(jīng)理通過項(xiàng)目管理工具或者也可以配合燃盡圖來監(jiān)控任務(wù)。當(dāng)這個(gè)迭代節(jié)結(jié)束以后,那么就可以發(fā)布這個(gè)迭代期的成果了,當(dāng)然發(fā)布前后,我們也需要進(jìn)行沖刺評審會(huì)議和回顧會(huì)議。那么這一整個(gè)就是scrum的執(zhí)行流程。
Scrum 場景
使用Scrum一般來說我們可以用一個(gè)大的磁性畫板,把任務(wù)進(jìn)行綜合監(jiān)控(我們采用的是磨砂玻璃面板,在團(tuán)隊(duì)辦公的最前面,每天進(jìn)公司就能看到 )。第一欄可以寫上任務(wù)的狀態(tài),一般來說可以有:
- 待開發(fā)
- 開發(fā)中
- 待測試
- 測試中
- 完成
- 可以根據(jù)實(shí)際情況進(jìn)行分類擴(kuò)展都是可以的。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。