在軟件工業界,敏捷開發已成爲衆多高效開發團隊的制勝之道。它不只被許多中小公司青睞,在全球一百強的企業中,敏捷開發也已大行其道,受到許多資深項目管理者和開發人員的推崇。到2008年,歐美軟件企業中,有近半企業已採用敏捷方法進行開發。大多數還沒有應用敏捷的企業,也都對其有所瞭解,並且不少在計劃實施。中國的外企,外包公司和許多知名企業也都開始採用了敏捷方法。例如,騰訊內部幾乎全部的開發團隊都在實施敏捷。html
敏捷方法給這些企業也已帶來了巨大的收益。據業內資深人士和長期從事敏捷諮詢的服務公司透露,採用敏捷開發的團隊通常會提升3-10倍的效率,軟件的質量也有了更加可靠的保證。同時,敏捷開發的應用也給團隊內的每一個成員提供了良好的發展機會。他們的技術和合做水平都能獲得響應的提升。敏捷的成功來源於其方法自己的適用性和團隊對它的深刻理解和合理運用。下面咱們就對敏捷開發作一個簡單的介紹和討論。編程
敏捷不是指某一種具體的方法論、過程或框架,而是一組價值觀和原則。符合敏捷價值觀和原則的開發方法包括:極限編程(XP),Scrum,精益軟件開發(Lean Software Development),動態系統開發方法(DSDM),特徵驅動開發(Feature Driver Development),水晶開發(Crystal Clear)等等。全部這些方法都具備如下共同特徵:併發
1. 迭代式開發。即整個開發過程被分爲幾個迭代週期,每一個迭代週期是一個定長或不定長的時間塊每一個迭代週期持續的時間通常較短,一般爲一到六週。框架
2. 增量交付。產品是在每一個迭代週期結束時被逐步交付使用,而不是在整個開發過程結束的時候一次性交付使用。每次交付的都是能夠被部署到用戶應用環境中被用戶使用的、能給用戶帶來即時效益和價值的產品。測試
3. 開發團隊和用戶反饋推進產品開發。敏捷開發方法主張用戶可以全程參與到整個開發過程當中。這使需求變化和用戶反饋能被動態管理並及時集成到產品中。同時,團隊對於用戶的需求也能及時提供反饋意見。網站
4. 持續集成。新的功能或需求變化老是儘量頻繁地被整合到產品中。一些項目是在每一個迭代週期結束的時候集成, 有些項目則天天都在這麼作。htm
5. 開發團隊自我管理。擁有一個積極的、自我管理的、具有自由交流風格的開發團隊,是每一個敏捷項目必不可少的條件。人是敏捷開發的核心。敏捷開發老是以人爲中心創建開發的過程和機制,而非把過程和機制強加給人。項目管理
許多人認爲,相比於「傳統」的瀑布開發模式,敏捷開發是一種「現代」的開發模式。可是,實際上敏捷方法,特別是迭代和增量開發方法(IID)起源於20世紀30年代的一些非軟件項目。而最先引入一些敏捷方法的項目之一就是20世紀60年代初的美國航天局水星計劃。在這個項目中,一些極限編程方法如測試先行等也被使用。此後,迭代和增量開發被IBM聯邦系統部(FSD)和沃森研究中心(Watson Research Center)採納。有趣的是一些研究人員甚至在關於瀑布開發模式的最先的論文中發現了敏捷開發的線索。在這篇論文中,溫斯頓.羅伊斯(Winston Royce)建議在一個項目中使用兩次瀑布模式,也就是使用兩次迭代。開發
20世紀70年代,最先的有記載的使用迭代和增量開發的主要項目之一,是爲第一艘美國三叉戟潛艇開發的第一指揮和控制系統。該項目有大約一百萬行代碼,進行得很是成功。迭代和增量開發今後開始穩步發展,愈來愈多的項目開始使用這種開發模式。在1976年,Tom Gilb在他的著做《軟件度量》(「Software Metrics」)一書中闡述了他的迭代和增量開發實踐,這可能就是第一部闡述這種方法的書籍。迭代和增量開發的另外一次出色發揮,是在一個美國宇航局航天飛機軟件的開發項目。這個項目負責開發其航空電子設備的軟件系統。該項目由IBM聯邦系統部(IBM FSD)在1977至1980年完成。一些典型的敏捷作法,如使用8個周迭代以及用反饋推進開發按部就班等方法都在該項目中得以應用。部署
20世紀80年代,更多的出版物和更多的項目應用進一步推動了迭代開發的發展。在1895年,巴里貝母(Barry Boehm)正式定義了使用迭代開發的螺旋模型(Spiral model)。80年代初,在美國國防部發生了一件有趣的事情。美國國防部一直以來都要求其軟件開發商在開發過程當中使用嚴格的瀑布開發模型。可是到了1987年底,國防部開始「建議」使用迭代和增量開發做爲軟件開發模式。後來美國國防部的項目審查顯示,早期使用瀑布模式開發的軟件項目,有75%以失敗了結,有些開發出來的產品根本沒有被使用過,只有2%的軟件產品無需大量修改就能被正常使用。
20世紀90年代,推薦使用迭代和增量開發的出版物和文獻顯著增長。在經歷了屢次有「瀑布心態」(‘waterfall mentality’)項目的失敗以後,美國國防部開始「要求」而不是像80年代那樣僅僅是「建議」他們的軟件開發商使用IID開發模式。Rational統一開發過程(Rational Unified Process)也是在這一時期產生並發展起來的,它具備更規範的迭代漸進過程。到2000年末,更多的敏捷開發方法被普遍推廣並被使用於各類不一樣的項目中。2001年二月,一組由17位在DSDM,XP,Scrum,FSD等領域的專家組成的表明團齊聚美國猶他州,尋找這些方法的共同點。最終,這些專家制定並宣佈了敏捷開發宣言。由此造成了如今咱們所認識的敏捷開發和後來的敏捷聯盟。
敏捷聯盟官方網站:http://www.agilealliance.org/
關鍵詞:敏捷開發