軟件開發新模式——敏捷開發
技術
作者:朱軍華
經過軟件行業幾十年的發展,軟件係統變得越來越複雜,傳統的軟件工程理論使“軟件危機”越來越嚴重。過長的開發周期、超出預算的開發成本、令人擔憂的軟件質量、頻繁流動的開發人員、官僚的體係製度、迅速變化的市場環境等因素,讓繁冗、笨重的軟件開發過程越來越不能適應現實的需要,軟件項目的失敗率很高。而敏捷開發就是在這種背景下應運而生的。敏捷是一種關注價值、消除浪費、以人為核心、迭代、循序漸進的開發方法。
何謂敏捷開發?
敏捷開發是一種麵臨迅速變化的需求快速開發的能力,它有四個核心思想:
第一是強調麵對麵的溝通,也就是強調溝通的重要性,人和人的相互交流勝於任何流程和工具;
第二是要把精力集中在可執行的程序上,可以運行的產品勝於編製綜合性文檔,也就是強調了原型、模型、Demo等的重要性;
第三個是團隊合作和團隊激勵,合作勝於談判,敏捷開發能將需求、開發、測試等全部團隊成員融合成一個整體,大家都是一條線上的螞蚱;
第四個是超強的適應能力,適應變化勝於按部就班,敏捷開發的特點就是快速。
敏捷軟件開發團隊就好比一支橄欖球隊:他們有明確的最高目標,而且每時每刻都朝著目標努力;他們熟悉最佳實踐,高度自我管理,高度協作,高度靈活地麵對各種挑戰。大量的調查統計表明,敏捷開發確實大大提高了軟件開發效率和軟件質量,幫助軟件企業提高了效益,並更利於個人的成長。
敏捷開發能夠縮短項目的反饋周期,因其將項目分成了若幹個迭代周期,每個迭代周期結束都能立即反饋。通過不斷的溝通,還能減少理解上的偏差,配合反饋,減少誤解,從而降低修正錯誤的代價。且每個迭代周期的結束都能接受驗證,從而能快速的適應變化,及時的適應新的需求,保證產品的正確性。
如何敏捷開發?
敏捷開發的體係建設主要有如下五個方麵:
第一,組織建設,也就是團隊建設,建立以產品經理為主導,包含產品、設計、前後台開發和測試的團隊,快速進行產品迭代開發;扁平化的團隊管理,大家都有共同目標,更有成就感;
第二,敏捷製度,要找準適合自身的敏捷開發方式,主要是製定一個完善的效率高的設計、開發、測試、上線流程,製定固定的迭代周期,讓用戶更有期待;
第三,需求收集,這個在任何方式下都需要有,需求一定要有交互稿,評審通過後,一定要確定功能需求列表、責任人、工作量等;
第四,工具建設,是指能夠快速完成某項事情的輔助工具,比如開發環境的一鍵安裝,各種底層的日誌、監控等平台,發布、打包工具等;
第五,係統架構,略為超前的架構設計支持良好的擴容性和可維護性;組件化基礎功能模塊——代碼耦合度低,模塊間的依賴性小;插件化業務模塊——降低營銷活動與業務耦合度,自升級、自維護;客戶端預埋邏輯;技術預研等等。
要推行敏捷開發,還有兩個重要的角色不可缺少,那就是產品負責人和敏捷專家。
敏捷開發中的產品負責人(Product Owner),即熟悉該產品所有業務相關的邏輯、流程、設置等方麵事宜的人員,一般可由產品經理擔任,也可由熟悉業務的開發人員擔任。產品負責人需要把握產品整體的需求功能列表,清楚每個需求功能和其所產生的業務價值。