敏捷開發(fā),在路上
原創(chuàng)【51CTO觀察】如果有一種方法能使你的軟件缺陷率降低63%,核心缺陷率降低79%,整體投入減少62%,整個項(xiàng)目開發(fā)的時間縮短69%,你會采用這種新的軟件開發(fā)方法嗎?
在回答這個問題之前,你可能會問:是什么方法能達(dá)到這樣的效果?答案是:敏捷開發(fā)。你一定會開始質(zhì)疑:這是真的嗎?或者你會說:我們也在用敏捷,但沒有以上提到的這么夸張。
以上提到的一些數(shù)據(jù)來自Forrester,一家善于用數(shù)字說話的咨詢公司。他們對多個采用敏捷開發(fā)的項(xiàng)目與傳統(tǒng)開發(fā)方式進(jìn)行對比,得出以上數(shù)據(jù)。而這些項(xiàng)目來自敏捷剛剛開始起步的2002年。
不相信敏捷開發(fā)能夠大幅提高軟件生產(chǎn)效率的可能并沒接觸過敏捷方法;而懷疑以上數(shù)據(jù)的人可能已經(jīng)在使用敏捷,但并沒有獲得讓人驚喜的提升。《敏捷宣言》雖然已經(jīng)走過十年,但在國內(nèi),因?yàn)榧夹g(shù)理念和文化的差異,敏捷開發(fā)要發(fā)揮出全部威力還有很長的一段路要走。
我們在51CTO開發(fā)頻道用戶群做過一個小范圍的調(diào)查,結(jié)果顯示,有近三成的開發(fā)者表示自己和所屬團(tuán)隊(duì)正在使用敏捷開發(fā),有七成的網(wǎng)友表示并沒有深入了解過敏捷開發(fā)。值得注意的是,在使用敏捷開發(fā)的團(tuán)隊(duì)中有不少人感覺自己在“偽敏捷”:標(biāo)榜使用敏捷開發(fā)的方式進(jìn)行軟件開發(fā),但團(tuán)隊(duì)內(nèi)部依然遵循著傳統(tǒng)的開發(fā)方式進(jìn)行項(xiàng)目開發(fā)。
“偽敏捷”——起步就走歪了
任何新事物的深入與發(fā)展都需要一個過程,這個過程產(chǎn)生中,推行此項(xiàng)事物的出發(fā)點(diǎn)可能是影響新事物發(fā)展的重要因素。當(dāng)51CTO記者將上述調(diào)查轉(zhuǎn)述給ThoughtWorks CEO郭曉先生時他認(rèn)為:實(shí)際上偽敏捷首先有一個目的,為什么要偽敏捷,誰需要讓他做敏捷。
目前,國內(nèi)中小型軟件企業(yè)在實(shí)施敏捷開發(fā)過程中,往往是迫于壓力。兩種常見的情況是迫于客戶的壓力和迫于上級領(lǐng)導(dǎo)的壓力。
比如一些軟件企業(yè)可能被客戶要求使用敏捷開發(fā),更緊密的聯(lián)系需求,更快的迭代交付。這時候只好打敏捷開發(fā)的牌子,實(shí)際上開發(fā)過程中卻很少能正確的理解敏捷開發(fā)的思想,僅僅是簡單的照搬一些工具來進(jìn)行項(xiàng)目。
第二種可能是軟件企業(yè)的高層看到了敏捷的好處,也能理解敏捷開發(fā)所能帶來的價值,希望下面的開發(fā)團(tuán)隊(duì)也能使用這種方法進(jìn)行開發(fā)。但落實(shí)到具體的開發(fā)團(tuán)隊(duì)中,卻因?yàn)楦鞣N原因沒有很好的執(zhí)行下去,最終成了只是為了完成領(lǐng)導(dǎo)的任務(wù)而敏捷。
事實(shí)上,“偽敏捷”的產(chǎn)生最根本的原因是國內(nèi)開發(fā)者還沒有徹底的理解敏捷,認(rèn)識敏捷。敏捷開發(fā)是一種方法,更是一種思想;在實(shí)踐敏捷開發(fā)中,不但要求團(tuán)隊(duì)自上而下的“形似”,還要求我們可以充分認(rèn)識敏捷思想,做到“神似”。
要想做到“神似”,我們還有很長的路要走。任何東西都離不開實(shí)踐,要想很好的理解敏捷開發(fā),也要從實(shí)踐開始。那么如何從一開始就不走歪路,如何正確的推行敏捷開發(fā)?
嘗試敏捷——從持續(xù)集成開始
ThoughtWorks CEO郭曉先生建議是可以從持續(xù)集成開始實(shí)踐敏捷。持續(xù)集成是敏捷開發(fā)中最常用、最普通的做法。它的價值在于在實(shí)施過程中可以會暴露出大量的問題,比如項(xiàng)目的架構(gòu)問題、耦合度問題和團(tuán)隊(duì)溝通的問題等。
持續(xù)集成理念很簡單,一個軟件不要等最后一天再上線,而是爭取團(tuán)隊(duì)內(nèi)部的項(xiàng)目啟動第一天就完成上線和集成;這時候會有很多問題暴露出來,等待團(tuán)隊(duì)解決。當(dāng)發(fā)現(xiàn)問題,我們就可以去尋找其他適合的敏捷方法進(jìn)行解決,這樣可以更有效的更快的獲得敏捷開發(fā)的價值。
當(dāng)然,持續(xù)集成不是解決問題的靈丹妙藥,但卻是暴露項(xiàng)目和團(tuán)隊(duì)中問題的最佳手段,不同團(tuán)隊(duì)在面對和實(shí)踐敏捷這么大的一個知識體系的時候有不同的方法獲取價值。不斷的獲取價值,會使團(tuán)隊(duì)各個成員有更多的動力持續(xù)下去。
需要時間和實(shí)踐
作為一種開發(fā)方法,敏捷開發(fā)雖然已有十年的積累,但在國內(nèi)仍然有很長的一段路要走。很多觀念需要接受,很多思想需要體會,很多方法需要實(shí)踐。
記得與敏捷開發(fā)專家麥天志先生談及敏捷開發(fā)的發(fā)展時他曾提到,一種開發(fā)方式的普及是一個積聚的過程,一個好的開發(fā)方式是經(jīng)過不斷的實(shí)踐和驗(yàn)證,并行之有效的。他認(rèn)為,并不會有一個明顯的分界線標(biāo)志出敏捷開發(fā)到了那種普及的程度和境界,至少在目前,敏捷還在不斷發(fā)展,更多的項(xiàng)目在實(shí)踐敏捷,觀念的普及和成功的案例正在不斷擴(kuò)大。敏捷開發(fā),在路上。
【編輯推薦】