本文主要從Scrum的定義和目的、敏捷宣言、Scrum中的人員角色、Scrum開發流程、敏捷的12原則等幾方面幫助你們理解Scrum敏捷開發的全過程。程序員
Scrum是一個用於開發和維護複雜產品的框架,是一個增量的、迭代的開發過程,目的是讓開發人員像打橄欖球同樣迅猛並充滿激情,經過團隊合做,提升工做效率。經過團隊間的有效交互,爲企業創造價值。網絡
其實,在發表《敏捷宣言》以前,不少的敏捷實踐都已經存在且使用了,好比:Scrum、XP、KanBan等。之因此發表《敏捷宣言》,是由於這些實踐都是在單打獨鬥地推動敏捷開發,而不是以一個聯合體的形式,且沒有一個統一的指導方針。因此17位敏捷聯合創始人決定發表《敏捷宣言》,共同在全世界推動敏捷開發運動。下面是敏捷宣言的4句話:架構
Scrum中的人員分爲3個角色:產品全部者(Product Owner), Scrum Master,開發團隊(Team)。框架
(圖片源自網絡)測試
不一樣於瀑布模型將開發過程劃分爲需求、設計、編碼、測試等階段,Scrum將整個開發過程分爲屢次迭代(稱爲Sprint,衝刺),通常爲期2~4周,最多見的爲2周。Scrum並不是以一段時間集中完成一個過程,而是將全部過程當中必須的每一部分集中在這段時間內完成。需求、設計、編碼、測試、上線都必須在一個迭代中完成,每一個迭代必須產生一個能夠工做的軟件。編碼
Scrum 整個開發過程分爲五個會議:spa
1)待辦事項整理會議(Backlog Grooming Meeting)設計
迭代計劃會議開始以前3天召開,Product Owner與Scrum Master必須參加,關鍵開發者或架構師須要參加;時間控制在30分鐘到1小時。blog
由Product Owner將一批但願團隊在下次迭代時實現的用戶故事,按照實現順序描述給在場的團隊成員,Scrum Master與在場成員分析用戶故事,明確指出團隊認爲需求不明確的地方,Product Owner現場記錄,會後補全,Scrum Master與架構師,還有在場成員分析用戶故事須要包含哪些技術任務,Scrum Master先把子任務創建,方便迭代計劃會議的時候團隊能夠更準確地預估任務故事點。排序
會議結束時,Product Owner確保在迭代計劃會議開始以前團隊提出的問題都能被解決,會議重點若是團隊發現須要增強或是完善的地方,Product Owner還有兩到三天的時間能夠補強,而不是浪費迭代計劃會議的時間去作這件事情。
2)迭代計劃會議(Sprint Planning Meeting)
產品負責人創建產品功能列表(Product Backlog)。產品功能列表是一組條目化需求,它必須從客戶價值角度描述,並按優先級排序。
Scrum Master召集相關人員召開迭代計劃會,迭代計劃會在每一個迭代第一天召開,目的是選擇本次迭代的Backlog和估算本次迭代的工做量。
產品負責人逐條講解最重要的產品功能,開發團隊共同估算Backlog所需工做量,直到本迭代工做量達到飽和。產品負責人蔘與討論並回答和需求相關的問題,但不干擾估算結果。隊員認領任務(或由組長協商分發),獨立或與別人一塊兒完成任務;會議時間控制在1-2小時內。
3)每日站會(Standup Meeting)
團隊內部利用每日立會來溝通進度,15分鐘結束,開發團隊利用燃盡圖來展現總體進度;如無特殊緣由,迭代期內無變動,在每日站會上團隊成員須要回答如下3個問題:
這些都是團隊成員的彼此承諾。
4)評審會(Retrospective Meeting)
小組向產品負責人展現迭代工做結果,產品負責人給出評價和反饋。以用戶故事是否能成功交付來評價任務完成狀況。整個團隊都須要參加,ScrumMaster、產品全部者、團隊,可能還有客戶,時間控制在1-2小時內。
5)反思會(Retrospective Meeting)
在每一個迭代後召開簡短的反思會,總結哪些事情作得好,哪些事情作得很差。作得好的保留,很差的摒棄。會議得出這樣的結論:開始作什麼、繼續作什麼、中止作什麼,通常控制在15-30分鐘。
Scrum是一套開發流程,是敏捷的一種,實施主要仍是看人,強調是自組織、自驅動的,只有不斷的在實際應用中仔細體會,才能理解Scrum的真諦,把Scrum用好。
下面給出敏捷開發的12原則,這12原則做爲敏捷開發對於軟件開發流程的指導性綱領,也是對敏捷宣言進行了具備實際操做意義的解釋,但願你們在實際應用中仔細體會。
咱們遵循如下準則:
做者:史文帥來源:宜信技術學院