解睿
【關(guān)鍵詞】敏捷開發(fā) CMMI 融合
對于一個軟件項目來說,其最大的挑戰(zhàn)不僅在于必須應(yīng)對變動中的各種需求,而且還要在較短時間內(nèi)完成規(guī)定的軟件項目。一般傳統(tǒng)軟件工程很難達(dá)到這些要求,因此軟件企業(yè)不僅要不斷改進(jìn)其生產(chǎn)技術(shù),同時還應(yīng)該不斷研究更為有效、合理的開發(fā)過程,使軟件團(tuán)隊的綜合效益能夠充分發(fā)揮出來。本研究主要對敏捷開發(fā)中納入CMMI進(jìn)行分析與探討。
1 敏捷開發(fā)特性
從根本上說,敏捷開發(fā)主要突出以下幾點:
(1)可工作軟件優(yōu)于全能化文檔;
(2)交互與個體優(yōu)于工具和過程;
(3)客戶合作優(yōu)于合同談判;
(4)響應(yīng)變化優(yōu)于循規(guī)蹈矩。
1.1 敏捷開發(fā)的特性主要包括
(1)軟件開發(fā)人員和客戶之間是一個合作較為密切的團(tuán)隊,由于客戶不能在初期對完整規(guī)格予以定義,軟件開發(fā)者也往往不能獲悉業(yè)務(wù)與軟件外在環(huán)境的變動,因此,必須軟件人員和客戶形成密切的聯(lián)系,由此才能將客戶滿意的軟件開發(fā)出來;
(2)將適合的軟件產(chǎn)品提交給客戶是項目的終極目標(biāo),所以每個中間產(chǎn)品都要有一個審慎評估環(huán)節(jié);
(3)采用迭代與增量法分階段性實施,通過同行評估的方式保證開發(fā)結(jié)果能夠與用戶需求相符合;
(4)可以有簡單的過程,但是一定要嚴(yán)謹(jǐn)?shù)膱?zhí)行和規(guī)劃;
(5)重點強調(diào)軟件團(tuán)隊的合作性,同時賦予軟件團(tuán)隊以高度責(zé)任,所有軟件團(tuán)隊成員都享有自主權(quán)。
1.2 敏捷開發(fā)適用軟件項目的條件包括
(1)穩(wěn)定的技術(shù)開發(fā)框架;
(2)成熟的軟件產(chǎn)品團(tuán)隊;
(3)較強的項目人員綜合能力;
(4)較強的管理及自我學(xué)習(xí)能力;
(5)不會緊迫的要求軟件開發(fā)前進(jìn)度。
2 CMMI和敏捷開發(fā)的融合
敏捷開發(fā)和CMMI是具有較大差異性的兩種軟件研發(fā)過程與管理體系,兩者的共同目標(biāo)在于,將產(chǎn)品多快好省的開發(fā)出來,以使客戶需求得到有效滿足;CMMI與敏捷開發(fā)均為軟件行業(yè)最佳實踐總結(jié),都是成功經(jīng)驗的傳播與累積;CMMI本身具有較強的包容性。兩者的區(qū)別在于CMMI為重量級軟件項目控制,敏捷開發(fā)則為輕量級軟件項目控制。敏捷開發(fā)中有大量實用且具體的軟件技術(shù)措施,CMMI為軟件開發(fā)提供了大量基于數(shù)學(xué)統(tǒng)計的質(zhì)量控制與過程管理方法。輕量過程在一定條件下所帶來的開發(fā)效率比較高。從根本上說,敏捷開發(fā)既注重個人,同時也注重組織與團(tuán)隊。該開發(fā)模式的層次主要有三個,即:敏捷團(tuán)隊、敏捷個人以及敏捷企業(yè)。敏捷開發(fā)和CMMI均比較重視組織與團(tuán)隊,其中敏捷開發(fā)主要強調(diào)的是個人主觀能動性的充分發(fā)揮,因為出發(fā)點、價值觀以及適用條件具有一定差異性,使得CMMI與敏捷開發(fā)的關(guān)注面與具體做法也有所不同。以往CMMI模式中對高技能工作人員能力與需求變更的要求相對比較多,而且CMMI注重強調(diào)必須嚴(yán)格執(zhí)行軟件開發(fā)過程,可替代軟件人員的能力,而且項目管理相對也比較負(fù)責(zé),該模式很可能會引發(fā)需求變更影響大、項目開發(fā)周期長以及相應(yīng)用戶需求的速度比較慢等問題。對于CMMI所存在的問題,敏捷開發(fā)可為軟件開發(fā)提供更為有效的解決方案,而且敏捷開發(fā)有利于軟件團(tuán)隊整體效率的提升,其中包括溝通效率與開發(fā)效率等。
總而言之,近年來越來越多的軟件開發(fā)企業(yè)應(yīng)用了CMMI模式,這就涉及到融合敏捷開發(fā)的問題。敏捷開發(fā)和CMMI都存在其各自適用范圍,這兩種模式在實踐做法、價值觀以及原則等方面不僅相互獨立又彼此補充。敏捷項目管理在傳統(tǒng)項目管理的基礎(chǔ)上, 把項目管理的職能化“有形”為“無形”,適合知識型員工的、帶有創(chuàng)新性質(zhì)的中小型項目,為縮短產(chǎn)品交付周期、提高員工積極性, 營造良好的團(tuán)隊文化提供了一條新的途徑??梢詭椭R別和消除軟件開發(fā)中的冗余的、不能為客戶創(chuàng)造價值的活動。提高產(chǎn)品質(zhì)量,減少因質(zhì)量低下造成返工帶來的浪費。CMMI與敏捷開發(fā)包含很多優(yōu)秀的軟件工程實踐。作為一個相對比較復(fù)雜的軟件過程體系,CMMI參考實踐做法比較多,而敏捷開發(fā)卻有著較少的實踐做法,且操作起來也比較容易,也許兩者在各自環(huán)境中具有最優(yōu)化。
參考文獻(xiàn)
[1]陶艷玲.基于CMMI的軟件測量與分析的研究與應(yīng)用[J].宇航計測技術(shù).2011(01):145-146.
[2]唐俊,趙曉娟.成功實施軟件過程改進(jìn)的三個要素[J].電腦知識與技術(shù)(學(xué)術(shù)交流).2007(20):120-121.
[3]焦鵬歡,張朋.基于能力成熟度模型的軟件測試改進(jìn)[J].電腦知識與技術(shù).2011(09):111-112.
[4]胡霞.初探敏捷開發(fā)在項目開發(fā)中的應(yīng)用[J].硅谷,2009(12):154-155.