因為世界在變,市場在快速變化,需求在快速變化。
2005年之前,大部分軟件開發(fā)項目采用“瀑布法”,將項目嚴格按照計劃進行,上一個階段完成才允許進入下一階段。導(dǎo)致進度緩慢,甚至延遲交付,等到產(chǎn)品上線時可能已經(jīng)不在符合市場需求,所以我們需要更加快速地適應(yīng)變化!
敏捷強調(diào)不斷盡早地交付價值,善于利用需求變更幫助客戶獲得競爭優(yōu)勢,交付周期更快更短。近年來,越來越多的企業(yè)行業(yè)引進敏捷項目管理,不僅是軟件行業(yè)和互聯(lián)網(wǎng)行業(yè),教育、醫(yī)療、服務(wù)行業(yè)等在逐步向敏捷轉(zhuǎn)型或者使用混合式的管理方法。
下面所以我們這邊先來簡單介紹下這兩種模式:
一、瀑布開發(fā)模式:
瀑布開發(fā)模式是由W.W.Royce在1970年最初提出的軟件開發(fā)模型,瀑布式開發(fā)是一種老舊的計算機軟件開發(fā)方法。
瀑布模型式是最典型的預(yù)見性的方法,嚴格遵循預(yù)先計劃的需求分析、設(shè)計、編碼、集成、測試、維護的步驟順序進行。
步驟成果作為衡量進度的方法,例如需求規(guī)格,設(shè)計文檔,測試計劃和代碼審閱等等。 總的來說,迭代周期長一些,一次性解決所有的任務(wù),一次上線。
下面我們說說瀑布開發(fā)模式的幾個特點:
1.嚴格把軟件項目的開發(fā)分隔成各個開發(fā)階段:需求分析,要件定義,基本設(shè)計,詳細設(shè)計,編碼,單體測試,結(jié)合測試,系統(tǒng)測試等。使用里程碑的方式,嚴格定義了各開發(fā)階段的輸入和輸出。如果達不到要求的輸出,下一階段的工作就不展開。
2.重視和強調(diào)過程文檔,在開發(fā)的中后期才會看到軟件原型,早起只能通過文檔來了解系統(tǒng)的模樣。在這種情況下,文檔的重要性仿佛已經(jīng)超過了代碼的重要性。
3.瀑布模型每個階段的人員只關(guān)心自己階段的工作,不需要關(guān)注其他階段的工作。
優(yōu)點:
1、可以讓開發(fā)人員能夠更專注于本職工作,提高階段效率。
缺點:
1、在項目各個階段之間極少有反饋,風(fēng)險往往遲至后期才顯露,失去及早糾正的機會。
2、項目早期即作出承諾導(dǎo)致對后期需求的變化難以調(diào)整,代價高昂。
3、測試人員最后才參與到項目中來,后期風(fēng)險較大。
4、只有在項目生命周期的后期才能看到結(jié)果。
二、敏捷開發(fā)模式:
敏捷開發(fā)模式是一種從1990年代開始逐漸引起廣泛關(guān)注的一些新型軟件開發(fā)方法,是一種應(yīng)對快速變化的需求的一種軟件開發(fā)能力。它們的具體名稱、理念、過程、術(shù)語都不 盡相同,相對于“非敏捷”,更強調(diào)程序員團隊與業(yè)務(wù)專家之間的緊密協(xié)作、面對面的溝通(認為比書面的文檔更有效)、頻繁交付新的軟件版本、緊湊而自我組織 型的團隊、能夠很好地適應(yīng)需求變化的代碼編寫和團隊組織方法,也更注重軟件開發(fā)中人的作用。
在敏捷開發(fā)中,軟件項目在構(gòu)建初期被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備可視、可集成和可運行使用的特征。換言之,就是把一個大項目分為多個相互聯(lián)系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。總的來說,拆分成多個小迭代,多次上線。
下面我們說說敏捷開發(fā)模式的幾個特點:
1、最核心的功能最先完成,容易出成果。
2、小步快跑,盡早交付,拆分各個小迭代(spring),一定的迭代周期內(nèi)需要確保開發(fā)的完成,規(guī)避了一定的上線風(fēng)險。
3、各組人員分迭代來有序工作,比如:設(shè)計人員出一個模塊RP,開發(fā)人員完成這個模塊編碼,測試人員完成這個模塊測試。
4、敏捷的管理是團隊的自我管理和項目經(jīng)理的服務(wù)式管理,項目經(jīng)理需要根據(jù)當前開發(fā)資源確保每個迭代的的可完成性,團隊成員需有良好的自我管理能力,來確保小迭代內(nèi)功能的完善;項目經(jīng)理需要對整體起到把控作用,迭代中可以根據(jù)開發(fā)進度進行各成員工作的微調(diào),保證迭代進度的完成。
優(yōu)點:
1、容易出成果,可以快速提高軟件發(fā)布周期,敏捷確實是項目進入實質(zhì)開發(fā)迭代階段,用戶很快可以看到一個基線架構(gòu)版的產(chǎn)品。
2、測試人員能夠盡早參與進項目中來,規(guī)避了一定的風(fēng)險。???
3、每次迭代周期應(yīng)盡可能短,以便能及時地處理需求變化和用戶反饋???。
缺點:
1、迭代周期短,為了不影響迭代完整,需要項目中存在經(jīng)驗較強的人,要不大項目中容易遇到瓶頸問題,延誤迭代進度。
2、敏捷開發(fā)要求各員工自我管理要強,所以對人員素質(zhì)和穩(wěn)定性的要求又更高。
三、那為什么要用敏捷開發(fā)呢?
1、出成果(版本)快,互聯(lián)網(wǎng)就是以快吃慢,一般都是迭代發(fā)布的,追求創(chuàng)新,說明了需要快速響應(yīng)用戶的變化,時間就是一切,需求不確定性高,這個在軟件行業(yè)也很常見;關(guān)注用戶行為,倡導(dǎo)以用戶為中心的產(chǎn)品設(shè)計。很典型的例子微信,騰訊一個月開發(fā)出來的產(chǎn)品,根據(jù)用戶體驗和反饋,通過反復(fù)的小迭代來優(yōu)化。
2、互聯(lián)網(wǎng)項目中市場反響和客戶體驗尤為重要,需要有一個快速迭代來響應(yīng)客戶的需求,確??蛻舻臐M意度。如果是瀑布式開發(fā),迭代慢,更改的成本也比較高。
3、隨時應(yīng)對變化,因為迭代周期的減小,使得項目的彈性更足,可以更好的適應(yīng)互聯(lián)網(wǎng)項目上更多的不確定性。
四、那如何從瀑布開發(fā)模式往敏捷開發(fā)模式切換?
任何開發(fā)模塊的切換都是存在風(fēng)險點的,包括我們前面介紹的前后端分離模式,那我們需要做什么來減少這些風(fēng)險呢?
1、優(yōu)先選擇周期比較長的項目,資源較充足、素質(zhì)較高的團隊來試行。
2、需要制定一套較為完整的敏捷體系,從產(chǎn)品到開發(fā)到測試,選型敏捷工具。
3、剛切換過來的迭代,可以適當減少迭代內(nèi)容,切換過程需要緩沖時間,避免因為試行階段出現(xiàn)的問題,從而團隊的整個心態(tài)。
4、項目經(jīng)理需要把控好任務(wù)進度,需要在迭代的中間,每天了解迭代運行情況,最好是每天團隊可以有晨會。
關(guān)注公眾號:PMP 項目管理之家、才聚項目管理PMP暨NPDP考試中心
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。