1. 程式人生 > 其它 >敏捷軟體開發之 - Scrum

敏捷軟體開發之 - Scrum

Scrum 是一個用於開發和維護複雜產品的框架 ,是一個增量的、迭代的開發過程。在這個框架中,整個開發過程由若干個短的迭代週期組成,一個短的迭代週期稱為一個Sprint,每個Sprint的建議長度是2到4周(網際網路產品研發可以使用1周的Sprint)。在Scrum中,使用產品Backlog來管理產品的需求,產品backlog是一個按照商業價值排序的需求列表,列表條目的體現形式通常為使用者故事。Scrum團隊總是先開發對客戶具有較高價值的需求。在Sprint中,Scrum團隊從產品Backlog中挑選最高優先順序的需求進行開發。挑選的需求在Sprint計劃會議上經過討論、分析和估算得到相應的任務列表,我們稱它為Sprint backlog。在每個迭代結束時,Scrum團隊將遞交潛在可交付的產品增量。 Scrum起源於軟體開發專案,但它適用於任何複雜的或是創新性的專案。

Scrum流程如下圖:

SCRUM框架包括3個角色、3個工件、5個事件、5個價值

3個角色

  1. 產品負責人(Product Owner)
  2. Scrum Master
  3. 開發團隊

產品負責人(Product Ower)

主要負責構建正確的產品,確定 Scrum 團隊交付什麼並解釋為什麼做這些工作。產品負責人是產品方面的佼佼者。他們專注於瞭解業務、客戶和市場要求,然後相應地確定工程團隊需要完成的工作的優先順序。高效的產品負責人應能:

  • 構建和管理產品待辦事項。
  • 與企業和團隊密切合作,以確保所有人都能瞭解產品待辦事項中的工作項。
  • 明確指導團隊接下來提供哪些功能。
  • 確定何時釋出產品,且傾向於更頻繁地交付產品。

產品負責人並不一定是產品經理。產品負責人專注於確保開發團隊為企業帶來最大價值。此外,產品負責人是一個個體,這一點非常重要。沒有開發團隊需要多個產品負責人所提供的的混合指導。

Scrum Master

主要負責幫助產品負責人和開發團隊中的每個人理解和擁抱Scrum的價值觀、原則和實踐。

Scrum master 是其團隊中在 Scrum 方面的佼佼者。他們負責對團隊、產品負責人和企業進行 Scrum 流程方面的培訓,並尋找方法細調他們在此方面的實踐。

高效的Scrum 主管應深入瞭解團隊正在執行的工作,並可協助團隊優化其透明度和交付流程。作為最主要的推動者,此角色負責安排衝刺規劃、每日短會、衝刺稽核和衝刺回顧所需的資源(人力和物力)。

Scrum 團隊

負責以正確的方式構建產品,執行具體工作任務。Scrum團隊是具體工作的執行者,成員通常為 5 到 7 名。確定團隊規模的一種方法是亞馬遜執行長 Jeff Bezos提出的著名“兩個披薩原則”(團隊應該足夠小,以便分享兩個披薩)。

團隊成員具有不同的技能,並且彼此互相錘鍊,因此沒有人會成為交付工作的瓶頸。強大的Scrum 團隊遵循自我組織原則,且會在處理專案時採取明確的“我方”立場。團隊的所有成員會互相幫助,以確保成功完成衝刺。

Scrum團隊可推進每個衝刺的計劃。他們將自己的歷史速度用作指導,預測他們認為自己在迭代過程中可以完成的工作量。保持迭代長度固定可為開發團隊提供有關其預估和交付流程的重要反饋,進而使其能隨著時間的推移做出更加準確的預測。

 

3個工件

  1. 產品Backlog(Product Backlog)
  2. Sprint Backlog
  3. 產品增量(Increment)

產品待辦事項(Product Backlog)

產品待辦事項集合,整個產品的使用者故事集合,這些使用者故事可以來自甲方客戶、終端使用者、PO自己對產品的理解、研發團隊等。

本質上,這是團隊的“待辦事項”列表。產品負責人對產品待辦事項進行不斷反思、重新排定優先順序和維護,因為隨著我們瞭解的更多或隨著市場的變化,列表中的專案可能不再相關,或是可能會以其他方式解決問題。

衝刺待辦事項(Sprint Backlog)

