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