敏捷實(shí)踐
1.我們最優(yōu)先要做的是通過(guò)盡早的溉潭、持續(xù)的交付有價(jià)值的軟件來(lái)使客戶滿意净响。
MIT Sloan 管理評(píng)論雜志刊登過(guò)一篇論文,分析了對(duì)于公司構(gòu)建高質(zhì)量產(chǎn)品方面有幫助的軟件開(kāi)發(fā)實(shí)踐喳瓣。該論文發(fā)現(xiàn)了很多對(duì)于最終系統(tǒng)質(zhì)量有重要影響的實(shí)踐馋贤。其中一個(gè)實(shí)踐表明,盡早地交付具有部分功能的系統(tǒng)和系統(tǒng)質(zhì)量之間具有很強(qiáng)的相關(guān)性畏陕。該論文指出配乓,初期交付的系統(tǒng)中所包含的功能越少,最終交付的系統(tǒng)的質(zhì)量就越高。
該論文的另一項(xiàng)發(fā)現(xiàn)是犹芹,以逐漸增加功能的方式經(jīng)常性地交付系統(tǒng)和最終質(zhì)量之間有非常強(qiáng)的相關(guān)性崎页。交付得越頻繁,最終產(chǎn)品的質(zhì)量就越高腰埂。
敏捷實(shí)踐會(huì)盡早地飒焦、經(jīng)常地進(jìn)行交付。我們努力在項(xiàng)目剛開(kāi)始的幾周內(nèi)就交付一個(gè)具有基本功能的系統(tǒng)屿笼。然后牺荠,我們努力堅(jiān)持每?jī)芍芫徒桓兑粋€(gè)功能漸增的系統(tǒng)。
如果客戶認(rèn)為目前的功能已經(jīng)足夠了驴一,客戶可以選擇把這些系統(tǒng)加入到產(chǎn)品中休雌。或者肝断,他們可以簡(jiǎn)單地選擇再檢查一遍已有的功能杈曲,并指出他們想要做的改變。
2.即使到了開(kāi)發(fā)的后期胸懈,也歡迎改變需求担扑。敏捷過(guò)程利用變化來(lái)為客戶創(chuàng)造競(jìng)爭(zhēng)優(yōu)勢(shì)。
這是一個(gè)關(guān)于態(tài)度的聲明趣钱。敏捷過(guò)程的參與者不懼怕變化魁亦。他們認(rèn)為改變需求是好的事情,因?yàn)槟切└淖円馕吨鴪F(tuán)隊(duì)已經(jīng)學(xué)到了很多如何滿足市場(chǎng)需要的知識(shí)羔挡。
敏捷團(tuán)隊(duì)會(huì)非常努力地保持軟件結(jié)構(gòu)的靈活性洁奈,這樣當(dāng)需求變化時(shí),對(duì)于系統(tǒng)造成的影響是最小的绞灼。
3.經(jīng)常性地交付可以工作的軟件利术,交付的間隔可以從幾個(gè)星期到幾個(gè)月,交付的時(shí)間間隔越短越好低矮。
我們交付可以工作的軟件(working software )印叁,并且盡早地(項(xiàng)目剛開(kāi)始很少的幾周后)、經(jīng)常性地(此后每隔很少的幾周)交付它军掂。我們不贊成交付大量的文檔或者計(jì)劃轮蜕。我們認(rèn)為那些不是真正要交付的東西。我們關(guān)注的目標(biāo)是交付滿足客戶需要的軟件蝗锥。
4.在整個(gè)項(xiàng)目開(kāi)發(fā)期間跃洛,商務(wù)人員和開(kāi)發(fā)人員必須天天都工作在一起。
為了能夠以敏捷的方式進(jìn)行項(xiàng)目的開(kāi)發(fā)终议,客戶汇竭、開(kāi)發(fā)人員以及涉眾之間就必須要進(jìn)行有意義的葱蝗、頻繁的交互。軟件項(xiàng)目不像發(fā)射出去就能夠自動(dòng)導(dǎo)航的武器细燎,必須要對(duì)軟件項(xiàng)目進(jìn)行持續(xù)不斷地引導(dǎo)两曼。
5.圍繞被激勵(lì)起來(lái)的個(gè)體來(lái)構(gòu)建項(xiàng)目。給他們提供所需的環(huán)境和支持玻驻,并且信任他們能夠完成工作悼凑。
在敏捷項(xiàng)目中,人被認(rèn)為是項(xiàng)目取得成功的最重要的因素璧瞬。所有其他的因素——過(guò)程佛析、環(huán)境、管理等等——都被認(rèn)為是次要的彪蓬,并且當(dāng)它們對(duì)于人有負(fù)面的影響時(shí),就要對(duì)它們進(jìn)行改變捺萌。例如档冬,如果辦公環(huán)境對(duì)團(tuán)隊(duì)的工作造成阻礙,就必須對(duì)辦公環(huán)境進(jìn)行改變桃纯。如果某些過(guò)程步驟
對(duì)團(tuán)隊(duì)的工作造成阻礙酷誓,就必須對(duì)那些過(guò)程步驟進(jìn)行改變。
6.在團(tuán)隊(duì)內(nèi)部态坦,最具有效果并且富有效率的傳遞信息的方法盐数,就是面對(duì)面的交談。
在敏捷項(xiàng)目中伞梯,人們之間相互進(jìn)行交談玫氢。首要的溝通方式就是交談。也許會(huì)編寫文檔谜诫,但是不會(huì)企圖在文檔中包含所有的項(xiàng)目信息漾峡。敏捷團(tuán)隊(duì)不需要書面的規(guī)范、書面的計(jì)劃或者書面的設(shè)計(jì)喻旷。
團(tuán)隊(duì)成員可以去編寫文檔生逸,如果對(duì)于這些文檔的需求是迫切并且意義重大的,但是文檔不是默認(rèn)的溝通方式且预。默認(rèn)的溝通方式是交談槽袄。
7.工作的軟件是首要的進(jìn)度度量標(biāo)準(zhǔn)。
敏捷項(xiàng)目通過(guò)度量當(dāng)前軟件滿足客戶需求的數(shù)量來(lái)度量開(kāi)發(fā)進(jìn)度锋谐。它們不是根據(jù)所處的開(kāi)發(fā)階段遍尺、已經(jīng)編寫的文檔的多少或者已經(jīng)創(chuàng)建的基礎(chǔ)設(shè)施( infrastructure)代碼的數(shù)量來(lái)度量開(kāi)發(fā)進(jìn)度的。
只有當(dāng)30%的必須功能可以工作時(shí)涮拗,才可以確定進(jìn)度完成了30%狮鸭。
8.敏捷過(guò)程提倡可持續(xù)的開(kāi)發(fā)速度合搅。責(zé)任人(sponsors)、開(kāi)發(fā)者和用戶應(yīng)該能夠保持一個(gè)長(zhǎng)期的歧蕉、恒定的開(kāi)發(fā)速度灾部。
敏捷項(xiàng)目不是50 米短跑;而是馬拉松長(zhǎng)跑惯退。團(tuán)隊(duì)不是以全速啟動(dòng)并試圖在項(xiàng)目開(kāi)發(fā)期間維持那個(gè)速度赌髓;相反,他們以快速但是可持續(xù)的速度行進(jìn)催跪。跑得過(guò)快會(huì)導(dǎo)致團(tuán)隊(duì)精力耗盡锁蠕、出現(xiàn)短期行為以致崩潰。敏捷團(tuán)隊(duì)會(huì)測(cè)量他們自己的速度懊蒸。他們不允許自己過(guò)于疲憊荣倾。他們不會(huì)借用明天的精力來(lái)在今天多完成一點(diǎn)工作。他們工作在一個(gè)可以使在整個(gè)項(xiàng)目開(kāi)發(fā)期間保持最高質(zhì)量標(biāo)準(zhǔn)的速度上骑丸。
9.不斷地關(guān)注優(yōu)秀的技能和好的設(shè)計(jì)會(huì)增強(qiáng)敏捷能力舌仍。
高的產(chǎn)品質(zhì)量是獲取高的開(kāi)發(fā)速度的關(guān)鍵。保持軟件盡可能的清潔通危、健壯是快速開(kāi)發(fā)軟件的途徑铸豁。因而,所有的敏捷團(tuán)隊(duì)成員都致力于只編寫他們能夠編寫的最高質(zhì)量的代碼菊碟。他們不會(huì)制造混亂然后告訴自己等有更多的時(shí)間時(shí)再來(lái)清理它們节芥。如果他們?cè)诮裉熘圃炝嘶靵y,他們會(huì)在今天把混亂清理干凈逆害。
10.簡(jiǎn)單——使未完成的工作最大化的藝術(shù)——是根本的头镊。
敏捷團(tuán)隊(duì)不會(huì)試圖去構(gòu)建那些華而不實(shí)的系統(tǒng),他們總是更愿意采用和目標(biāo)一致的最簡(jiǎn)單的方法魄幕。他們并不看重對(duì)于明天會(huì)出現(xiàn)的問(wèn)題的預(yù)測(cè)拧晕,也不會(huì)在今天就對(duì)那些問(wèn)題進(jìn)行防衛(wèi)。相反梅垄,他們?cè)诮裉煲宰罡叩馁|(zhì)量完成最簡(jiǎn)單的工作厂捞,深信如果在明天發(fā)生了問(wèn)題,也會(huì)很容易進(jìn)行處理队丝。
11.最好的構(gòu)架靡馁、需求和設(shè)計(jì)出自于自組織的團(tuán)隊(duì)。
敏捷團(tuán)隊(duì)是自組織的團(tuán)隊(duì)机久。任務(wù)不是從外部分配給單個(gè)團(tuán)隊(duì)成員臭墨,而是分配給整個(gè)團(tuán)隊(duì),然后再由團(tuán)隊(duì)來(lái)確定完成任務(wù)的最好方法膘盖。
敏捷團(tuán)隊(duì)的成員共同來(lái)解決項(xiàng)目中所有方面的問(wèn)題胧弛。每一個(gè)成員都具有項(xiàng)目中所有方面的參與權(quán)力尤误。不存在單一的團(tuán)隊(duì)成員對(duì)系統(tǒng)構(gòu)架、需求或者測(cè)試負(fù)責(zé)的情況结缚。整個(gè)團(tuán)隊(duì)共同承擔(dān)那些職責(zé)损晤,每一個(gè)團(tuán)隊(duì)成員都能夠影響它們。
12.每隔一定時(shí)間红竭,團(tuán)隊(duì)會(huì)在如何才能更有效地工作方面進(jìn)行反省尤勋,然后相應(yīng)地對(duì)自己的行為進(jìn)行調(diào)整。
敏捷團(tuán)隊(duì)會(huì)不斷地對(duì)團(tuán)隊(duì)的組織方式茵宪、規(guī)則最冰、規(guī)范、關(guān)系等進(jìn)行調(diào)整稀火。敏捷團(tuán)隊(duì)知道團(tuán)隊(duì)所處的環(huán)境在不斷的變化暖哨,并且知道為了保持團(tuán)隊(duì)的敏捷性,就必須要隨環(huán)境一起變化凰狞。
?結(jié)論
每一個(gè)軟件開(kāi)發(fā)人員篇裁、每一個(gè)開(kāi)發(fā)團(tuán)隊(duì)的職業(yè)目標(biāo),都是給他們的雇主和客戶交付最大可能的價(jià)值服球。可是颠焦,我們的項(xiàng)目以令人沮喪的速度失敗斩熊,或者未能交付任何價(jià)值。雖然在項(xiàng)目中采用過(guò)程方法是出于好意的伐庭,但是膨脹的過(guò)程方法對(duì)于我們的失敗至少是應(yīng)該負(fù)一些責(zé)任的粉渠。敏捷軟件開(kāi)發(fā)的原則和價(jià)值觀構(gòu)成了一個(gè)可以幫助團(tuán)隊(duì)打破過(guò)程膨脹循環(huán)的方法,這個(gè)方法關(guān)注的是可以達(dá)到團(tuán)隊(duì)目標(biāo)的一些簡(jiǎn)單的技術(shù)圾另。