淺析敏捷開發

目錄

什麼是敏捷

什麼是敏捷開發

敏捷宣言

敏捷宣言12條原則

敏捷開發的優勢

瀑布模型開發

敏捷開發


什麼是敏捷

Agile(敏捷)來源於敏捷宣言,宣言明確指出,“敏捷”:

  • 不是一種方法論
  • 也不是開發軟件的具體方法
  • 更不是一個框架或者過程

“敏捷”是一套價值觀(理念)和原則,幫助團隊在軟件開發過程中更好地做出決策。

 

什麼是敏捷開發

簡而言之就是遵循了“敏捷”這一開發原則的開發方法,敏捷並不意味着一味強調速度,而是輕量和高效

百度百科是這樣說的:敏捷開發以用戶的需求進化爲核心,採用迭代、循序漸進的方法進行軟件開發。在敏捷開發中,軟件項目在構建初期被切分成多個子項目,各個子項目的成果都經過測試,具備可視、可集成和可運行使用的特徵。換言之,就是把一個大項目分爲多個相互聯繫,但也可獨立運行的小項目,並分別完成,在此過程中軟件一直處於可使用狀態。

敏捷開發流程如下:

 

敏捷宣言

  • 個體和互動   高於    流程和工具
  • 工作的軟件   高於    詳盡的文檔
  • 客戶合作       高於    合同談判
  • 響應變化       高於    遵循計劃

注:這並不意味摒棄了右邊的原則,而是應該更加註重左邊的原則。

 

敏捷宣言12條原則

  1. 最重要的是通過儘早和不斷交付有價值的軟件滿足客戶需要。
  2. 我們歡迎需求的變化,即使在開發後期。敏捷過程能夠駕馭變化,保持客戶的競爭優勢。
  3. 經常交付可以工作的軟件,從幾星期到幾個月,交付時間尺度越短越好
  4. 業務人員和開發者應該在整個項目過程中始終朝夕在一起工作
  5. 圍繞鬥志高昂的人進行軟件開發,給開發者提供適宜的環境,滿足他們的需要,並相信他們能夠完成任務。
  6. 在開發小組中最有效率也最有效果的信息傳達方式是面對面的交談
  7. 可以工作的軟件是進度的主要度量標準
  8. 敏捷過程提倡可持續開發。出資人、開發人員和用戶應該總是維持不變的節奏。
  9. 對卓越技術與良好設計的不斷追求將有助於提高敏捷性。
  10. 簡單——儘可能減少工作量的藝術至關重要。
  11. 最好的架構、需求和設計都源自自我組織的團隊。
  12. 每隔一定時間,團隊都要總結如何更有效率,然後相應地調整自己的行爲。

比如就“簡單”和“儘早交付”而言:

當我們在構建某個功能時,發現其可能會需要數據庫支持,一般情況下我們會去構建數據庫併爲其編碼,然而敏捷認爲:爲這個功能構建數據庫就意味着要浪費很多時間,軟件就不得不延遲交付給客戶,如果能找到一種替代的簡單方法完成該功能,那就更符合我的敏捷原則。

但是敏捷原則並不是讓我們盲目模仿,應當結合實際情況和敏捷的價值理念做出正確決策。比如scrum可能倡導小組會議站着開,但是如果結合實際情況也可以完全選擇適合自己的方式開會,坐着更高效就坐着,切記盲目模仿一些成功的敏捷案例。

 

敏捷開發的優勢

相比於瀑布模型:

瀑布模型開發

  1. 客人到餐館來點菜(新項目)
  2. 不確定客戶想喫什麼的時候,通常選好餐廳後會先看看餐廳的菜單(客戶往往提不出具體的需求)
  3. 根據圖文菜單,客人點了十個菜(根據原型和設計稿,基本確定了需求)
  4. 後廚開始準備(項目啓動)
  5. 根據客人的下單配菜,炒菜(基本上不會主動去了解完整需求)
  6. 半個小時了,菜還沒上桌,客人餓極了(項目啓動後很長一段時間客戶什麼都看不到)
  7. 再過了二十分鐘,十個菜都一起上來了(項目最終一次交付)
  8. 客人說,有幾個菜挺好的,但是有個菜味道淡了,有兩個不夠辣,還有兩盤重複了想換掉(我是買單的,我要變需求)
  9. 這時候大堂經理來了,說,“味道淡了可以加鹽,不辣可以加辣,但是換菜不行,已經炒好的那兩盤菜也是要算成本的”(瀑布的壞處,需求變更比較麻煩)
  10. 於是,後廚只給客戶加了鹽,加了辣
  11. 客人喫完,不是很滿意,下次不來了(沒有滿足需求)

敏捷開發

  1. 客人到餐館來點菜(新項目)
  2. 不確定客戶想喫什麼的時候,通常選好餐廳後會先看看餐廳的菜單(客戶往往提不出具體的需求)
  3. 根據圖文菜單,客人點了是個菜(根據原型和設計稿,基本確定了需求)
  4. 後廚開始準備(項目啓動)
  5. 配菜、炒菜,先上了兩盤,讓客人嚐了嚐味道(先提供可用實例給客戶用)
  6. 客人說還不錯,後廚繼續準備後面的菜,陸續上菜(不斷迭代,不斷測試)
  7. 上菜過程中,客人突然發現有個菜的味道太淡了,讓後廚加了點鹽又端上來了(敏捷的好處,可以不斷測試和需求變更)
  8. 又上了兩盤,不夠辣,又拿到後廚加了辣(敏捷的壞處,需求沒有提前明確,反覆迭代,增加了工作量)
  9. 到最後兩盤時,客人要求換兩個菜,還好沒炒(迭代的好處,隨時接受需求變更)
  10. 客人喫完,很滿意(基本滿足了全部的要求)

 

總結:在理解了“敏捷”的價值和原則後,將其帶入到軟件開發過程中做出正確的決策,就是所謂的敏捷開發了。


參考:

  1. https://www.cnblogs.com/itbuyixiaogong/p/9056918.html
  2. https://baike.baidu.com/item/%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91/5618867?fr=aladdin#8
  3. https://zhuanlan.zhihu.com/p/33472102
  4. https://www.bilibili.com/video/av22511095/?spm_id_from=333.788.videocard.0

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章