標籤:

對Scrum的認識

為什麼是Scrum?

Scrum是一種輕量級軟體開發方法,即一種做事的方法。目前有很多開發方法或管理方法,為什麼選擇Scrum呢?

1.個體交互重於過程和工具;

2.可用的軟體重於完備的文檔;

3.客戶協作重於合同談判;

4.響應變化重於遵循計劃。

通俗地講,它適用於軟體開發,因為軟體需求經常改動。它適用於客戶的需求不明的情況,因為需求不是很明確,就需要你經常與客戶溝通,傾聽反饋,持續改進。它適用於競爭激烈的市場,優先於競爭對手交付一個不完美但至少能用的產品非常重要。它適用於快速變化的市場,在你埋頭苦造一輛汽車的時候,客戶已經想開飛機了,這就需要你能把汽車改成飛機,還能按時交付。

此外,Scrum也是一種企業管理方式。比如,CEO可以是最大的PO,給高管們講idea(user story ),定期檢查Demo,把控產品用戶體驗,負責和外界的溝通合作,例如喬布斯、周鴻禕等。

總之,為了應對外界變化的環境、保證內部工作協同的順暢,Scrum的確是一個極佳的選擇。

什麼是Scrum?

Scrum,原本是指橄欖球運動的一個專業術語,原意為團隊通力合作,在場地內傳球。這個過程需要認真配合、信念一致和目標明確。敏捷開發流程命名為Scrum,其實表明了作者希望這種流程就像大家一起打橄欖球,敏捷的動作、澎湃的激情、力爭上遊的拼搏精神。

敏捷的3個角色:

Product Owner(PO):產品經理,他的工作重點是產品業務方面,這個人為團隊創造產品願景,給出一份明確的、可度量的、合理的產品backlog,並對其排優先順序,同時全面考慮風險與回報。

Scrum Master(SM):Scrum主管,為Scrum過程負責,負責培訓團隊其他成員,確保Scrum得到正確運用,幫助團隊消除一切障礙。

Scrum Team:開發團隊,真正做事的人,必須能夠落實PO的願景,團隊規模宜小不宜大,一般在3-9人比較合適。

敏捷的4個會議:

Sprint Planning Meeting:迭代計劃會議,在啟動每個sprint前召開,product owner和scrum team將backlog分解成小的task,決定在即將進行的sprint里需要完成多少backlog item,確定好這個product backlog的優先順序。

Daily scrum meeting:每日站會,一般15分鐘,SM向團隊成員提出以下問題:1)你昨天做了什麼去幫助團隊完成衝刺?2)今天你打算做什麼來幫助團隊完成衝刺?3)什麼因素阻礙了團隊的前進之路?

Sprint review meeting:迭代演示會議,在衝刺結束之前,給PO、SM、開發團隊、管理人員、客戶等利益相關人展示成果,並接受批評。

Sprint retrospective meeting:迭代回顧會,對剛結束的sprint進行總結,會議的參與人員為團隊開發內部人員,會議一般3小時。

敏捷的5個產物:

Product Backlog:產品需求清單,包含產品所有需要交付的需求。

Sprint Backlog:迭代需求清單,包含一個迭代周期內要完成的需求。一旦定下來,是不可能改變的。

User Story:用戶故事,站在用戶角度,考慮功能,以及價值方式。

Task:任務,一個用戶故事,將分解為多個任務,以便於安排一個迭代的工作。

Impediment Backlog:阻礙清單,包含所有阻礙開發團隊完成任務的所有問題的清單。

How to do?

一個迭代一般在1-4周,我們公司目前實行的是2周一迭代。上圖展示了Scrum的過程:產品願景→產品待辦事項→迭代計劃→衝刺待辦事項→每日站會→產品增量→迭代評審→迭代回顧。

下面說說,目前將scrum小小應用於我個人工作的心得。

我在工位旁邊開闢了一個看板:根據TO DO/DOING/CHECK/DONE分為4欄。我屬於職能部門,工作內容種類比較多。我將1周作為一個迭代期,每周五會將下周需要做的事項分解成一個一個product backlog,根據目前的狀況排優先順序,然後放入TO DO一欄中;開始做一個backlog時,便將它移入DOING一欄中,同一時間段只做一件事情;該事情完結一段後,會放入CHECK一欄中,此時會全盤考慮下這個story開展的前後並與客戶溝通,得到客戶好的反饋後,此backlog完結,若得到批評,此backlog將會調整修正,直至將它移入DONE一欄。在此過程中,每天開始工作前,我都會看下自己昨天完成了哪些事項,今天打算做哪些事項,目前遇到了哪些障礙。

此種方法,相比較我之前的工作list來講,工作事項更清晰、直觀,同一時間更能專註,並且能了解所有backlog進展情況,同時我的用戶也能知曉我的工作進展情況,我的工作效果也更好了。

Scrum不僅是一個很好的開發方法,也是一個比較好的管理方法。在公司實行中,有些坑,也是需要注意滴,例如,不知曉我們為什麼敏捷,只是基於公司壓力而敏捷,此種現狀會促成很多形式主義者;使用看板、jira就敏捷的偽敏捷等。

面對不斷變化的世界,選擇scrum敏捷法,可以讓我們更好地擁抱變化。


推薦閱讀:

琴瑟和鳴--SCRUM中「講」好用戶故事
如何有效的在一個研發團隊中推行Scrum?
用戶故事的前世今生
Scrum敏捷實踐: Daily Scrum Meeting

TAG:Scrum |