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