Scrum是敏捷開發的一種方法,目前應該算是最夯最多人在推行採用的吧!要學習Scrum我覺得這篇文章介紹得很不錯,什麼是Scrum?不是工程師也能懂的Scrum入門介紹!,這邊我就用我的方式另外說明解說我認知的Scrum
圖片來源:當一個 Scrum Master 是一個怎樣的體驗?
先用這張圖片開場,在Scrum的世界裡,主要是三個角色、五個事件、三個產物
Role 角色
- Product Owner 產品負責人:負責釐清需求並找到有價值的商業模式,同時也需決定每個需求的優先順序 ,並對成品驗收負責
- Scrum Master 敏捷教練:負責執行Scrum方法,培養團隊敏捷的概念,並主持會議,持續改善流程
- Team:包含測試與開發人員,需要互相配合,在每個Sprint內完成必須交付的任務
Event 事件
- Sprint 衝刺期:為Scrum中的一個週期,通常以2-4週為單位,理論上一旦Sprint開始,就不得再增加任務,除了很緊急的bug以外
- Sprint Planning:在每個Sprint開始前的會議,約1-2小時,會依照Product Owner提供的優先順序和團隊在這個Sprint週期中擁有的點數(一般就是我們可以使用的時數)評估哪些需求要加入此次的Sprint中
- Daily Scrum 每日例會:又稱作Daily Standup Meeting,每日早上開的短會議,限制只有15分鐘,主軸為每個人要說明三件事情:
- 昨日做了什麼?
- 有遇到什麼問題
- 今日要準備做什麼
但要注意一件事情,在每日例會上不討論細節,也不追究問題,只是單純地描述而已
- Sprint Review:主要是Demo成品,作為此次Sprint的成果交付以及給予回饋
- Retrospective:一次1小時,主要是回顧這次Sprint的內容,檢討不足的地方作為下次改進的重點
Artifact 產物
- Product Backlog 產品代辦清單:為整個產品的需求的清單,會讓Product Owner排定優先順序
- Sprint Backlog 衝刺期待辦清單:每次Sprint週期劃入的任務
- Product Increment 產品增量:簡單來說就是開發完Sprint週期中的任務後,完成的成品,會為該產品增加價值
接著,下方這張圖可以很清楚地顯示出Scrum跑一次Sprint的過程
圖片來源:搞笑談軟工
另外,在Scrum進行中,常常會在白板上畫出區塊,然後利用便利貼寫上Task任務,並在每次會議中移動調整,這就是所謂的Scrum Board,有點類似Kanban,但是兩者的概念不太一樣,後面會再行對比說明
附上一張常見的Scrum Board圖,主要區塊為四個:Story 故事、TODO / Not Started 待辦事項、In Progress 進行中、Done 已完成
要注意!在Scrum Board的世界裡,Story會是以Task任務的概念存在,有的時候這個Task完成了,並不表示User Story就整個完成了,是以開發者的角度去解讀,每個任務的週期
圖片來源:What Is a Scrum Board?
其實,Run Scrum不難,但是要執行的好卻是很有挑戰,尤其Scrum Master的職位我覺得特別需要著墨,我自己有執行過一次這種開發方式,真的挺有趣的,我身邊有些團隊也都開始加入敏捷開發的行列,他們所選用的方法也是Scrum,待之後有更多實務經驗時,再來分享細部經驗吧
參考資料、延伸閱讀:
下集預告:Kanban