對于從事IT行業工作的人來說,每個人都熟悉“敏捷開發”一詞。 但是對于那些不知道的人,可能是因為他們在書中已經看到或聽說過它。實際上,敏捷開發不是一種技術或工具,而只是一種軟件開發方法,也可以簡單的理解為一種思想方法。那么什么是敏捷開發?敏捷開發和迭代開發是一回事么?
什么是敏捷開發?
敏捷開發是一種以人為核心、迭代、循序漸進的開發方法。在敏捷開發中,軟件項目的構建被切分成多個子項目,各個子項目的成果都經過測試,具備集成和可運行的特征。換言之,就是把一個大項目分為多個相互聯系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態。
例如,開發某個系統,需求確定后,首先頁面ui進行設計,同時針對某些功能模塊進行開發,說白了就是不影響自己干活的情況下,執行項目其他工作。
敏捷開發和迭代開發是一回事么?
概括來講,敏捷開發就是一種以用戶的需求進化為核心,迅速迭代、循序漸進地進行軟件開發的方法,核心是快速響應和持續迭代。要保證在迭代周期內,團隊成員思想保持高度一致、以共同的節奏和共同的周期完成周期性運轉,保證在每一個周期的同一時間點,團隊中的每一個人做的事情是相對一致的。迭代也讓團隊內外有著共同的預期,知道什么時間點該做什么,該交付什么出來。
或許這樣理解起來仍有些抽象,那么讓我們來看傳統的開發是怎樣進行的。傳統的開發有個專有名詞叫“瀑布式開發”,分為5個階段:需求分析、設計、編碼、測試和維護。這套方法定義了很完備的過程規范、嚴格遵從這種方式會使得研發運作過程十分嚴謹。但是,在瞬息萬變的互聯網和移動互聯網時代,市場環境、用戶需求、競爭對手等因素都在時時發生著改變。傳統的瀑布式開發要求針對客戶需求寫出詳細的分析說明書,僅僅這一點就耗費了大量時間,嚴格遵循規范但不夠靈活的流程管理的結果可能是研發人員在開發過程中按部就班,產品技術上沒有太多瑕疵,但是正式推出市場時可能部分功能已經落伍。
和瀑布式開發相比,敏捷開發的特點就是“小步快跑、盡早交付”。在市場環境和客戶需求變更非常迅速的情況下,為了讓需求方盡早地看到結果,并給出反饋,以小步快跑進行開發并盡早地交付新的版本不失為一種好的解決方式。畢竟在互聯網時代,可用的產品一定勝過完備的文檔,并且及時的迭代可以不斷修正問題。
而要做到“小步快跑、盡早交付”,對團隊也提出了一定要求:
1.準確分析市場需求
這一點也是很多人對敏捷開發的誤區。敏捷并不意味著不做項目計劃,只是不一定拘泥于形式,一定要拿出完備規范的開發計劃書,有時候敏捷開發的計劃就是團隊人員在白板上畫出的原型和點、甚至是口頭計劃。這種計劃不代表分析不嚴謹,事實上,敏捷開發比瀑布式開發更加注重需求的分析和計劃的制定。因為敏捷開發的核心就是為了及時響應用戶和市場的需求,所以并不會死守著計劃不進行調整。一旦市場發生變化,即使到了開發后期,敏捷團隊也應該對需求的改變持歡迎態度,對原先的計劃進行調整,利用變化來為產品創造競爭優勢。
2.迭代周期盡可能短,且周期固定
“小步快跑”意味著產品的交付時間間隔越短越好,通常是2-4周,頻繁地迭代能保證不斷修正BUG,而迭代周期固定則能和用戶形成良好的合作關系,便于客戶及時反饋,不斷地完善和提高產品的用戶體驗。
3.團隊規模最好也能敏捷
敏捷開發對團隊的溝通要求很高,過多的人數會造成溝通成本的增高,信息在傳達過程中很可能會有偏差,使團隊難以保持步調一致。通常情況下,敏捷團隊的人數少于20人,超過的話可以再進行團隊分割。比如騰訊在管理200人或者更大規模團隊時,就會按照產、研、運的組織結構進行復制,把大規模團隊拆分為10個20人的團隊,或20個10人的團隊,分別負責產品的子模塊。拆分時會保證子團隊人員仍以產、研、運三駕馬車組成,具備交付功能,可獨立工作,再通過子團隊之間的協作,完成整個大產品的研發和交付。
以上就是關于什么是敏捷開發以及敏捷開發和迭代開發是一回事么的全部內容,想了解更多關于敏捷開發的信息,請繼續關注中培偉業。