今天聽了一個內部的分享,結合本身之前的經歷,記錄整理一下:工具
什麼是Scrum排序
Scrum是一種迭代式增量軟件開發過程,一般用於敏捷軟件開發。Scrum在英語的意思是橄欖球裏的爭球。資源
雖然Scrum是爲管理軟件開發項目而開發的,它一樣能夠用於運行軟件維護團隊,或者做爲計劃管理方法。Scrum之間的合做稱爲「Scrum of Scrums」。開發
Scrum是一種系統而不是具體的過程。只要基於這套系統或者說原則,其具體實現能夠是多樣的。產品
Scrum中的角色it
Scrum當中的角色主要分爲:io
Product Owner(PO):主要負責維護Product Backlog,相似產品經理的角色。Product Backlog相似於一個基於重要性排序的feature庫。那麼PO須要對真個產品線有足夠的瞭解,才能正確的對不一樣的feature進行排序。並且PO須要將feature拆分到足夠小,而且定義的足夠好。因此一般PO適合由有必定資歷的人來擔任。ast
Scrum Master:主要承擔項目經理的角色。控制團隊進度;帶領團隊進行Scrum實踐;保護團隊。保護團隊有不少方面,好比:確保在一個Sprint內每一個feature的優先級不會發生變化。軟件
Scrum Team:唔,幹活的咩。採用一些敏捷方法仍是很好玩的。並且當團隊採用Scrum的時候,有些東西能夠自底向上完成。方法
Product Engineering Manager(PEM):唔,在哪裏都有老大咩。
Sprint
Sprint就是一個開發週期。每一個開發週期從product backlog中選取合適的任務,而後你們一塊兒開發。我的認爲一個比較好的實踐是:首先對任務進行拆分,並經過一個相對點數進行時間預估。而後組員依次根據重要性選擇任務進行完成。當一項任務完成以後,再選擇下一項完成。這樣的好處是可以保證一我的在單位時間內相對專一。專一每每意味着高校。
一個比較好的經驗就是:不要把對於項目預估的點數用做其餘任何用途,特別是考覈。一旦有了其餘用途,點數每每將不可以繼續保持其真實性。從而致使整個團隊沒法真實的預估項目進度。
Definition Of Done
其實這是一個很好的話題。什麼叫作作完了一件事情:Code Ready?Release?Pass Test?每一個人都有不一樣的定義,如何達到一個共識。
延伸一下,爲何作這件事情。是想驗證一個假設?想發佈一個功能,從而改善產品?這件事情怎麼算是成功?怎麼算是失敗?換句話說,如何判斷是否繼續投入資源,甚至砍掉這個功能。這些東西應該在一開始就定義好,而且一直堅持。
Action
我會嘗試在本身的工做中引入Scrum。我並不認爲這是一個須要全組都採用,不然就不能使用的模式。基於我對它的理解,我認爲其關鍵點以下:
任務的拆分與預估。把任務拆分紅足夠小、足夠獨立的部分。從而使得整個過程更加可控。這一點對於我來講會是一個難點。剛開始的拆分和預估均可能會作得很爛。Practice makes perfect。只要保證全部的數據真實且完整,就行了。
Weekly Sprint & Daily Scrum。以周爲單位計劃工做,這樣可以有一些buffer來完成較難的工做。天天回顧總結一下當前進度,可以幫助本身及時做出調整。是須要加加班;仍是須要經過一些方法來unblock本身;仍是就是預估錯誤了,須要delay或者cut off。
Definition Of Done。提早明確好Goal & Non-Goal。這樣可讓他人做出正確的預期,同時避免南轅北轍的故事。
工具。我的以爲One Note對於一我的來講就夠了。因此目前我會採用One Note來幫助我進行實踐。