現在很多公司企業都在實施或者要求開發人員具備 “敏捷研發實踐”,那到底什么是敏捷開發呢?
我們都見過或者經歷過因為開發過程冗余、笨重、繁雜而失敗的項目。世上應該有一種更好的軟件開發方法: 只關注真正重要的事情,少關注那些占用大量時間而無關緊要不重要的事情。它的學術名稱就叫敏捷。
敏捷開發是一種以人為本、團隊合作、快速響應變化和可工作軟件為宗旨的開發方法。
敏捷開發的宣言:
1,個體和交互勝過過程和工具
2,可工作的軟件勝過面面俱到的文檔
3,客戶協作勝過合同談判
4,響應變化勝過遵循計划
敏捷的方法可以快速的響應變化,它強調團隊合作,人們專注於具體可行的目標,實現真正的可以工作的軟件,這就是敏捷開發的精神。
它要求團隊中的每一個人(包括與團隊合作的人)都具備職業精神,並積極地期望項目能夠獲得成功。它並不要求所有人都是有經驗的專業人員,但必須具有專業的工作態度:每個人都希望盡最大的可能做好自己的工作。
這意味着,我們不能在項目結束的時候才進行測試,不會在月底才進行一次系統集成,也不會再一開始編碼的時候就停止搜集需求和反饋。相反,這些活動會貫穿項目的整個生命周期。事實上,只要有人繼續使用這個軟件,開發就沒有真正的結束。我們進行的是持續開發、持續反饋。我們不需要等到好幾個月后才發現問題:越早發現問題,就越容易修復問題,所以應該就在此時此刻把問題修復。
這就是敏捷開發的重點所在。
這種持續前進的開發思想根植於敏捷方法中。它不但應用於軟件開發的生命周期,還應用於技術技能的學習、需求采集、產品部署、用戶培訓等方面。它包括了軟件開發各個方面的所有活動。
敏捷開發就是在一個高度協作的環境中,不斷的使用反饋進行自我調整和完善。
敏捷的團隊應該采取什么樣的工作和生活方式呢?
首先,它要整個團隊一起努力。敏捷團隊往往是一個小型團隊,或者是大型團隊分為若干小型團隊(10人左右)。團隊的所有成員在一起工作,如果有可能,最好有獨立的工作空間,一起共享代碼和必要的開發任務,並且大部分時間都能在一起工作。同時和客戶或者軟件的用戶緊密工作在一起,並且盡可能早且頻繁地給他們演示最新的系統。
我們要不斷的從自己寫的代碼中得到反饋,並且使用自動優化工具不斷構建(持續集成)和測試系統。在前進過程中,我們都會意識的修改一些代碼:在功能不變的情況下,從新設計部分代碼,改善代碼質量。這就是所謂的重構,它是軟件開發中不可缺少的一部分,編程,永遠沒有真正意義上的“結束”。
要以迭代的方式進行工作:確定一小塊時間(一周左右)的計划,然后按時完成它們。給客戶演示每個迭代的工作成果,及時得到他們的反饋,這樣可以保證方向正確,並且根據實際情況盡可能的頻繁發布系統版本讓用戶使用。