一、為什么要敏捷開發(fā)
要敏捷開發(fā)是因?yàn)槊艚莸奶攸c(diǎn)是團(tuán)隊(duì)能夠更加擁抱變化,這句話對(duì)應(yīng)的受益者是誰(shuí)? 我能想到最大的受益者就是業(yè)務(wù)方了。只要你不是在沖刺內(nèi)部變更,你的需求其實(shí)可以一定程度上一直處于靈活調(diào)整的live狀態(tài)。(當(dāng)然靈活的代價(jià)就是這些需求的反復(fù)帶來(lái)的團(tuán)隊(duì)效力折損也是最終會(huì)由業(yè)務(wù)方承擔(dān)的,加錢或者加時(shí)間), 然而換來(lái)的是最終成品的滿意度和確定性,那么一定程度上也是。
敏捷的迭代周期性使得項(xiàng)目的方向能夠不斷被業(yè)務(wù)方Review,這與傳統(tǒng)瀑布式的最終驗(yàn)收,一驗(yàn)定成敗相比是一個(gè)更為科學(xué)且人性化的舉措。
我們知道傳統(tǒng)瀑布基本屬于階段性封閉式開發(fā)過(guò)程,一方面需求會(huì)被定格在項(xiàng)目早期,而在初期項(xiàng)目組掌握信息量較少情況下,對(duì)需求產(chǎn)生誤解是常有的事;另一方面后續(xù)開發(fā)過(guò)程客戶參與度較小,即使中途發(fā)現(xiàn)方向偏差,往往也木已成舟,改動(dòng)代價(jià)很大, 有時(shí)甚至最后驗(yàn)收時(shí)才被發(fā)現(xiàn),項(xiàng)目被迫宣布失敗也是時(shí)有發(fā)生。
所以對(duì)于業(yè)務(wù)方來(lái)說(shuō),敏捷提供的周期性報(bào)告+反饋機(jī)制幫了業(yè)務(wù)方大忙。 “沖刺時(shí)低頭走路,沖刺完抬頭看路” 使得項(xiàng)目的成功率大大提高了。
延伸閱讀:
二、Scrum的特點(diǎn)
它獨(dú)特的短周期性沖刺確實(shí)一定程度上緩解了瀑布的原罪。
首先,”短”: 它把一個(gè)大項(xiàng)目拆成很多”故事”,把一次性評(píng)估整個(gè)大項(xiàng)目, 變成多次評(píng)估這些小”故事”,每次只評(píng)估有限的一小部分”故事”。這種方式有效地把評(píng)估精度提高,并把工作復(fù)雜度降低到了周級(jí)別,團(tuán)隊(duì)精力集中在了刀刃上。試想: 如果讓你做未來(lái)一周和未來(lái)一年的日程計(jì)劃,你對(duì)哪一個(gè)更有把握? 去執(zhí)行哪一項(xiàng)計(jì)劃時(shí)你感覺(jué)心中目標(biāo)感更強(qiáng)烈?
其次,”周期性”: 使得工作可以進(jìn)行平行迭代,什么意思? 首先不管瀑布還是敏捷,一個(gè)完整的功能多多少少還是會(huì)由需求->開發(fā)->測(cè)試 這么一個(gè)大致的順序開展的。 但不同的是敏捷的周期性賦予這些工序依然可以以固定時(shí)間差(周期) 不斷首尾相連, 重復(fù)滾動(dòng)的機(jī)會(huì), 這就使得敏捷模式下的工序可以平行開展。比如Sprint1的開發(fā)正在進(jìn)行的同時(shí), Sprint2的需求的收集和調(diào)研已經(jīng)可以同時(shí)平行開展了。 從整個(gè)項(xiàng)目的高度來(lái)看, 這種每一道工序不斷迭代, 工序間又互相平行的做法極大程度縮短了項(xiàng)目時(shí)間, 加快了項(xiàng)目的進(jìn)度,即我們所謂的敏捷的”快”。