敏捷開發 cmmi

2021-09-26 22:34:23 字數 1339 閱讀 8515

如何進行每一次迭代

敏捷開發的價值觀

十二條原則

敏捷開發的核心是迭代開發(iterative development)。敏捷一定是採用迭代開發的方式。那麼什麼是"迭代開發"呢?迭代的英文是 iterative,直譯為"重複",迭代開發其實就是"重複開發"。

對於大型軟體專案,傳統的開發方式是採用乙個大週期(比如半年)進行開發,整個過程就是一次"大開發";迭代開發的方式則不一樣,它將開發過程拆分成多個小週期,即一次"大開發"變成多次"小開發",每次小開發都是同樣的流程,所以看上去就好像重複在做同樣的步驟。

舉例來說,spacex 公司想造乙個大推力火箭,將人類送到火星。但是,它不是一開始就造大火箭,而是先造乙個最簡陋的小火箭 falcon 1。結果,第一次發射就**了,直到第四次發射,才成功進入軌道。然後,開發了中型火箭 falcon 9,九年中發**70次。最後,才開發 falcon 重型火箭。如果 spacex 不採用迭代開發,它可能直到現在還無法上天。

迭代開發將乙個大任務,分解成多次連續的開發,本質就是逐步改進。開發者先快速發布乙個有效但不完美的最簡版本,然後不斷迭代。每一次迭代都包含規劃、設計、編碼、測試、評估五個步驟,不斷改進產品,新增新功能。通過頻繁的發布,以及跟蹤對前一次迭代的反饋,最終接近較完善的產品形態。

迭代開發只是要求將開發分成多個迭代,並沒有回答乙個重要的問題:怎麼劃分迭代,哪個任務在這個迭代,哪個任務在下個迭代?這時,一般採用"增量開發"(incremental development)劃分迭代。

所謂的"增量開發",指的是軟體的每個版本,都會新增乙個使用者可以感知的完整功能。也就是說,按照新增功能來劃分迭代。

舉例來說,房地產公司開發乙個10棟樓的小區。如果採用增量開發的模式,該公司第乙個迭代就是交付一號樓,第二個迭代交付二號樓…每個迭代都是完成一棟完整的樓。而不是第乙個迭代挖好10棟樓的地基,第二個迭代建好每棟樓的骨架,第三個迭代架設屋頂…

增量開發加上迭代開發,才算是真正的敏捷開發。

敏捷開發的第乙個好處,就是早期交付,從而大大降低成本。

還是房地產公司為例,如果按照傳統的"瀑布開發模式",先挖10棟樓的地基、再蓋骨架、然後架設屋頂,每個階段都等到前乙個階段完成後開始,可能需要兩年才能一次**付10棟樓。也就是說,如果不考慮預售,該專案必須等到兩年後才能回款。

敏捷開發是六個月後交付一號樓,後面每兩個月交付一棟樓。因此,半年就能回款10%,後面每個月都會有現金流,資金壓力就大大減輕了。

雖然敏捷開發將軟體開發分成多個迭代,但是也要求,每次迭代都是乙個完整的軟體開發周期,必須按照軟體工程的方**,進行正規的流程管理。

&emssp;具體來說,每次迭代都必須依次完成以下五個步驟。

《敏捷軟體開發宣言》裡面提到四個價值觀。

該宣言還提出十二條敏捷開發的原則。

CMMI與敏捷開發

最近看了很多關於敏捷開發和cmmi比較的討論,結合我實施cmmi的經驗和對敏捷開發的研究,提出點薄見,還希望大家多多討論!首先我現在很多公司盲目跟隨潮流使用敏捷開發過程,或cmmi標準過程,未完全確定自己公司的實際情況,保守的說乙個企業開發過程未真正的達到cmmi3級的標準過程,那麼它的敏捷開發過程...

閒話CMMI與敏捷

前段日子參加第10屆中國系統與軟體過程改進年會,其中乙個環節是cmmi和敏捷的對話 據說去年是辯論,由於故意讓大家以極端的方式表述自身的理念,導致火藥味太濃。所以,今年改為對話了 cmmi以擁抱敏捷的方式出現,而敏捷的幾位代表似乎都是純技術出身,辯論水平較弱 我上台也是一樣,辯論是需要訓練的,所以我...

敏捷開發 什麼是敏捷開發?敏捷開發掃盲(詳解)

敏捷開發 scrum 是一種軟體開發的流程,強調快速反應 快速迭代 價值驅動。scrum的英文意思是橄欖球運動的乙個專業術語,表示 爭球 的動作 運用該流程,你就能看到你團隊高效的工作。敏捷開發的特點就是下面4句話 個體與互動 勝過 過程與工具 可以工作的軟體 勝過 面面俱到的文擋 客戶協作 勝過 ...