為什么app軟件開(kāi)發(fā)項目的管理是這么困難呢?原因在于許多軟件開(kāi)發(fā)團隊沒(méi)有選擇合適的管理工具。一般來(lái)說(shuō),在軟件開(kāi)發(fā)過(guò)程中會(huì )有許多不確定的、經(jīng)常變化的因素,如果在軟件開(kāi)發(fā)過(guò)程中缺乏合適的管理工具,這將會(huì )導致開(kāi)發(fā)人員無(wú)法統一開(kāi)發(fā)行為和思路。例如,在實(shí)現項目的各階段和各種角色(架構師、項目經(jīng)理、開(kāi)發(fā)人員、測試人員等)的方法和思路并不一致,不但會(huì )對設計、質(zhì)量、代碼管理和部署產(chǎn)生負面影響,而且還會(huì )導致開(kāi)發(fā)成本增加。
那么,我們應該怎樣管理好軟件開(kāi)發(fā)的各種因素呢?就像教科書(shū)上經(jīng)常所說(shuō)的一樣,如果我們能夠很好的管理軟件生命周期每一個(gè)階段的質(zhì)量,也就很好的管理了整個(gè)軟件開(kāi)發(fā)的整個(gè)過(guò)程。因此,如何最大程度地管理好開(kāi)發(fā)過(guò)程成為目前業(yè)界討論的焦點(diǎn)。本文介紹了在軟件開(kāi)發(fā)過(guò)程中一種常用的管理工具:軟件生命周期模式,以及其概念和選擇方法。項目管理者聯(lián)盟文章
什么是app軟件開(kāi)發(fā)生命周期模式?
軟件開(kāi)發(fā)工作本身是需要一個(gè)周期來(lái)完成的,而在周期的內部則包含了很多因素。一個(gè)因素的不穩定,在周期推移的過(guò)程中都很可能會(huì )造成類(lèi)似生物學(xué)領(lǐng)域的蝴蝶效應----非洲的一只蝴蝶扇動(dòng)翅膀可能會(huì )造成美洲大陸的一場(chǎng)龍卷風(fēng)。這說(shuō)明每一個(gè)事情都可能會(huì )對其它的事情產(chǎn)生連鎖反應。因此,任何軟件開(kāi)發(fā)項目都必須進(jìn)行適當的組織和管理,然后才能按預期計劃成功地執行項目。也說(shuō)是說(shuō),規劃良好的軟件開(kāi)發(fā)生命周期將能夠實(shí)現在更短的開(kāi)發(fā)周期內構建軟件的愿景。
(1)什么是軟件開(kāi)發(fā)生命周期?
同任何事物一樣,一個(gè)軟件產(chǎn)品或軟件系統也要經(jīng)歷孕育、誕生、成長(cháng)、成熟、衰亡等階段,這一般稱(chēng)為軟件生命周期。軟件開(kāi)發(fā)生命周期(SDLC)是指軟件開(kāi)發(fā)的全部過(guò)程、活動(dòng)和任務(wù)的結構框架。許多軟件開(kāi)發(fā)工具廠(chǎng)商都提出過(guò)各種軟件生命周期方法論,它們有人將SDLC解釋為一組步驟或者里程標(Milestone)。但無(wú)論是誰(shuí)的解釋?zhuān)琒DLC的一般步驟包括:確定問(wèn)題、可行性分析與開(kāi)發(fā)計劃、收集需求、分析與設計、編碼開(kāi)發(fā)、測試、安裝、維護。
生命周期法也稱(chēng)結構化系統開(kāi)發(fā)方法,是目前國內外較流行的軟件系統開(kāi)發(fā)方法。尤其在開(kāi)發(fā)復雜的大系統時(shí),顯示出無(wú)比的優(yōu)越性。它的基本思想是:將軟件工程學(xué)和系統工程的理論和方法引入到軟件系統的開(kāi)發(fā)中,按照用戶(hù)至上的原則,采用結構化、模塊化自頂向下對系統進(jìn)行分析和設計。具體的說(shuō),是通過(guò)把整個(gè)軟件生命周期劃分為若干階段,使得每個(gè)階段有明確的任務(wù),使規模大、結構復雜和管理復雜的軟件開(kāi)發(fā)變的容易控制和管理。它的優(yōu)點(diǎn)是強調系統開(kāi)發(fā)過(guò)程的整體性和全局性,強調在整體優(yōu)化的前提下考慮具體的分析設計問(wèn)題,即自頂向下的觀(guān)點(diǎn)。它從時(shí)間角度把軟件開(kāi)發(fā)和維護分解為若干階段,每個(gè)階段有各自相對獨立的任務(wù)和目標,從而降低了系統開(kāi)發(fā)的復雜性,提高了可操作性。
(2)軟件生命周期模式
對于不同的軟件系統,可以采用不同的開(kāi)發(fā)方法、以及運用不同的管理方法和手段。實(shí)際上,軟件生命周期法在開(kāi)始的時(shí)候只是一個(gè)概念。因此,在應用軟件開(kāi)發(fā)生命周期法時(shí),許多開(kāi)發(fā)團隊會(huì )把這一個(gè)概念進(jìn)行工具化,這一個(gè)工具化就是軟件開(kāi)發(fā)生命周期模式。通過(guò)軟件開(kāi)發(fā)生命周期模式,我們能清晰、直觀(guān)地看到軟件開(kāi)發(fā)的全過(guò)程。
在過(guò)去的10年中,軟件生命周期模式及其許多變體獲得了廣泛的認可。在各種軟件開(kāi)發(fā)方法和過(guò)程改進(jìn)模式中的技術(shù)革新也得到了承認,如Rational Unified Process(RUP)、Capability Maturity Model(CMM)、ISO 9000-3 等。典型的幾種生命周期模式包括:瀑布模式、演化模式、螺旋模式、快速原型模式、噴泉模式和混合模式等。在這里只介紹其中最常用的幾種模式:項目管理培訓
?、倨俨寄J剑核紫仁怯蒖oyce提出,該模式由于酷似瀑布聞名。在該模式中首先確定需求,然后擬定規格說(shuō)明,在通過(guò)驗證后方可進(jìn)入計劃階段。因此,瀑布模式中至關(guān)重要的一點(diǎn)是只有當一個(gè)階段的文檔獲得認可才可以進(jìn)入下一個(gè)階段。瀑布模式通過(guò)強制性規約來(lái)確保每個(gè)階段都能很好的完成任務(wù),但是實(shí)際上卻往往難以辦到。因為整個(gè)瀑布模式幾乎都是以文檔驅動(dòng)的,這對于非專(zhuān)業(yè)的用戶(hù)來(lái)說(shuō)是難以閱讀和理解的。雖然瀑布模式有很多很好的思想可以借鑒,但是在過(guò)程能力上有天生的缺陷。
?、谘莼J剑核饕轻槍κ孪炔荒芡暾x需求的軟件開(kāi)發(fā)。它的方法是用戶(hù)先給出待開(kāi)發(fā)系統的核心需求,并且在核心需求實(shí)現后,再提出反饋以支持系統的最終設計和實(shí)現。也就是說(shuō):開(kāi)發(fā)人員首先會(huì )根據用戶(hù)的需求開(kāi)發(fā)核心系統,然后提供給用戶(hù)試用;用戶(hù)試用后再提出增強系統能力的需求;最后開(kāi)發(fā)人員再根據用戶(hù)的反饋,實(shí)施迭代開(kāi)發(fā)。實(shí)際上,這個(gè)模式可看作是重復執行的多個(gè)瀑布模式。演化模式要求開(kāi)發(fā)人員把項目的產(chǎn)品需求分解為不同組,以便分批循環(huán)開(kāi)發(fā)。但這種分組并不是隨意性的,而是要根據功能的重要性及對總體設計的基礎結構的影響而作出判斷。
?、勐菪J剑核瞧俨寄J脚c演化模式相結合,并加入兩者所忽略的風(fēng)險分析所建立的一種軟件開(kāi)發(fā)模式。螺旋模式基本的做法是在瀑布模式的每一個(gè)開(kāi)發(fā)階段之前,引入非常嚴格的風(fēng)險識別、風(fēng)險分析和風(fēng)險控制。直到采取了消除風(fēng)險的措施之后,才開(kāi)始計劃下一階段的開(kāi)發(fā)工作。否則,項目就很可能被暫停。另外,如果有充足的把握判斷遺留的風(fēng)險已降低到一定的程度,項目管理人員還可作出決定讓余下的開(kāi)發(fā)工作采用另外的生命周期模式,如演化模式,瀑布模式或自定的混合模式。
?、苓^(guò)程開(kāi)發(fā)模式:它又叫混合模式或元模式,是指把幾種不同模式組合成一種混合模式,它允許一個(gè)項目能沿著(zhù)最有效的路徑發(fā)展。因為上述的模式中都有自己獨特的思想,現在的軟件開(kāi)發(fā)團隊中很少說(shuō)標準的采用那一種模式的,因為模式和實(shí)際應用還是有很大的區別的。實(shí)際上,許多軟件開(kāi)發(fā)團隊都是在使用幾種不同的開(kāi)發(fā)方法組成他們自己的混合模式。