關於scrum的一些定義
敏捷軟件開發方法是一種把新增功能通過較小的循環逐步迭代添加到項目中(的項目管理方法),工作是由自我組織的團隊以高效合作的方式擁抱和適應變化來保證客戶需求被真正滿足的方式來完成軟件開發項目的方法。
每個循環被稱作一個迭代,或者沖刺(sprint),而這幾乎就像項目本身的一個迷你小型軟件項目,因為他包含所有發布增加的新功能的必要的項目功能任務。在理論上,每個沖刺結尾,產品應當被備好做一次總版集成。
敏捷方法強調實時溝通,相比較書面文檔和生硬的流程溝通,更偏好面對面的溝通。除此之外,敏捷流程方法引進了一個廣泛使用的技術之一---將產品需求以講用戶故事的形式表達出來。每個用戶故事都有各種各樣的字段如"主角","目標"或者他們需要執行的一個任務,一個解釋。
敏捷測試中
測試不是最后的一個階段;它真的是在集成整個迭代循環中,而且與編程任務肩並肩一同進行。
質量保證工程師在項目的一開頭就介入---與開發團隊同步,而且他們對產品需求和顧客需要的相同信息同時有權限進入。這種從開頭進入的參與,結合開發和質量保證工程師現在是相同的敏捷團隊的部分,他們每天一起工作,他們對彼此對沖刺整體的成功要執行的任務有完全的可見性的事實,
意味着他們之間的更好更頻繁的溝通
因為測試人員傾向於特別擅長挖掘需求和辨識不斷變換的場景,(尤其是當他們完全可以看到產品需求和用戶需要時),他們提供了有價值的設計觀點和架構決策,從項目一開始。
關於scrum的一些概念
Scrum 是一個用於開發和維持復雜產品的框架 ,是一個增量的、迭代的開發過程。在這個框架中,整個開發過程由若干個短的迭代周期組成,一個短的迭代周期稱為一個
Sprint(我們可以稱之為迭代或者沖刺),每個Sprint的建議長度是2到4周(互聯網產品研發可以使用1周的Sprint,較多用的是兩周)。
在Scrum中,使用產品Backlog來管理產品的需求,產品backlog是一個按照商業價值排序的需求列表,列表條目的體現形式通常為
用戶故事。
Scrum團隊總是先開發對客戶具有較高價值的需求。在Sprint中,Scrum團隊從產品Backlog中挑選最高優先級的需求進行開發。
挑選的需求在
Sprint計划會議上經過討論、分析和估算得到相應的任務列表,我們稱它為Sprint backlog。
在每個迭代結束時,Scrum團隊將遞交潛在可交付的產品增量。 Scrum起源於軟件開發項目,但它適用於任何復雜的或是創新性的項目。

Scrum框架包括3個角色、3個工件、5個活動、5個價值
3個角色
- 產品負責人(Product Owner)
- Scrum Master
- Scrum團隊
3個工件
- 產品Backlog(Product Backlog)
- SprintBacklog
- 產品增量(Increment)
5個活動
- Sprint計划會議(Sprint Planning Meeting)
- 每日站會(Daily Scrum Meeting)
- Sprint評審會議(Sprint Review Meeting)
- Sprint回顧會議(Sprint Retrospective Meeting)
- 產品Backlog梳理會議( Product Backlog Refinement)
Scrum中通過三個活動進行檢驗和適應:
每日例會檢驗Sprint目標的進展,做出調整,從而優化次日的工作價值;
Sprint評審和計划會議檢驗發布目標的進展,做出調整,從而優化下一個Sprint的工作價值;
Sprint回顧會議是用來回顧已經完成的Sprint,並且確定做出什么樣的改善可以使接下來的Sprint更加高效、更加令人滿意,並且工作更快樂。
Scrum由一組迭代周期組成,每個迭代(sprint)為2-4周,在每個迭代中都依次有planning (計划) , daily standup meeting(每日站會) , review(評審) 和retrospective (回顧)會議組成,由ScrumMaster (Scrum負責人)來召集這些會議,當然由團隊負責人擔任ScrumMaster也是比較常見的;有些團隊也采用成員輪流擔任ScrumMaster的方式,這樣可以增強每個團隊成員的主人翁和責任意識等。
scrum認為:發布也就是Milestone(里程碑),寧可發布二十個功能發布五次,也不要在內部搞五個Milestone然后一口氣發布一百個功能
所以scrum的一個有點,快速迭代,這對於快速發展的互聯網產品來說事十分必要的
一般公司實行scrum測試開發之前是瀑布式(版本式)

Scrum是一種輕量級軟件開發方法,即一種做事的方法。目前有很多開發方法或管理方法,為什么選擇Scrum呢?
1.個體交互重於過程和工具;
2.可用的軟件重於完備的文檔;
3.客戶協作重於合同談判;
4.響應變化重於遵循計划。
通俗地講,它適用於軟件開發,因為軟件需求經常改動。它適用於客戶的需求不明的情況,因為需求不是很明確,就需要你經常與客戶溝通,傾聽反饋,持續改進。它適用於競爭激烈的市場,優先於競爭對手交付一個不完美但至少能用的產品非常重要。它適用於快速變化的市場,在你埋頭苦造一輛汽車的時候,客戶已經想開飛機了,這就需要你能把汽車改成飛機,還能按時交付。
綜上所述,scrum是一種把新增功能通過快速迭代逐步迭代到項目中的項目管理方法
關鍵有兩點:適應變化,快速迭代
對於現在需求和版本快速變化的互聯網產品比較適合
總體步驟是:
1 項目負責人(一般是PM)列出一個要做的功能列表,按照優先級排好;每次從列表中抽出最重要的,且可以在二到三周內可以完成的幾個;安排成子任務,分配好;sprint計划會議
2 對於每個任務分配一個PM,一個Designer,一兩個程序員和一個測試,一個sprint(不用直譯為沖刺,可理解為功能迭代)sprint評審會議
3 馬上開始做,且小組成員(PM開發測試)共同參與明確需求,設計原型,和編碼迭代等整個過程
4 每日站會(daily scrum)來分享每個小組具體完成了哪些進度;同時項目負責人再總結總體的進度;
5 2-3 周后,小任務們應該告一段落,然后回顧總結一次。准備下一次的小任務(next sprint)
參考鏈接
https://baijiahao.baidu.com/s?id=1593711112375362857&wfr=spider&for=pc
http://www.360doc.com/content/17/0714/08/38884510_671210321.shtml
https://blog.csdn.net/wd168/article/details/51766443
https://www.cnblogs.com/i16i1007/p/6650555.html
https://zhuanlan.zhihu.com/p/28283323