1. 程式人生 > >你真的知道敏捷和迭代嗎?

你真的知道敏捷和迭代嗎?

在這敏捷開發橫行的時代中,人人都在談敏捷,人人都在談迭代,似乎大家好像都嚐到了敏捷帶來的甜頭,記得有一次跟朋友吃飯,說他們現在的專案用敏捷開發,每個迭代都能看到不斷完善的產品,非常有成就感,客戶的滿意度也提升了不少;另一個朋友說,我們用迭代開發,也是這樣,而且客戶想加什麼需求就加什麼,直接按照優先順序排到迭代週期就行,也不用為改需求而煩躁。當時我就想,敏捷開發不就是分迭代週期的嗎,他倆好像說的是一回事吧。回去過了好長一段時間,突然想起這件事了,在網上一查,還真不是一回事…


迭代開發流程:

什麼叫迭代開發?在迭代開發中,整個開發工作被組織為一系列的短小的、固定長度(如3周)的小專案,被稱為一系列的迭代,這叫迭代開發。每一次迭代都包括了定義、

需求分析、設計、實現與測試。而敏捷開發是以使用者的需求進化為核心,採用迭代、循序漸進的方法進行軟體開發。前者是軟體開發的生命週期模型,是一種開發過程;後者是多種軟體開發專案管理方法的集合,是一種開發方法。這是兩者最根本的區別。與迭代開發對應是瀑布模型,螺旋模型等,而與敏捷開發對應的是Scrum,XP(極限程式設計),Crystal(水晶程式設計)等開發方法,所以它倆根本就不是一回事!那麼它們倆有沒有關係呢?答案是:有…

敏捷-Scrum開發流程:


敏捷開發的定義就已經說明,採用迭代的方法進行軟體開發。那麼有人會問,敏捷開發為什麼要採用迭代開發呢?不要忘了敏捷開發的核心原則是擁抱變化,和遞增的變化。迭代式開發正適合在那些需求資訊不明確的專案,這樣在開發過程中遇到需求的變化時,所帶來的影響要比其他模型小。而現在的很多專案中,需求在專案進行中變化的事兒經常見,所以顯得迭代式開發的優勢更明顯一些,這正符合敏捷開發的擁抱變化。而且迭代開發是不要求每一個階段的任務做的都是最完美的,明明知道還有很多不足的地方,卻偏偏不去完善它,而是把主要功能先搭建起來,以最短的時間,最少的損失先完成一個“不完美的成果物”直至提交,然後再通過客戶或使用者的反饋資訊,在這個“不完美的成果物”上逐步進行完善,這正符合敏捷開發的遞增變化。當然,敏捷開發只是一個總體概念,而迭代式開發只是幾乎所有敏捷開發所採用的一個主要的基礎實踐。敏捷開發除迭代式開發外,還包含了其他許多管理與工程技術實踐,如演進式架構設計、敏捷建模、重構、自動迴歸測試(ART)等等。總而言之,就是敏捷開發與迭代開發是整體與區域性的關係,前者就像大家庭,而後者是大家庭中的一員。

敏捷發展歷史


敏捷和迭代雖然不一樣,但是它們也是分不開的,迭代和敏捷開發方式的結合,既保證了產品的質量又在專案產品的持續改進中具有一定的優勢。吸取精華,破其糟粕,只有這樣,專案才會達到趨於完美的程度。現在市面上也恰好有一款這樣的專案管理工具-華為軟體開發雲,它就很好的把敏捷和迭代完美的融合到一起了,並且還配備程式碼管理,程式碼檢查,編譯構建,部署和釋出等一站式的流水線開發流程,大大提高了我們管理和開發人員的工作效率,這也是我們所有IT人,做任何專案都想達到的目標。