敏捷開發探尋本質

咱們須要坐下來好好談談,什麼事敏捷開發。編碼

1.什麼是敏捷開發?spa

敏捷開發(Agile Development)是一種以人爲核心、迭代、按部就班的開發方法。生命週期

怎麼理解呢?首先,咱們要理解它不是一門技術,它是一種開發方法,也就是一種軟件開發的流程,它會指導咱們用規定的環節去一步一步完成項目的開發;而這種開發方式的主要驅動核心是人;它採用的是迭代式開發;開發

 我有一個朋友(你們都這麼說,我有一個朋友如何如何,我有一個同窗如何如何,故事每每是這樣開始的),在一個大型的軟件公司工做,他們公司是典型的瀑布模型,文檔驅動。每一個類,每一個方法,都須要在文檔裏面註明。這樣開發人員在開發的過程當中就有了大量的維護工做來去作。你修改一個類以前,先要去修改一個文檔。更重要的是我這個兄弟在日企工做。你聯想到了什麼?純真的笑 :-D文檔

曾將有一位先賢曾經說過,在軟件的生命週期當中,除了需求確認和軟件編碼以外,全部的其餘的工做都是shit! fuck!and if in chinese is 艹艹。
產品

爲何說是以人爲核心?it

咱們大部分人都學過瀑布開發模型,它是以文檔爲驅動的,爲何呢?由於在瀑布的整個開發過程當中,要寫大量的文檔,把需求文檔寫出來後,開發人員都是 根據文檔進行開發的,一切以文檔爲依據;而敏捷開發它只寫有必要的文檔,或儘可能少寫文檔,敏捷開發注重的是人與人之間,面對面的交流,因此它強調以人爲核 心。ast

注意,敏捷開發不是不要文檔,而是刪繁就簡,把有限的精力集中到最重要的文檔上面去。好比需求文檔,這個必須有!軟件

什麼是迭代?開發流程

迭代是指把一個複雜且開發週期很長的開發任務,分解爲不少小週期可完成的任務,這樣的一個週期就是一次迭代的過程;同時每一次迭代均可以生產或開發出一個能夠交付的軟件產品。

里程碑式的意義,經過迭代不斷地獲得反饋。而後讓軟件知足客戶的需求。分解任務一方面是激勵團隊,另外一方面是把控任務。


關於Scrum和XP

前面說了敏捷它是一種指導思想或開發方式,可是它沒有明確告訴咱們到底採用什麼樣的流程進行開發,而Scrum和XP就是敏捷開發的具體方式了,你能夠採用Scrum方式也能夠採用XP方式;Scrum和XP的區別是,Scrum偏重於過程,XP則偏重於實踐,可是實際中,二者是結合一塊兒應用的,這裏我主要講Scrum。

 

什麼是Scrum?

Scrum的英文意思是橄欖球運動的一個專業術語,表示「爭球」的動做;把一個開發流程的名字取名爲Scrum,我想你必定能想象出你的開發團隊在開發一個項目時,你們像打橄欖球同樣迅速、富有戰鬥激情、人人你爭我搶地完成它,你必定會感到很是興奮的。

而Scrum就是這樣的一個開發流程,運用該流程,你就能看到你團隊高效的工做。

 

【Scrum開發流程中的三大角色】

產品負責人(Product Owner)

主要負責肯定產品的功能和達到要求的標準,指定軟件的發佈日期和交付的內容,同時有權力接受或拒絕開發團隊的工做成果。

 

流程管理員(Scrum Master)

主要負責整個Scrum流程在項目中的順利實施和進行,以及清除擋在客戶和開發工做之間的溝通障礙,使得客戶能夠直接驅動開發。

 

開發團隊(Scrum Team)

主要負責軟件產品在Scrum規定流程下進行開發工做,人數控制在5~10人左右,每一個成員可能負責不一樣的技術方面,但要求每成員必需要有很強的自我管理能力,同時具備必定的表達能力;成員能夠採用任何工做方式,只要能達到Sprint的目標。

 敏捷開發的要義是把對文檔的依賴轉化爲對人的依賴,要求每一個人都是一個自我管理特別牛叉的人。

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息