1. 程式人生 > >10007---敏捷開發實踐(一)--談談我對敏捷開發的理解

10007---敏捷開發實踐(一)--談談我對敏捷開發的理解

原文

隨著敏捷開發越來越流行,人人都在談敏捷,人人也都在學習scrum等敏捷開發方法。。。當然,自己也是敏捷開發的實施者和受益者。

背景

我們公司引入敏捷開發的時間並不長,在實施敏捷的過程還存在一些問題,自己在實施敏捷的過程也存在很多的疑惑(畢竟原來沒有學過,和真實的經歷,體會),所以最近一直在學習敏捷,看敏捷的視訊和閱讀相關資料,同時結合自己實施敏捷的經驗,通過分享博文進行一下簡單的總結,目的有四: 
1. 詳細的介紹和學習一下敏捷開發 
2. 和CSDN的大牛們一起分享交流,學習,提高一下 
3. 總結實施敏捷過程中的問題,不斷反思,不斷提高 
4. 最後,希望對不了敏捷的朋友有一定的幫助

什麼是敏捷開發

敏捷開發(Agile Development)不是指某一種具體的方法論、過程或框架,而是一組價值觀和原則。

怎麼理解呢?

  • 首先,敏捷並不是一門具體的技術,而是一種理念或者說是一種思想。它可以指導我們更加高效的開發。

  • 其次,敏捷開發都具有以下共同的特徵:

    1. 迭代式開發
    2. 增量交付
    3. 開發團隊和使用者反饋推動產品開發
    4. 持續整合
    5. 開發團隊自我管理
  • 最後,相比於“傳統”的瀑布開發模式,敏捷開發是一種“現代”的開發模式。

具體方式

上面說了敏捷是一種指導思想或開發方式,但是它沒有明確告訴我們到底採用什麼樣的流程進行開發,而具體的開發方式有哪些呢?

Scrum,極限程式設計(XP)

精益軟體開發(Lean Software Development),動態系統開發方法(DSDM),特徵驅動開發(Feature Driver Development),水晶開發(Crystal Clear)等等。

除了ScrumXP,對於上面的其他開發方式,我也只是簡單瞭解,大家可以多查查相關的資料。

我們可以簡單的對比一下Scrum和XP: 
1. 在開發的過程中,你可以採用Scrum方式也可以採用XP方式; 
2. Scrum和XP的區別是,Scrum偏重於過程XP則偏重於實踐,但是實際中,兩者是結合一起應用的。

敏捷開發宣言

《敏捷宣言》

我們通過身體力行和幫助他人來揭示更好的軟體開發方式。經由這項工作,我們形成了如下價值觀:

個體與互動 重於 過程和工具 
可用的軟體 重於 完備的文件 
客戶協作 重於 合同談判 
響應變化 重於 遵循計劃

在每對比對中,後者並非全無價值,但我們更看重前者

敏捷宣言是對敏捷的高度總結和昇華,即使現在不理解也沒有問題,在實踐的過程中我們會逐漸對它有一個深刻的認識。

敏捷開發十二原則

在敏捷開發中,我們遵循以下準則:

  1. 我們的最高目標是,通過儘早和持續地交付有價值的軟體來滿足客戶。
  2. 歡迎對需求提出變更——即使是在專案開發後期。要善於利用需求變更,幫助客戶獲得競爭優勢。
  3. 要不斷交付可用的軟體,週期從幾周到幾個月不等,且越短越好
  4. 專案過程中,業務人員與開發人員必須在一起工作。
  5. 要善於激勵專案人員,給他們以所需要的環境和支援,並相信他們能夠完成任務。
  6. 無論是團隊內還是團隊間,最有效的溝通方法是面對面的交談。
  7. 可用的軟體是衡量進度的主要指標。
  8. 敏捷過程提倡可持續的開發。專案方、開發人員和使用者應該能夠保持恆久穩定的進展速度。
  9. 對技術的精益求精以及對設計的不斷完善將提升敏捷性。
  10. 要做到簡潔,即盡最大可能減少不必要的工作。這是一門藝術。
  11. 最佳的架構、需求和設計出自於自組織的團隊。
  12. 團隊要定期反省如何能夠做到更有效,並相應地調整團隊的行為。

敏捷開發宣言比較抽象,但是敏捷開發十二原則就非常具體了,相信用過敏捷的人都知道,上面的十二原則都是開發過程的經驗總結。看到十二條原則,一一的對比我們公司在實施敏捷的過程,還存在一些問題,這些問題直接導致了低效率的,不順暢的敏捷,例如:最後一條,團隊要定期反省,這點做的就不好,造成團隊的積極性降低,開發效率下降,而且很難作出調整,甚至我開始也是拒絕的,有了這些原則作為指導,我們可以更加從容的實施敏捷。

敏捷開發十二原則是我們實踐的具體指導方針,它可以指導我們實施更加成功的敏捷。當我看到這些內容時,真有一種如飢似渴的感覺,真想一下子都把他們裝進我的腦子裡。書到用時,方恨少。及時補充自己永遠都不晚。

總結

敏捷的思想今天算是深入人心了,後面的具體方法就是教會我們如何實施敏捷。有了這些思想,整個世界都開始美好了。

下篇博文,進入我們的重點簡單介紹Scrum以及Scrum的流程,敬請關注。