敏捷開發系列之旅 第一站(掀起你的蓋頭來)

紫竹風發表於2014-02-27
     乍一聽,“敏捷開發”這個詞很新鮮,其實不然。早在2001年2月,就作為一種相對新穎的產品開發模式,提出了“敏捷開發”這一概念。到底什麼是“敏捷開發”呢?

誕生

     也就是2001年的2月(沒有考據),有17名之多的軟體工程師在美國猶他州的Snowbird舉行會議,討論輕量級軟體開發方法,併發布了《敏捷軟體開發宣言》。這標誌著敏捷開發的誕生。這一模式隨後被矽谷創業公司大量應用,並於近幾年被引入國內,讓中國的工程師們有機會接觸這一新奇的開發模式。

敏捷宣言

  • 個體和互動重於過程和工具
     敏捷方法認為,人是軟體開發中最重要的因素,開發團隊要能做到團結協作,人與人面對面的交流、溝通,是最快速、最有效的途徑。
  • 可以工作的軟體重於面面俱到的文件
     文件的意義在於為程式服務,過多的文件需要開發人員花費大量的時間去維護,而且還要確保文件與程式碼的實時性,否則就失去了文件的意義。而問題也就在於,開發人員沒有把時間、精力放到最重要的任務上,能力、資源沒有最大化的發揮效能。敏捷方法認為,文件應當短小精悍、易於維護,而且主題突出。
  • 客戶協作重於合同談判
     做過軟體開發的人都知道,客戶對產品的需求是不斷變化的,試圖一開始就規定專案的細節和進度,顯然是不現實的,只有開發團隊和客戶彼此精誠合作,常與溝通,頻繁的客戶反饋,才能促使專案的成功。
  • 隨時響應變化重於循規蹈矩
     客戶的需求在產品的開發階段是不斷變化的,即使談判時確定的需求,也可能會根據某些因素而發生巨大的改變。因此,敏捷方法認為,在制定計劃時應儘可能的簡潔、靈活,以適應技術和需求方面的變動。當然,所有的未知的因素是不可能考慮周全的,這就要求我們在制定計劃時,留出一定的緩衝期,來應對這些未知情況。

核心思想

     說了這麼多,到底什麼是“敏捷開發”呢?其實,簡單的說,敏捷開發是一種以人為核心、迭代、循序漸進的開發方法。在敏捷開發中,軟體專案經常被拆分為多個子專案或多個步驟來完成,而一個步驟又稱為一次迭代,在每一次迭代完成之後,都會產生一個可交付的產品。這樣做有效的分解了整個專案的複雜度,便於實現產品交付目標,同時在專案的早起,就能拿出初具雛形的產品。
     敏捷開發方法的核心思想概括起來,就是“以人為本”和“適應變化”。
  • 以人為本
     敏捷方法認為,人是軟體開發中最重要的因素。對於人來說,軟體開發應該是一種愉快而又輕鬆的事情,它們注重調動自我的能動性,以積極、愉悅、樂觀的心態完成開發,並培養人的自豪感。敏捷開發的理念是充分的信任開發團隊能夠很好的完成任務,這是管理的中心主題。
  • 適應變化
     傳統的軟體開發強調的是,足夠清晰的需求,制定詳細的文件,按照預定的計劃逐一進行開發、測試。這樣的方式在制定好計劃之後拒絕變化,無法應對客戶對需求的實時更改,後續的維護必將會付出巨大的代價。
     而敏捷方法則是以最簡的方式來迎接變化,客戶在整個開發過程中都是參與者,開發團隊能夠在最短的時間內得到客戶的反饋,不斷適應需求的變更,從而使得最終的產品能夠充分的符合客戶的要求。

管理工具

     俗話說,工欲善其事,必先利其器。沒有一個好的工具,事倍功半是必然的。目前,已經有一些專案管理工具用於敏捷開發,可以用他們來幫助規劃、跟蹤,分析和整合工作。
     這些工具在敏捷開發中扮演著重要的角色,也是知識管理的一種方法。通常包括:版本控制整合,進度跟蹤,工作分配,整合釋出,迭代規劃,論壇和軟體缺陷的報告和跟蹤。
     我們專案中用到的兩款專案管理工具,其一是國內的公司出品的Web版的開源軟體——禪道(ZenTao),它集產品管理、專案管理、質量管理、文件管理、組織管理和事務管理於一體,是一款專業的研發專案管理軟體,完整地覆蓋了專案管理的核心流程。還有一款是國外的Atlassian公司出品的專案與事務跟蹤工具——JIRA,被廣泛應用於缺陷跟蹤、客戶服務、需求收集、流程審批、任務跟蹤、專案跟蹤和敏捷管理等工作領域。

方法

  • XP
  • SCRUM
  • Crystal Method
  • FDD
  • ASD
  • DSDM
  • RUP
  • LD

結束語

     由於我也是第一次接觸敏捷開發,我將與大家一同學習敏捷的真諦,在專案中運用敏捷的思想,真正做到開發敏捷、思維敏捷。在這個關於敏捷開發的系列之旅中,第一站主要是簡單的介紹了一下敏捷開發,讓大家對他有一個整體的瞭解。
     後續的文章,我會結合各個不同的敏捷方法,同時在專案中吸收的經驗、教訓,都會與大家一起分享,一同來探討有關敏捷的真諦。

相關文章