衝刺待辦事項列表,一個衝刺目標階段內的使用者故事列表。這些使用者故事來自Product Backlog,每次衝刺前,PO根據交付價值,將優先順序最高的使用者故事放入迭代。

每次衝刺之前,在衝刺規劃會議(我們將在後文進行討論)中,團隊從產品待辦事項中選擇為進行衝刺而處理的專案。衝刺待辦事項可能較為靈活,可以在衝刺期間發展。但是,基本的衝刺目標(團隊希望通過在當前衝刺中實現的目標)不能受到影響。

增量(或衝刺目標)

增量是一個 Sprint 完成的所有產品待辦列表項的總和,以及之前所有 Sprint 所產生的增量的價值總和。在 Sprint 的最後,新的增量必須是“完成”的,這意味著它必須可用並且達到了 Scrum 團隊“完成”的定義的標準。

在完成以上三個工件的時候,團隊可以選擇定義很多變體,因為工件維護最好保持開放態度。比如“已完成”、“故事點”重新定義能更好的提升效率和品質,那你完全可以根據需求進行新的定義。

5個事件

  1. Sprint(Sprint本身是一個事件,包括瞭如下4個事件)
  2. Sprint計劃會議(Sprint Planning Meeting)
  3. 每日站會(Daily Scrum Meeting)
  4. Sprint評審會議(Sprint Review Meeting)
  5. Sprint回顧會議(Sprint Retrospective Meeting)

Sprint計劃會(Sprint planning meeting)

由整個開發團隊在本次會議期間規劃當前衝刺期間要執行的工作(範圍)。本次會議由 Scrum MAster主持,而團隊則在會議期間決定衝刺目標。接著,可將產品待辦事項中的特定用途故事新增到衝刺中。這些故事應與目標始終保持一致,且 Scrum 團隊也承諾可在衝刺期間完成。 在規劃會議結束時,每位 Scrum 成員均需清楚在衝刺期間可以交付的內容,以及如何交付增量變化。

Scrum每日站會(Daily Standup Meeting)

這是每天在同一時間(通常是早晨)和地點舉行的超短例會,以確保此會議簡潔明瞭。很多團隊試圖在15 分鐘內完成會議,但這只是一個參考。此會議也被稱為“每日短會”,它強調需快速舉行會議。每日 Scrum 旨在讓團隊中的每一個成員都保持同步,共同朝著衝刺目標努力,並制定未來 24 小時的計劃。 您可在每日短會上說出自己在實現衝刺目標或解決任何障礙時遇到的問題。 每日短會的其中一種常見舉行方法是讓每個團隊成員在實現衝刺目標的過程中回答三個問題: • 我昨天做了什麼? • 我今天打算做什麼? • 是否存在障礙? 然而,我們發現會議很快會變成大家陳述昨天和第二天的日程表。每日短會的理論基礎是:它可以分散日常會議的注意力,這樣團隊就可以在當天剩下的時間裡專注於工作。因此,如果它不幸淪為了每日日程表閱讀會,則應果斷做出改變以求創新。

Sprint評審會(Sprint Review Meeting)

在衝刺結束時,團隊聚集在一起進行非正式會議,以觀看增量演示或檢查增量。開發團隊向利益相關者和團隊成員展示目前處於“已完成”狀態的待辦事項,以徵求他們的反饋意見。儘管在多數情況下都會發布增量,但產品負責人仍可決定是否釋出增量。

此次稽核會議也是產品負責人根據當前衝刺重新處理產品待辦事項之時,當前衝刺可為下一次衝刺規劃會議提供相關資訊。對於為期一個月的衝刺,可考慮將您的衝刺稽核時間限制為最長四個小時。

Sprint回顧會(Sprint Retrospective Meeting)

是指團隊聚集在一起共同記錄和討論衝刺、專案、人員或關係、工具甚至在某些儀式中哪些有效以及哪些無效。我們的思路是創造一個地方,讓團隊能夠專注於哪些工作進展順利和哪些地方有待改進,而不是專注於出了什麼問題。

5個價值

  1. 承諾 – 願意對目標做出承諾
  2. 專注– 把你的心思和能力都用到你承諾的工作上去
  3. 開放– Scrum 把專案中的一切開放給每個人看
  4. 尊重– 每個人都有他獨特的背景和經驗
  5. 勇氣– 有勇氣做出承諾,履行承諾,接受別人的尊重