我的 Scrum Master 筆記

因緣際會下接下了團隊的 Scrum Master 角色,利用這次機會深入的了解一下敏捷開發以及 Scrum 框架的運及其理念、原則,並且筆記一下 Scrum Master 在團隊中的任務項目。


理解定義


# Agile 敏捷開發

Agile 敏捷開發是指一組基於迭代開發軟體的開發方法論,通常會促進嚴格的專案管理流程,鼓勵適應、團隊合作、自組織和問責制、高質量軟體的快速交付以及與客戶需求和公司目標保持一致的業務方法。

敏捷開發是一種用於專案管理和軟體開發的思維,可幫助團隊更快地交付成果。敏捷開發是以定期交付成果的方式運作,不會讓結果在所有事情都完成之後才發佈。需求、計劃和結果會持續受到團隊的評估,因此擁有快速響應變化的自然機制,猶如一個人的心跳,持續地跳動著。


  • 能應對需求快速變化的開發方法
  • 以迭代開發模式取代傳統的瀑布式開發
  • 接受需求合理的變更

四大宣言:

  • 「個人與互動」重於「流程與工具」
  • 「可用的軟體」重於「詳盡的文件」
  • 「與客戶合作」重於「合約協商」
  • 「回應變化」重於「遵循計劃」

十二原則:

  • 最優先的任務是盡早並持續交付有價值軟體來滿足需求。
  • 歡迎改變需求。掌控變更,以維護客戶的競爭優勢。
  • 經常交付可用的軟體,以較短時間間隔為佳。
  • 業務人員與開發者必須在專案全程中天天一起工作。
  • 積極建構專案,給予所需環境與支援,信任可以完成工作。
  • 面對面的溝通是傳遞資訊效率最高且效果最佳的方法。
  • 可用的軟體是最主要的進度量測方法。
  • 敏捷程序提倡可持續的開發。
  • 持續追求優越的技術與優良的設計,以強化敏捷性。
  • 精簡或最大化未完成工作量之技藝是不可或缺的。
  • 最佳的架構、需求與設計皆來自於能自我組織的團隊。
  • 團隊定期自省如何更有效率,並適當地調整與修正行為。



# Scrum

Scrum 是一種實踐敏捷開發的框架。在這樣的架構中,人員可以專注地處理複雜問題,同時以高效能與創造力來產出最高價值的產品。

Scrum 團隊以迭代與增量式的方式交付工作,每個迭代稱作 Sprint,迭代週期不超過一個月,通常是兩星期。每個 Sprint 都專注在 Sprint Goal,在 Sprint 結束時,團隊會進行 Sprint Review 一起檢視當下的結果與調適計畫,以及 Sprint Retrospective 來回顧以及持續改善。


Scrum 中的主要角色包括:

  1. 產品負責人(Product Owner, PO)
    確定產品的方向和願景,定義產品發布的內容、優先級及交付時間,為產品投資報酬率負責。

  2. 敏捷教練(Scrum Master, SM)
    是 Scrum 教練和團隊帶頭人,確保團隊合理的運作 Scrum,並幫助團隊掃除實施中的障礙。

  3. 開發團隊(Development Team, DV)
    一個跨職能的小團隊,人數 5-9 人,團隊擁有交付可用軟體需要的各種技能。


Scrum 中的主要會議包括:

  1. 計劃會議(Planning Meeting)
    在 Sprint 開始的第一天,制定本次 Spring 的計畫、開發目標,由產品負責人決定開發的優先順序,由開發團隊決定能夠完成的開發量。

  2. 每日站立會議(Daily Meeting)
    在 Sprint 當中的每一天,召開約 10 分鐘左右的簡短會議,會議中由開發團隊成員報告三件事:

    • 昨天完成的工作(Yesterday)
    • 今天準備要做的工作(Today)
    • 是否遇到任何阻礙,需要請求幫忙(Help)
  3. 檢視會議(Review)
    在 Sprint 最後一天,開發團隊將回顧各自的工作項目並展示開發成果,團隊可以藉此檢視產品是否需要調整。

  4. 回顧會議(Retrospective)
    在 Sprint 最後一天,團隊成員可以回顧與檢視 Scrum 的開發流程,看看是否有需要改善的地方。


團隊的實踐(2022/6/21 更新)


# 概況

目前團隊(雇主品牌)由十人組成,Spring 以週二開始,每兩個禮拜為一個循環,每雙週二的早上 10:00 為 「Retro & Plan 會議」,每日的早上 09:50 為 「站立會議」。團隊的 Scrum 管理工具為 Jira。



# Retro & Plan 會議

每次的議程大致如下:

  1. 佈達事項
    SM 宣達「團隊運作」的相關事項(近期的上線時間、範疇以及上線單負責人、團隊運作的調整改動等…)

  2. 營運事項同步
    PO 宣達「產品營運」的相關事項(活動宣傳、公司重心、產品業績、季度或年度目標等等…)

  3. 總結會議(Review & Retrospective)

    • 團隊成員報告開發進度以及成果 順序:企劃 > 設計 > 前端 > 後端 > 資料
    • Follow Up: 追蹤上個 Sprint 中所回饋的「更好的」項目
    • 便利貼: 圖隊成員回饋團隊運作中「好的」以及「更好的」的部分,以使團隊持續改善開發流程
  4. 計劃會議(Planning Meeting)
    宣達這次 Sprint 的目標和開發項目,並確認成員的可投入資源。


※ Scrum Master 筆記:

  1. 事前和 PO & PM 同步開發項目的排序(Product Backlog & Spring Backlog)
  2. 在大家進行便利貼回饋時執行 Jira - Close Spring
  3. 在計劃會議結束後執行 Jira - Start Spring


# 站立會議

團隊成員依照 企劃 > 設計 > 前端 > 後端 > 資料 的順序報告 Yesterday、Today、Help。Spring 第二週星期一的站立要請成員報告目前的詳細開發進度,並開啟 Jira 供成員觀看對應。



# 團隊心跳

以下表格為一個 Spring 的週期,每個週期中除了要確認及開發該 Spring 的項目(This Spring)外,針對上個 Spring 所開發完成項目(Prev Spring)要進行上線及修復的作業,並且針對下個 Spring 的目標(Next Spring)要進行事前的梳理及排序。

事項所屬 Srping
Prev Lab Staging Production
This Retro&Plan Poker 工時確認 Jira 站立
Next 企劃&設計 梳理會議 排序會議


# 其他事項

  • 確認 Jira 工單、上線單的狀態和填寫狀況
  • 新增、確認 Jira 版號和上線範疇
  • Poker 確認: 和 Tech Lead 確認工程的工時是否有溢出/未滿,以及處理方式