關於敏捷開發的思考
我的上一份工作是在中興通訊,作為國內大企業,中興有些完善高效的研發管理方式。敏捷開發,就是研發管理重要的一個方面。
為什麼要推行敏捷開發?
傳統的軟體開發方式,都是把開發過程一步一步劃分,完成上一步才能進入下一步,環環相扣。因其開發流程像瀑布,又被稱為瀑布流開發方式。
瀑布流開發方式有什麼問題呢?那就是不能很好滴應對需求變化。眾所周知,需求變化是軟體開發過程中不可避免的難題。有時候是客戶臨時要求,有時候是分析人員沒有深刻理解客戶的需求。如果每一次需求變化都返回上一步進行修改,可能很難走完開發流程,導致項目的延期。
敏捷開發帶來了什麼?
敏捷開發,就是一個不斷迭代的過程,每個迭代都能給出能正常工作的版本。以建造汽車為例,瀑布流方式的流程可能是骨架、發動機、輪胎、噴漆、組裝,而敏捷開發的流程可能是自行車、摩托車、汽車。敏捷開發在每個迭代的結束都給出可工作的版本,在後續迭代中不斷完善和擴展,如果需求有變,則可以加入下一個迭代。
敏捷開發流程
如圖所示,敏捷開發主要在於衝刺、迭代。
衝刺:制定好短期目標,如中興以兩周為單位指定開發目標,在兩周內必須儘快完成開發任務。
迭代:迭代是一個版本開發與發布的流程,中興以兩周為單位,衝刺結束即發布版本,交付給測試團隊。開發團隊此時進行總結計劃會,對衝刺的過程進行總結,遇到的問題、未完成的計劃、好的開發經驗會在迭代結束進行交流,然後制定下一階段衝刺計劃。
更好的敏捷開發
1、敏捷晨會。敏捷開發對個體要求較高,要能準確評估任務難度和需要的開發時間。衝刺過程中,需要時刻關注每位成員的進度和困難,及時解決掉。開發過程中有任何的變化和安排,都要及時溝通。
2、測試驅動開發。開發前先制定測試用例,通過測試用例來描述和理解客戶的需求,一旦用例全部測試通過則認為客戶需求已經開發完成。測試驅動開發,以用例先於開發的方式,解決了開發人員對需求的理解問題,以一種可量化的方式解決了開發驗收的問題。
敏捷開發存在的問題
1、缺少文檔。與瀑布流方式不同,敏捷開發不會有完整的文檔。
2、代碼重構。敏捷開發的特點決定了每個迭代都以衝刺目標為最終目標,因此在軟體設計上可能存在適合衝刺目標不適合最終結果的問題,不可避免地在後續迭代中需要重構。
微信號 backend-develop
推薦閱讀:
※技術棧管理與雲時代的持續集成
※技術棧管理:雲時代的研發環境
※敏捷管理初期出現的常見問題
※敏捷開發團隊成熟度評估參考標準
TAG:敏捷 |