盧文佳
摘 要 敏捷開發(fā)思想是近些年來在軟件行業(yè)流行起來的新式思想,運(yùn)用該思維策劃生產(chǎn)的軟件具備靈活、有效和高品質(zhì)等優(yōu)勢,把敏捷開發(fā)和過去的經(jīng)典開發(fā)規(guī)則進(jìn)行融合,可以有效地提升項目開發(fā)的效率,使得越來越多的軟件項目開發(fā)團(tuán)隊對其產(chǎn)生濃烈的興趣。把敏捷開發(fā)思想融入小型項目開發(fā)環(huán)節(jié)中,處理經(jīng)典設(shè)計方式在滿足客戶意向變化方面的不足,可以合理把握需求改變與客戶對開發(fā)環(huán)節(jié)的透明性導(dǎo)致的風(fēng)險,力求在短期內(nèi)得到令人滿意的項目開發(fā)方案。
關(guān)鍵詞 敏捷開發(fā) 項目開發(fā) 應(yīng)用
敏捷開發(fā)并非完全是一門全新的理論,而是對以往的經(jīng)典開發(fā)思想的改善。敏捷開發(fā)吸取了豐富的軟件項目中的有用經(jīng)驗。敏捷開發(fā)在既有的軟件項目開發(fā)基礎(chǔ)上實現(xiàn)了整合,所以敏捷開發(fā)既有經(jīng)典方式的優(yōu)點,又在很大程度上改善了軟件開發(fā)的效果,而且可以在開發(fā)環(huán)節(jié)對客戶的需求進(jìn)行更改,利用初期迭代方式可以在早期找出風(fēng)險,降低工程的返工率。敏捷開發(fā)思想以人為本,目的是滿足客戶的需求,其特點是具備隨時滿足外界需求的能力。這一特征可以在很多方面體現(xiàn)出來,比如經(jīng)濟(jì)全球化導(dǎo)致的任務(wù)與設(shè)計條件的較難明確,市場對手的運(yùn)營方式與客戶需要的持續(xù)改變,技術(shù)的快速變更,職工薪資的不斷提升等。運(yùn)用敏捷開發(fā)思想的企業(yè)能夠擁有處理類似不確定性問題的能力,進(jìn)而在市場中占據(jù)一席之地。
一、敏捷開發(fā)思想分析
經(jīng)典的設(shè)計開發(fā)認(rèn)為不包含文檔的軟件是難以想象的,是不合格的項目開發(fā)。編碼過程不能成為溝通系統(tǒng)理論與組織的預(yù)期媒介。開發(fā)團(tuán)隊?wèi)?yīng)當(dāng)編寫簡單易懂的文檔,通過這種方式對系統(tǒng)和有關(guān)設(shè)計進(jìn)行描述。但是在實際情況中,卻能發(fā)現(xiàn)數(shù)量較多的文檔效果比較少的文檔還要差,這是由于編寫大量的文檔不但要花費過多的時間,而且讓這些文檔與代碼實現(xiàn)同步,需耗費更多的時間。假如開發(fā)人員未能讓代碼與文檔一致,將會導(dǎo)致文檔占據(jù)大量的內(nèi)存,復(fù)雜難懂的編碼會給后來的繼任開發(fā)者帶來很大程度上的阻礙。敏捷開發(fā)思想則認(rèn)為,應(yīng)當(dāng)只編寫和維持一個精悍、主題明顯的有關(guān)系統(tǒng)原理與組織方面的文檔便可以滿足要求,項目開發(fā)的重點要放在最后的產(chǎn)品上,也就是客戶所需要的軟件。任何一個項目開發(fā)團(tuán)隊都需要經(jīng)過內(nèi)部討論,確定哪部分文檔在交付項目軟件時是必需的。軟件能夠被裝飾、改變、研究,但它是真實存在的。盡管直接由編碼中獲取系統(tǒng)的原理與組織信息是有難度的,但代碼是唯一不存在歧義的信息來源,從這個方面來說,代碼也就是設(shè)計。
二、敏捷開發(fā)在項目開發(fā)中的應(yīng)用
(一)偏重于原理與組織設(shè)計
在敏捷開發(fā)過程中,關(guān)注原理與組織設(shè)計,盡量不進(jìn)行具體設(shè)計。原理設(shè)計能夠被理解成是尋找開發(fā)項目和軟件的目的,關(guān)注的是軟件開發(fā)的具體規(guī)劃、市場競爭力、用戶需求以及技術(shù)水平等。組織設(shè)計可以理解為:從宏觀層次上看,組織設(shè)計需要以什么形式完成,分多少環(huán)節(jié),由多少構(gòu)件組成,各個環(huán)節(jié)與構(gòu)件之間的聯(lián)系是什么。具體設(shè)計指的是詳細(xì)的規(guī)劃、外接形式等。某個產(chǎn)品,尤其是面對市場的產(chǎn)品,原理設(shè)計與組織設(shè)計相當(dāng)關(guān)鍵,應(yīng)當(dāng)預(yù)測行業(yè)將來的發(fā)展趨勢,產(chǎn)品在市場中內(nèi)部與外部的對比,技術(shù)的提升趨勢,以及各個組塊的成本與效益的差距等,這樣才可以盡量確保產(chǎn)品朝著良好的方向發(fā)展。在軟件中加入或者刪掉一個組塊應(yīng)該以十分謹(jǐn)慎的態(tài)度對待,因為新加入的功能一旦被用戶體驗,在后期的維護(hù)中就很難將該組塊刪除。此外,還應(yīng)當(dāng)思考每個產(chǎn)品版本間的兼容性以及用戶群體的變化等情況。因此,在進(jìn)行初期設(shè)計開發(fā)的時候,經(jīng)過原理設(shè)計與組織設(shè)計,理清路線是相當(dāng)必要的。
(二)積極與用戶溝通
在項目開發(fā)過程中,當(dāng)涉及新版本開發(fā)時,經(jīng)常會遇到針對舊版本的某一關(guān)鍵模塊進(jìn)行再次設(shè)計的情況,進(jìn)而碰到了幾個常見的問題:首先,新版本的組塊與舊版本組塊的匹配性問題,致使舊版本用戶難以順利地適應(yīng)新版本變化;其次,新版本的變化是純技術(shù)角度的再次設(shè)計,無論是面對用戶,還是面對開發(fā)團(tuán)隊內(nèi)部的組織來說,都沒有比較顯著的優(yōu)勢,最后的結(jié)局通常是開發(fā)者耗費了大量的人力物力與時間進(jìn)行設(shè)計,卻由于一些現(xiàn)實情況導(dǎo)致二次開發(fā)以失敗告終,依舊使用之前的模塊。因此,盲目增加需求,并不能給項目帶來好處,需要避免出現(xiàn)不能增加用戶體驗價值的功能,假如新功能對用戶沒有任何價值,那就意味著該模塊在實際中并不需要。盡管敏捷開發(fā)思想可以很好地適應(yīng)客戶需求變化,但有必要避免盲目變化。敏捷開發(fā)思想堅持的是簡易的平緩設(shè)計,而非強(qiáng)烈的拆除式設(shè)計。一方面,開發(fā)者只需要進(jìn)行其能力范圍內(nèi)的設(shè)計;另一方面設(shè)計要隨著客戶需求的變化和時間的推移而平緩?fù)晟?。這樣有益于提升設(shè)計的靈活性,降低因變化而引起的成本投入程度。項目產(chǎn)品的變化應(yīng)當(dāng)進(jìn)行謹(jǐn)慎的討論研究,三思而后行。敏捷開發(fā)認(rèn)為,在項目的任何環(huán)節(jié)里,開發(fā)設(shè)計人員是與用戶一同工作的,開發(fā)者到用戶的工作生活環(huán)境中進(jìn)行調(diào)查,同時需要邀請用戶到項目開發(fā)部門中來進(jìn)行建議參考。假如在開發(fā)環(huán)節(jié)里遇到一些問題或是產(chǎn)品進(jìn)行再次設(shè)計時,可以迅速得知用戶的意見,保證技術(shù)開發(fā)人員可以最大限度地設(shè)計出用戶需要的產(chǎn)品。
(三)預(yù)先進(jìn)行產(chǎn)品檢驗
以往的瀑布形式開發(fā)是先進(jìn)行代碼編寫,再進(jìn)行產(chǎn)品檢驗,直到出現(xiàn)設(shè)計方面的問題時,常常為了減少成本,不了了之。敏捷開發(fā)堅持由用戶實際應(yīng)用體驗的角度出發(fā),預(yù)先進(jìn)行產(chǎn)品檢驗,在代碼編寫之前先編寫檢驗代碼。編寫檢驗代碼是一個測試行為,同時也是一個設(shè)計行為,還可以說是編寫文檔的行為。在這個環(huán)節(jié)里,客戶需要上的偏差與項目開發(fā)中的不足將會被找到。因為代碼編寫還未實現(xiàn),只需要變化需求與設(shè)計便可以滿足條件,降低了成本投入,減少了項目開發(fā)風(fēng)險。
三、結(jié)語
伴隨著全球經(jīng)濟(jì)化進(jìn)程的不斷加深與科技水平的持續(xù)提高,人們對項目開發(fā)的生產(chǎn)效果與滿足用戶要求的不確定性與易變性等方面有了更多的需求。在經(jīng)典開發(fā)方式中,用戶可以說幾乎沒有加入開發(fā)環(huán)節(jié)中,項目開發(fā)過程中的調(diào)查、策劃、編碼直到內(nèi)部測試,開發(fā)的每一個環(huán)節(jié)對用戶都是保密的,只有公測或是培訓(xùn)時才會接觸到產(chǎn)品。因此,產(chǎn)品最終系統(tǒng)的運(yùn)行模式與操作界面和用戶的需求肯定存在著不小的差距,而敏捷開發(fā)正可以彌補(bǔ)這一缺陷。敏捷開發(fā)是一個過程,并不是一個獨立的事件。其是一個不斷應(yīng)用規(guī)則、方式和實踐來改善軟件的組織與能讀性的過程。將敏捷開發(fā)思想運(yùn)用到項目開發(fā)過程中,將獲得明顯的效果,敏捷開發(fā)思想體現(xiàn)了項目開發(fā)過程中比較科學(xué)的理論軟件開發(fā)價值觀與標(biāo)準(zhǔn)。
(作者單位為上海交通大學(xué)信息安全工程學(xué)院)
參考文獻(xiàn)
[1] 郎高一.敏捷開發(fā)在LICENSE管理平臺項目中的應(yīng)用實踐[D].浙江工業(yè)大學(xué),2015.
[2] 郝青.敏捷開發(fā)中的Web應(yīng)用開發(fā)框架研究[D].北京郵電大學(xué),2015.
[3] 陳亭華.敏捷方法在通訊軟件開發(fā)中的應(yīng)用研究[D].東華大學(xué),2014.
[4] 蔡軍英.互動娛樂軟件中敏捷開發(fā)方法的應(yīng)用[D].華東理工大學(xué),2013.
[5] 梁軍峰.敏捷開發(fā)方法在檢驗檢疫快件驗放系統(tǒng)建設(shè)中的應(yīng)用與研究[D].電子科技大學(xué),2011.endprint