- 相關(guān)推薦
敏捷提升軟件研發(fā)管理的論文
敏捷開(kāi)發(fā)模式開(kāi)辟了軟件開(kāi)發(fā)方法的新空間,這給中國(guó)軟件企業(yè)帶來(lái)了新開(kāi)發(fā)模式機(jī)遇的同時(shí),也同樣帶來(lái)了前所未有的挑戰(zhàn)。
世界五大軟件開(kāi)發(fā)教父之一的Matin Fowler認(rèn)為,當(dāng)前只有敏捷的軟件開(kāi)發(fā)模式才能夠使IT跟上業(yè)務(wù)變化的腳步,只有敏捷的開(kāi)發(fā)模式才能使軟件實(shí)現(xiàn)快速交付的同時(shí)又能成為一個(gè)高質(zhì)量、低成本的軟件。
敏捷開(kāi)發(fā)作為一個(gè)新的軟件開(kāi)發(fā)模式的新名詞,其中蘊(yùn)涵著無(wú)限的商機(jī),同時(shí),也是對(duì)中國(guó)軟件企業(yè)的一次嚴(yán)峻的考驗(yàn)。對(duì)于起步遠(yuǎn)遠(yuǎn)滯后于西方的中國(guó)軟件業(yè)而言,各種提高軟件開(kāi)發(fā)速度及降低軟件開(kāi)發(fā)成本的方式和措施都是值得探討與借鑒的。筆者認(rèn)為敏捷開(kāi)發(fā)模式對(duì)于中國(guó)的軟件企業(yè)正是一個(gè)行之有效的開(kāi)發(fā)方式。
問(wèn)題纏繞軟件開(kāi)發(fā)
軟件開(kāi)發(fā)過(guò)程中問(wèn)題多多,這不是新發(fā)現(xiàn)。早在上世紀(jì)60年代,北約(NATO)就提出了軟件危機(jī)這一概念。在《人月神話》一書(shū)中,軟件開(kāi)發(fā)則被喻為讓眾多史前巨獸痛苦掙扎,卻無(wú)力擺脫的焦油坑。隨著需求和應(yīng)用的日趨深入與復(fù)雜化,軟件開(kāi)發(fā)的難度和遇到的問(wèn)題以幾何級(jí)數(shù)形式增長(zhǎng),焦油坑也由此變得更深、更大。
復(fù)雜程度高、開(kāi)發(fā)周期長(zhǎng)、結(jié)果無(wú)保證,這是軟件開(kāi)發(fā)的通病。針對(duì)這些問(wèn)題,人們創(chuàng)造了N種方法,并由此產(chǎn)生了軟件工程學(xué)。而在實(shí)際工作過(guò)程中,軟件開(kāi)發(fā)的多變性和不可控制性,仍可輕易摧垮項(xiàng)目開(kāi)始時(shí)項(xiàng)目組苦心經(jīng)營(yíng)的開(kāi)發(fā)體系和方法,無(wú)論是業(yè)界公認(rèn)的需求、變更、人員流動(dòng),還是各種看起來(lái)并不起眼的小事件。
以人為本的敏捷開(kāi)發(fā)
敏捷開(kāi)發(fā)(Agile Software Development)是一種以人為核心、迭代、循序漸進(jìn)的開(kāi)發(fā)方法。在敏捷開(kāi)發(fā)中,就如同項(xiàng)目管理中將工作任務(wù)及工作目標(biāo)層層分解一樣,把軟件項(xiàng)目的構(gòu)建切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過(guò)測(cè)試,具備集成和可運(yùn)行的特征。簡(jiǎn)言之,就是把一個(gè)大項(xiàng)目分為多個(gè)相互聯(lián)系,但也可獨(dú)立運(yùn)行的小項(xiàng)目,并分別完成,在此過(guò)程中軟件一直處于可使用狀態(tài)。
通過(guò)上面的定義可以看出,敏捷開(kāi)發(fā)其實(shí)借鑒了大量軟件工程中的方法。是傳統(tǒng)軟件開(kāi)發(fā)意義上的改善,而非創(chuàng)新。例如在傳統(tǒng)的軟件開(kāi)發(fā)中,把設(shè)計(jì)和構(gòu)建這兩個(gè)過(guò)程分開(kāi)進(jìn)行,設(shè)計(jì)完成之后,再按照設(shè)計(jì)構(gòu)建。
實(shí)際上,由于需求在不斷變化,因此在軟件開(kāi)發(fā)的過(guò)程中,很難把設(shè)計(jì)和編程完全區(qū)分開(kāi)來(lái)。而在敏捷開(kāi)發(fā)中,先搭建一個(gè)比較粗的主構(gòu)建框架,只對(duì)用戶目前感興趣的部分詳細(xì)開(kāi)發(fā),并很快交付使用,在使用過(guò)程中,按用戶的需求進(jìn)行疊蓋修正,周而復(fù)始,循序漸進(jìn)的開(kāi)發(fā)軟件產(chǎn)品直到完成。
正如ThoughtWorks的首席科學(xué)家Matin Flower所說(shuō):“在敏捷軟件開(kāi)發(fā)的過(guò)程中,我們每?jī)芍芏紩?huì)得到一個(gè)可以工作的軟件,這種非常短的循環(huán),使終端客戶可以及時(shí)、快速地看到花錢構(gòu)建的軟件是一個(gè)什么樣的結(jié)果!币虼嗣艚蓍_(kāi)發(fā)也可理解為在原有軟件開(kāi)發(fā)方法基礎(chǔ)上的整合——取其精華,去其糟粕。
敏捷開(kāi)發(fā)的特點(diǎn)
敏捷方法主要有兩個(gè)特點(diǎn),這也是其區(qū)別于其他方法,尤其是重型方法的最主要特征:
敏捷開(kāi)發(fā)方法是“適應(yīng)性”(Adaptive)而非“預(yù)設(shè)性” (Predictive)。
這里說(shuō)的預(yù)設(shè)性,可以通過(guò)一般性工程項(xiàng)目的做法理解,比如土木工程,在這類工程實(shí)踐中,有比較穩(wěn)定的需求,同時(shí)建設(shè)項(xiàng)目的要求也相對(duì)固定,所以此類項(xiàng)目通常非常強(qiáng)調(diào)施工前的設(shè)計(jì)規(guī)劃。只要圖紙?jiān)O(shè)計(jì)得合理并考慮充分,施工隊(duì)伍可以完全遵照?qǐng)D紙順利建造,并且可以很方便地把圖紙劃分為許多更小的部分交給不同的施工人員分別完成。
然而,在軟件開(kāi)發(fā)的項(xiàng)目中,這些穩(wěn)定的因素卻很難尋求。軟件的設(shè)計(jì)難處在于軟件需求的不穩(wěn)定,從而導(dǎo)致軟件過(guò)程的不可預(yù)測(cè)。但是傳統(tǒng)的控制項(xiàng)目模式都是試圖對(duì)一個(gè)軟件開(kāi)發(fā)項(xiàng)目在很長(zhǎng)的時(shí)間跨度內(nèi)做出詳細(xì)的計(jì)劃,然后依計(jì)劃進(jìn)行開(kāi)發(fā)。所以,這類方法在不可預(yù)測(cè)的環(huán)境下,很難適應(yīng)變化,甚至是拒絕變化。
與之相反的敏捷方法則是歡迎變化,目的就是成為適應(yīng)變化的過(guò)程,甚至能允許改變自身來(lái)適應(yīng)變化。所以稱之為適應(yīng)性方法。
敏捷開(kāi)發(fā)方法是“面向人” (people oriented)而非“面向過(guò)程”(process oriented)。
Matin Flower認(rèn)為:“在敏捷開(kāi)發(fā)過(guò)程中,人是第一位的,過(guò)程是第二位的。所以就個(gè)人來(lái)說(shuō),應(yīng)該可以從各種不同的過(guò)程中找到真正適合自己的過(guò)程!边@與軟件工程理論提倡的先過(guò)程后人正好相反。
在傳統(tǒng)的軟件開(kāi)發(fā)工作中,項(xiàng)目團(tuán)隊(duì)分配工作的重點(diǎn)是明確角色的定義,以個(gè)人的能力去適應(yīng)角色,而角色的定義就是為了保證過(guò)程的實(shí)施,即個(gè)人以資源的方式被分配給角色,同時(shí),資源是可以替代的,而角色不可以替代。
然而,傳統(tǒng)軟件開(kāi)發(fā)的這些方法在敏捷開(kāi)發(fā)方式中被完全顛覆。敏捷開(kāi)發(fā)試圖使軟件開(kāi)發(fā)工作能夠利用人的特點(diǎn),充分發(fā)揮人的創(chuàng)造能力。
敏捷開(kāi)發(fā)的目的是建立起一個(gè)項(xiàng)目團(tuán)隊(duì)全員參與到軟件開(kāi)發(fā)中,包括設(shè)定軟件開(kāi)發(fā)流程的管理人員,只有這樣軟件開(kāi)發(fā)流程才有可接受性。同時(shí)敏捷開(kāi)發(fā)要求研發(fā)人員獨(dú)立自主在技術(shù)上進(jìn)行決策,因?yàn)樗麄兪亲盍私馐裁醇夹g(shù)是需要和不需要的。再者,敏捷開(kāi)發(fā)特別重視項(xiàng)目團(tuán)隊(duì)中的信息交流,有調(diào)查顯示:“項(xiàng)目失敗的原因最終都可追溯到信息沒(méi)有及時(shí)準(zhǔn)確地傳遞到應(yīng)該接受它的人!
敏捷開(kāi)發(fā)的問(wèn)題和思考
雖然敏捷開(kāi)發(fā)是個(gè)行之有效的軟件開(kāi)發(fā)模式,但是任何模式和方法的建立都是基于理論的基礎(chǔ),往往和現(xiàn)實(shí)的情況存在差異,這樣就會(huì)對(duì)軟件企業(yè)操作及執(zhí)行帶來(lái)很大的困難,甚至是誤導(dǎo)。所以,僅僅提出敏捷開(kāi)發(fā)的模式是不夠的,對(duì)敏捷開(kāi)發(fā)的議題的討論并沒(méi)有終結(jié)。下面僅就筆者理解基礎(chǔ)上提出一些問(wèn)題的參考。
項(xiàng)目?jī)?nèi)部協(xié)調(diào)的困難加大
敏捷開(kāi)發(fā)要求將大項(xiàng)目分解成為很多小項(xiàng)目,這樣雖然易于考察、易于管理和易于控制,但是這樣也帶來(lái)了項(xiàng)目?jī)?nèi)部各個(gè)小項(xiàng)目協(xié)調(diào)問(wèn)題。對(duì)于各個(gè)小項(xiàng)目的執(zhí)行,人員分配及其他資源分配的沖突及進(jìn)度的沖突是最主要的沖突,而且這些沖突如果解決不徹底,將會(huì)對(duì)整個(gè)大項(xiàng)目帶來(lái)難以預(yù)測(cè)的負(fù)面結(jié)果。
對(duì)管理水平的要求提高
敏捷開(kāi)發(fā)的問(wèn)題最后就是管理的問(wèn)題。這和很多軟件企業(yè)重技術(shù)輕管理的做法是截然相反的,企業(yè)的這種心智模式一方面是源自管理人才的缺乏和項(xiàng)目組成員對(duì)管理制度的排斥;另一方面則是因?yàn)楝F(xiàn)行規(guī)范和管理制度與實(shí)際工作中的不合拍。從這一層面而言,敏捷開(kāi)發(fā)對(duì)管理水平要求提高對(duì)軟件企業(yè)領(lǐng)導(dǎo)者的觀念是一種挑戰(zhàn)。
對(duì)執(zhí)行力的要求
任何理論只有落到實(shí)處,才能為企業(yè)為社會(huì)創(chuàng)造財(cái)富。這是永恒不變的道理。敏捷開(kāi)發(fā)模式需要經(jīng)驗(yàn)豐富、配合良好而又異常穩(wěn)定的項(xiàng)目組、積極而富有成效的溝通、良好的管理手段和流程、有效的工具與平臺(tái),只有滿足這些條件我們才能實(shí)現(xiàn)敏捷開(kāi)發(fā)模式帶給我們的益處。
敏捷開(kāi)發(fā)的出現(xiàn),同樣讓以人為本還是以過(guò)程為本的爭(zhēng)論上升到了理論層面。在敏捷開(kāi)發(fā)過(guò)程中,人是第一位的,過(guò)程是第二位的,所以就個(gè)人而言,應(yīng)該可以從各種不同的過(guò)程中找到真正適合自己的過(guò)程。這與軟件工程理論提倡的先過(guò)程后人正好相反,因而被不少人戲稱為對(duì)工程學(xué)原理的叛逆。
敏捷方法對(duì)需求不確定或常常變更的情形是有效的。但是,沒(méi)有哪一種開(kāi)發(fā)方法是適用于所有項(xiàng)目開(kāi)發(fā)的,正如上文所說(shuō),敏捷方法給傳統(tǒng)軟件開(kāi)發(fā)帶來(lái)了一種新的思路和開(kāi)發(fā)模式,但也給企業(yè)帶來(lái)了軟件研發(fā)項(xiàng)目管理開(kāi)發(fā)過(guò)程的整合困難。
所以,在實(shí)際開(kāi)發(fā)過(guò)程中,需要根據(jù)實(shí)際項(xiàng)目的需要選擇合適的開(kāi)發(fā)方法,并盡最大可能發(fā)揮人的創(chuàng)造性和潛能,利用不同人的不同特點(diǎn),充分溝通,這才是在敏捷方法中真正需要學(xué)習(xí)的。
【敏捷提升軟件研發(fā)管理的論文】相關(guān)文章:
軟件采購(gòu)高校管理的論文04-24
軟件過(guò)程管理論文07-04
高校行政管理效能提升論文07-22
提升科技管理效率的方式論文09-18
軟件工程管理論文09-09
軟件項(xiàng)目組合管理戰(zhàn)略論文07-09
合作研發(fā)提升我國(guó)醫(yī)藥企業(yè)的研發(fā)實(shí)力06-28
通訊行業(yè)研發(fā)項(xiàng)目的管理論文06-25
水利渠道維護(hù)管理的現(xiàn)狀與提升措施論文10-05
提升電子信息工程管理的途徑論文10-16