談談敏捷開發概念和迭代開發方案

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"自敏捷開發這一概率進入我們的視野,僅在短短几年內,軟件開發領域便進入了高速開發的時代。似乎從業者們都在談快速,談迭代,不管是否感受過敏捷開發的益處,先跟風吹起來,只要湊近這一新技術,就像走在了行業的前列。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"領域中有部分人採用敏捷開發做項目,其每個迭代都能看到不斷完善的產品,相關人員表示非常有成就感,客戶的滿意度也很高;另一部分開發者則用迭代開發,完全按照客戶需求來開發軟件,按照優先級排到迭代週期即可。有時就在思考,敏捷開發好像也分迭代週期的,這兩者會不會就是一回事?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"迭代開發是什麼?迭代開發流程:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在迭代開發中,整個工作被劃分爲一系列袖珍的、固定時間的小項目,這叫系列迭代,即是迭代開發。每一次迭代都包括了定義、需求分析、設計、實現與測試。而敏捷開發是以用戶的需求爲核心,採用迭代、循序漸進的方式開發軟件。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"前者是軟件的開發週期模型,是一種開發過程;而後者是多種軟件開發項目管理方法的集合,這是兩者最根本的區別。與迭代開發對應是瀑布模型、螺旋模型,而與敏捷開發對應的是Scrum,XP(極限編程),Crystal(水晶編程),所以二者不可混爲一談,但其中又有一定的聯繫。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在敏捷開發的定義中已說明,其採用了迭代的方法。那敏捷開發爲什麼要採用迭代開發?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"敏捷開發的核心原則是關注項目中的變化。迭代式開發正適用於需求不明確的項目,如果開發過程中突然變化需求,所帶來的影響要比其他模型小。而現在的很多項目中,需求在開發過程中變化的情況很常見,所以迭代式開發就顯得更有優勢,這正符合敏捷開發的關注變化的特性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"迭代開發不要求把每個階段都做到完美,明知還有不足之處卻不完善,而是追求用最短的時間搭建出主要功能,用最低成本先完成一個“主體半成品”直至提交,然後再通過客戶或用戶的反饋信息,在這個“主體半成品”上逐步進行完善,這正符合敏捷開發的遞增變化。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"敏捷開發是總體概念,而迭代式開發是實踐敏捷開發概念的一個手段。敏捷開發除迭代式開發外,還包含了其他許多管理與工程技術實踐,如演進式架構設計、敏捷建模、重構、自動迴歸測試(ART)。綜上,敏捷開發與迭代開發是整體與局部的關係,前者是家族,而後者是家族成員。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"敏捷開發概念發展史"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/10/103e5af3249f6c4d2474d5b393ed397e.png","alt":null,"title":"","style":[{"key":"width","value":"100%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"雖然敏捷和迭代不一樣,但是它們也是分不開的,二者的有機結合,既能保證產品質量又可保持在項目持續改進過程中的優勢。吸取精華,破其糟粕,只有這樣,項目纔會趨於完美。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"所以敏捷和迭代的方式一定是完美的?這還真不一定,但不可否認的是敏捷開發相對於傳統開發是有很大優勢的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"近些年來,由於一些特定的需求,越來越多的軟件團隊開始採用敏捷開發模式,但是在開發過程中卻對其核心思想理解不足,有些敏捷開發團隊甚至沒有管理者,僅設一名Scrum Master向產品經理彙報,職責劃分也很曖昧。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"除了軟件公司,在很多常規企業中,敏捷開發已經成爲一種無負責人的開發流程。所謂的產品經理與銷售、CEO隨意加功能、改需求,然後交給開發團隊去“敏捷”開發。在開發過程中,需求調研、設計、反饋、代碼評審、測試、全不需要。說好聽點這叫敏捷開發,說不好聽點,這就是技術大雜燴,能做到哪一步算哪一步,完全忽略了敏捷開發的實質。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"而實際上,敏捷開發並不是這樣的,迭代的核心在於軟件的超前規劃。如果沒有專業規劃者的全程指導,造出來的軟件系統必不合格 -- 時間超限、預算超支、充斥着各種不科學的奇思妙想、根本不管需求是否合乎邏輯。所以,無論用什麼開發思維,不管是哪種開發手段,都要制定合理科學的開發方案,這樣纔可事半功倍。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"更多敏捷開發詳情參閱:"},{"type":"link","attrs":{"href":"https://www.learun.cn","title":null},"content":[{"type":"text","marks":[{"type":"underline"}],"text":"https://www.learun.cn"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章