Scrum 是一個用於開發和維護複雜產品的框架 ,是一個增量的、迭代的開發過程。在這個框架中,整個開發過程由若干個短的迭代週期組成,一個短的迭代週期稱爲一個Sprint,每一個Sprint的建議長度是2到4周(互聯網產品研發可使用1周的Sprint)。在Scrum中,使用產品Backlog來管理產品的需求,產品backlog是一個按照商業價值排序的需求列表,列表條目的體現形式一般爲用戶故事。Scrum團隊老是先開發對客戶具備較高價值的需求。在Sprint中,Scrum團隊從產品Backlog中挑選最高優先級的需求進行開發。挑選的需求在Sprint計劃會議上通過討論、分析和估算獲得相應的任務列表,咱們稱它爲Sprint backlog。在每一個迭代結束時,Scrum團隊將遞交潛在可交付的產品增量。 Scrum起源於軟件開發項目,但它適用於任何複雜的或是創新性的項目。框架
Scrum流程以下圖:優化
Scrum以經驗性過程控制理論(經驗主義)作爲理論基礎的過程。經驗主義主張知識源於經驗, 以及基於已知的東西作決定。Scrum 採用迭代、增量的方法來優化可預見性並控制風險。spa
Scrum 的三大支柱支撐起每一個經驗性過程控制的實現:透明性、檢驗和適應。Scrum的三大支柱以下:blog
透明度是指,在軟件開發過程的各個環節保持高度的可見性,影響交付成果的各個方面對於參與交付的全部人、管理生產結果的人保持透明。管理生產成果的人不只要可以看到過程的這些方面,並且必須理解他們看到的內容。也就是說,當某我的在檢驗一個過程,並確信某一個任務已經完成時,這個完成必須等同於他們對完成的定義。排序
開發過程當中的各方面必須作到足夠頻繁地檢驗,確保可以及時發現過程當中的重大誤差。在肯定檢驗頻率時,須要考慮到檢驗會引發全部過程發生變化。當規定的檢驗頻率超出了過程檢驗所能允許的程度,那麼就會出現問題。幸運的是,軟件開發並不會出現這種狀況。另外一個因素就是檢驗工做成果人員的技能水平和積極性。事件
若是檢驗人員檢驗的時候發現過程當中的一個或多個方面不知足驗收標準,而且最終產品是不合格的,那麼便須要對過程或是材料進行調整。調整工做必須儘快實施,以減小進一步的誤差。開發
Scrum中經過三個活動進行檢驗和適應:每日例會檢驗Sprint目標的進展,作出調整,從而優化第二天的工做價值;Sprint評審和計劃會議檢驗發佈目標的進展,作出調整,從而優化下一個Sprint的工做價值;Sprint回顧會議是用來回顧已經完成的Sprint,而且肯定作出什麼樣的改善可使接下來的Sprint更加高效、更加使人滿意,而且工做更快樂。rem