景學紅
【關鍵詞】CMMI 敏捷開發(fā)過程 比較分析
隨著軟件開發(fā)企業(yè)的發(fā)展,軟件開發(fā)市場競爭越來越激烈,目前軟件開發(fā)面臨的最大挑戰(zhàn)是軟件按開發(fā)企業(yè)既要積極應對開發(fā)過程中客戶的變動需求,又要保障在較短的時間內(nèi)完成整個項目的研發(fā)工作。簡單的說就是,軟件開發(fā)團隊既要有過硬的技術,又要在開發(fā)過程管理上積極的改進,以便提高整個開發(fā)團隊的效率,提高軟件開發(fā)的質(zhì)量,滿足不斷變化的市場與客戶需求。所以必須制定一套軟件開發(fā)過程管理機制,達到軟件的開發(fā)與客戶需求的一致性。
1 CMMI和敏捷開發(fā)簡述
CMMI和敏捷開發(fā)是兩種完全不同的軟件開發(fā)模式,它們的概念不同,管理方法和技巧不同,開發(fā)流程不同,開發(fā)過程不同,管理特點不同,它們之間有著本質(zhì)的區(qū)別。敏捷與CMMI 都非常注重質(zhì)量,差別在于CMMI開發(fā)模式是一種重量形式的開發(fā),敏捷是一種輕量模式的開發(fā)。CMMI強調(diào)的是以數(shù)學統(tǒng)計為基礎的技術方式,而敏捷強調(diào)的更多的是具體的、使用的工程技術方式 。另外敏捷與CMMI有著共同的目標,即用最短的時間,投入最少的資金,開發(fā)出滿足客戶需求的最好的軟件;同時他們都是目前應用比較廣泛軟件開發(fā)模式,均具有最佳的實踐經(jīng)驗。CMMI軟件開發(fā)管理模式的有很強的包容性,它強調(diào)重量級的項目過程管理控制,而敏捷是輕量級開發(fā),強調(diào)具體、實用開發(fā)技術。相比較而言他們在各自的開發(fā)領域都有比較好的積極作用的發(fā)揮,但是敏捷開發(fā)中輕量級的管理過程開發(fā)效率相對比較高。敏捷開發(fā)與CMMI都注重團隊與組織,只是敏捷開發(fā)更加注重人的主觀能動性。
2 敏捷與CMMI項目管理比較
敏捷開發(fā)項目管理更注重軟件開發(fā)實施的模式,強調(diào)團隊中個人的能力的發(fā)揮。它對軟件開發(fā)中技術和控制管理不是太看重。從這方面來看它與CMMI項目管理過程有著較大的區(qū)別。CMMI軟件開發(fā)過程管理模式是根據(jù)預先制定的計劃,按照計劃中的每一個步驟進行的管理與開發(fā)。如果在開發(fā)的過程中項目發(fā)生變更,需要重新對項目進行估計,重新作出項目計劃,所以此管理模式容易受客戶需求變更的影響,效率比較低。CMMI項目管理過程對客戶和供應商的可視性不高。在開發(fā)過程中計劃驅(qū)動方法、軟件交付實踐少,風險控制滯后。
敏捷開發(fā)的項目管理過程是一個不斷變化的過程,它使用迭代、增量的步驟進行開發(fā)管理。敏捷開發(fā)的方式實現(xiàn)沒有對項目進行仔細的分析,項目研發(fā)初期他們不注重對項目的了解,而是在開發(fā)的過程中對項目進行慢慢的了解的過程,敏捷只為項目中的一個迭代做開發(fā)規(guī)劃,不會針對整個項目做整體規(guī)劃,所以它的具有較高的靈活性,能夠在客戶變更需求時,第一時間做出反應。另外,它對整個項目一個比較粗略的規(guī)劃,然后對每一次迭代做詳細的規(guī)劃,根據(jù)迭代規(guī)劃做研發(fā)工作。相互信任和給予權力是敏捷開發(fā)的主要管理方式。這種管理模式使合同變更變得簡單,客戶和開發(fā)人合作關系,關系密切,每次迭代的完成,都有可交付的軟件生成,能夠利用第一代迭代軟件識別軟件早期風險,從而及時更正。
敏捷來發(fā)不僅能及時、有效的解決軟件研發(fā)中存在的問題,減少軟件開發(fā)風險,而且能夠在最短的實踐內(nèi)完成項目的交付,提高研發(fā)效率。因為它每次迭代都可以產(chǎn)生可以運行的軟件,所以能夠?qū)崿F(xiàn)快捷交付。開發(fā)的過程中國根據(jù)項目風險級別,采取最優(yōu)先行開發(fā)的原則進行開發(fā)。增強項目的變更管理,減少大量的重型計劃工作,簡化繁瑣的管理過程,提高研發(fā)的效率。有效的改善項目的溝通,使客戶能夠有效的參與到研發(fā)中,減少項目管理中錯誤的假設。敏捷開發(fā)能夠最大限度的額提高研發(fā)效率,減少工作中不必要的文檔和工作量,提高客戶滿意度,達到短期內(nèi)生產(chǎn)生效,完成交付的任務。還能有效的改善員工的滿意度,增強團隊精神,使每位員工都能夠規(guī)劃和管理自己的工作,提高員工工作的積極性,使項目更加適應市場變化。
CMMI和敏捷開發(fā)各有優(yōu)勢,只是側重帶你不同,前者側重管理過程的規(guī)劃和質(zhì)量控制的技術,后者側重具體、使用的軟件按工程技術,它們在各自的應用范圍內(nèi)都是最佳的管理模式。在未來的發(fā)展中,CMMI和敏捷開發(fā)可能會走向融合,敏捷可以幫助CMMI高級別更容易實現(xiàn)短期的轉變。從另外一方面看敏捷開發(fā)是使用CMMI第4,5級別來改進如何發(fā)展產(chǎn)品的完美例子,二者具有很強的互補性。
3 結語
總之,軟件的開發(fā)并不是只有一個或者兩個模式,軟件企業(yè)可以選用一個比較適合自身且發(fā)展的而研發(fā)模式實施管理,也可以多個結合運用。CMMI與敏捷開發(fā)雖然有很多的不同,但是也不是兩個完全對立的管理模式,他們有著共同的研發(fā)目標,致力于軟件研發(fā)的高質(zhì)量、高效率以及高效益,同樣追求客戶的滿意度。所以,在一定的環(huán)境下,二者完全可以相互補充、共同促進,共同達到市場需求標準,推動軟件研發(fā)的發(fā)展。
參考文獻
[1]徐俊,彭章綱.敏捷開發(fā)過程與CMMI實施融合研究[J].現(xiàn)代計算機(下半月版),2011(24):122-123.
[2]王易,童杰,宋鵬飛.基于CMM/CMMI和敏捷軟件過程改進的研究[J].科技資訊,2009(14):196-197.
[3]楊根興.軟件過程的改進與敏捷方法[J].軟件產(chǎn)業(yè)與工程,2010(6):287-288.
[4]仲萃豪.從認知觀看“軟件危機”是怎樣解決[J].軟件工程,2006(12):114-115.