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