Scrum

專案管理 Scrum (5)

教學目標

初步了解 Scrum 框架的基本概念。(此篇屬於課程心得筆記分享)

重點概念

首先今天剛上完兩天的 Scrum Master 課程一收信就參加測驗滿分 (100%) 通過,取得Certified Scrum Master 證書,主要是上 Vernon Stinebaker 老師的 Scrum Master 長宏課程,老師針對 Scrum 框架的概念教得非常淺顯易懂,同時也分享許多實務導入 Scrum 的經驗,還分享幾本幫助我們未來在導入 Scrum 時可以參考的課外讀物,主要有兩本我印象深刻,分別為:

  1. Start With Why: How Great Leaders Inspire Everyone to Take Action
  2. Powerful: Building a Culture of Freedom and Responsibility

第一本書籍主要是在第一天時老師所分享為什麼要導入 Scrum,其明確的目標為在最短時間內達到最高的商業價值,至於做任何事情皆會由為什麼來驅動,而 Start With Why 書籍作者 Simon Sinek 就提出黃金圈理論,黃金圈最外層為做什麼 (What)、中間層為如何做 (How) 和核心層為為什麼做 (Why),若要導入 Scrum 框架至企業之前請先想清楚為什麼做?至於 Scrum 框架要如何做和做什麼,老師則建議參考 Scrum.org 網站中的文件。第二本書籍主要是在第二天時老師所分享自管理開發團隊要如何選對人,則建議參考 Powerful 書籍,請注意在 Scrum 團隊中並沒有經理的角色,所有團隊成員皆是平等,這與現行企業組織文化衝突,至於 Scrum Master 僅負責引導開發團隊了解 Scrum 框架和移除障礙,而產品擁有者僅有權力管理產品待辦清單,而沒有權力管理短衝待辦清單,只有開發團隊才有權力管理短衝待辦清單,此外開發團隊還有責任發佈產品的增量,至於開發團隊的成員則建議找 T 型人才達到跨職能的團隊,才能擁有產出產回增量所需要的所有技能,此時若要找到最適合開發團隊的人才就會是一大挑戰。

接著上述所提到的 3 個角色,Scrum Master、產品擁有者和開發團隊,皆有屬性和責任,請參考下表。

角色 屬性 責任
Scrum Master 沒有權力和影響力 移除障礙
產品擁有者 一個人做決策和決定授權 願景和投資回報率
開發團隊 自管理和跨職能 發佈產品增量

若是 Scrum 團隊中有成員不了解 Scrum 框架,則 Scrum Master 需要指導讓其了解和負責移除障礙,雖然產品待辦事項主要是由產品擁有者決定,但是好的 Scrum 團隊也是能夠做決定,但是產品擁有者對於決定還是要負責,至於要如何選擇產品待辦清單中的事項,建議按照投資報酬率進行排序以最大化價值為挑選依據,但是產品擁有者最有挑戰的則是有對願景負責的責任。至於開發團隊會集體合作完成產品待辦事項,每個人理應會儘可能幫助團隊完成目標,並且團隊臨情況會快速回應,此時 T 型人才就適合創意激發,此外請注意開發團隊建議是 3 至 9 人,因為 9 人以上溝通成本將會是障礙,但是僅有 3 人就真的適合 Scrum 框架嗎?是值得思考的問題。

再來除了角色之外,還有 3 個產出物主要為產品待辦清單、短衝待辦清單和增量,請注意所謂燃盡圖和看板並非 Scrum 框架中必要項目,當我畢業在新創公司工作時主要用燃盡圖和看板,之後在銀行企業工作時僅用看板,原來燃盡圖無法像看板有效呈現問題,以利快速解決問題,因此漸漸不建議使用燃盡圖。產品待辦清單則是一個動態已排序好有可能會成為產品的動態列表,描述完成測試項,單一來源需求,… 等屬性並且僅能由產品擁有者在任何時間進行更新,我們要嘗試簡化工作代表著不去做帶來價值極低的工作,一般我們會以價值和成本進行排序,請注意有時還會考慮風險,總之如何有效挑選產品待辦事項是一門學問。短衝待辦清單主要是從迭代中挑選過來的產品待辦事項再加上能夠落實的計畫,可性高,方便追蹤進度詳細資訊,…等屬性,此時建議搭配看板方法,至於每個短衝待辦清單要如何做,則建議搭配極限編程 (eXtreme Programming,XP) 方法,像是其中的使用者故事就是最常被採用的最佳實踐,至於敏捷估算也非 Scrum 框架中必要項目,總之如何針對短衝待辦清單進行估算是一門學問。增量主要是從迭代中挑選過來已完成的產品待辦事項再加上已存在的增量,達到產品的遠景和目標,發佈或不發佈,…等屬性,請注意不一定每個迭代皆能夠進行發佈,並且若在發佈之後有任何產品缺陷包括資安議題出現,則建議列入最先需要被進行的短衝待辦清單,現在企業面臨越來越多的資安威脅,因此對於資訊安全越來越重視,因此如何修補已發佈的資安議題將會是非常重要的事項。

最後除了角色和產出物之外,還有 5 個活動主要為短衝、短衝規劃會議、每日站立會議、短衝審查會議和短衝自省會議,敏捷不是快但會提早完成,透過每次的短衝快速持續改善,請注意短衝必須小於 1 個月,短衝規劃會議小於 8 個小時,短衝審查會議小於 4 個小時,短衝自省會議小於 3 個小時和每日站立會議小於 15 分鐘,至於要如何執行 5 個活動請參考官方文件吧,等我之後有實際將 Scrum 框架應用至專案提高客戶滿意度時再來心得分享。

總結二天的 Scrum Master 課程上完我個人從老師那收獲很多,當然我在課堂上也問了一些之前工作應用不完整 Scrum 框架碰到的問題,老師有辦法回答和以自身經驗故事分享看法,真的很不錯,但是可能再過幾天我就會僅記得 Scrum 明確的目標為在最短時間內達到最高的商業價值了,這也是老師期望我們上完課之後至少深刻記得最重要的一句話。

Certified Scrum Master 證書

相關資源

專案管理 Scrum (4)

教學目標

初步了解 Scrum 框架的基本概念。(此篇屬於課程心得筆記分享)

重點概念

首先 Scrum 有明確目標為「在最短時間內達到最高的商業價值 (The purpose of Scrum is to achieve the high business value in the shortest time)。」,同時這也是 Scrum 的為什麼 (Why),至於 Scrum 的特徵主要有三個,分別為:

  1. 時間盒 (Timebox)
  2. 拉式系統 (Pull System)
  3. 問團隊 (Ask the team)

其中 Scrum 的核心是短衝,短衝則是一個月或更短的時間盒,而開發成員將會透過拉式系統從短衝待辦清單中選其一進行實作,此外當我們遇到問題不知如何解決時,問團隊就是最建議的解法。

接著 Scrum 是個框架,人們可以運用這個框架來處理錯綜複雜的調適性問題,善用生產力與創意來交付盡可能最高價值的產品,其中主要有三個角色 (Roles)、三個產出物 (Artifacts)、三個活動 (Events) 和五個價值 (Values),分別為:

角色

  1. 產品擁有者 (Product Owner)
  2. 開發團隊 (Development Team)
  3. Scrum Master

產出物

  1. 產品待辦清單 (Product Backlog)
  2. 短衝待辦清單 (Sprint Backlog)
  3. 增量 (Increment)

活動

  1. 短衝 (Sprint)
  2. 短衝規劃會議 (Sprint Planning)
  3. 每日站立會議 (Daily Scrum)
  4. 短衝檢視會議 (Sprint Review)
  5. 短衝反省會議 (Sprint Restrospective)

價值

  1. 承諾 (Commitment)
  2. 勇氣 (Courage)
  3. 專注 (Focus)
  4. 開放 (Openness)
  5. 尊重 (Respect)

再來在 Scrum 角色中並沒有經理的角色屬於自我組織,產品擁有者針對產品待辦清單有決定權,通常會按照優先權進行排序,但是無法變更短衝待辦清單,僅有開發團隊對短衝待辦清單有決定權,開發團隊不一定全是程式設計師,而是交付相關產品給最終客戶帶來價值的開發者,包括測試專家、分析師、科學家、…等,至於增量則是指在短衝期間內完成的所有產品待辦事項。

最後在 Scrum 活動中短衝的目標主要為產生可以發佈的產品總量,沒有最短期限,但是最多一個月。短衝規劃會議的目標主要為開發團隊給予合理的承諾,但是承諾若做不到不因處罰,而是從失敗中快速學習,通常迭代每周 2 小時,若失代一個月則 8 小時。每日站立會議的目標主要為確保大家對於目前情況有初步認識,主要回答三個問題,分別為昨天做什麼已完成,今天準備做什麼和有什麻障礙,小於等於 15 分鐘。短衝檢視會議的目標為產品擁有者和利害關係人去交流收集反饋,迭代每周 1 小時。短衝反省會議的目標為如何把下一個短衝做的更好也就是持續改進,小於等於 45 分鐘。

總結 Scrum 對於未導入敏捷的企業組織變革非常大,通常在既有企業組織文化很難直接套用 Scrum,當然企業也可能有許多組織內的自體組織導入很成功。

相關資源

專案管理 Kanban (2)

基本介紹

教學目標

初步了解看板方法的回顧會議之概念。

重點概念

(註: 以下內容主要純屬銀行資訊人員工作經驗分享,並非標準流程。)

在組織內運行看板方法時每個月最好有至少一次回顧會議,類似於 Scrum 中的短衝回顧檢討會議,請參考 Scrum 指南,主要目的為:

  • 檢驗這個月內有關於人員,工作關係,流程,和工具的情況如何。
  • 找出並加以排列做的很好的主要任務們和具有潛力改善的任務們。
  • 制定一個計劃讓團隊的最佳工作方式得以改善。

一開始我們會在看板挑一張準備分享的便利貼 (最有意義的任務) ,並且自己給予評價分數 ( A+、A、B+、B、C ),並且填下以下相關事項。

  • 基本簡介
    • 任務摘要
    • 負責人
    • 評價分數
    • 花費時間
    • 提升效益
    • 感謝何人
  • 執行情況
  • 面臨問題
  • 檢討建議

接著在開始回顧會議之前,我們團隊組長會邀請部門科長、部門協理和敏捷顧問一同參與,並且在現場白板上將每個人的便利貼按照評價分數進行分類,等待會議開始,再來就由團隊組長說明此次開會目的,以及逐一請團隊成員上台分享這個月最有意義的任務,內容包括任務摘要、負責人、評價分數、提升效益、執行情況、面臨問題、檢討建議、感謝何人。此時過程中會由團隊組長將改善建議填寫至便利貼中,每個任務可以有多個改善建議。

當每個團隊成員包括團隊組長都分享完之後,團隊組長就會將改善建議貼至白板中,接著大致說明之後,再請團隊成員個別進行投票,選出得票數最高的改善建議保留下來貼回至看板中時刻提醒團隊們注意該改善建議,例如:SQL 效能優化、SOP 文件準備、簡化工作、…… 等。

此外團隊成員會再依據 Scrum 五大價值觀,分別為承諾、專注、開放、尊重和勇氣,填寫至少兩張好或不好的事項,貼至白板中,接著再由團隊組長將所有事項進行分類,並且大致說明之後,再請團隊成員個別進行投票。再來我們會針對不好的事項,找到最能解決與控管的利害關係人,並且將此次回顧會議的記錄文件複本給提供參考。

最後由敏捷顧問進行評論,指導我們該如何進行改善,以及協助後續與利害關係人的溝通。總結來說,看板方法除了每日的站立會議之外,每月的回顧會議更能夠讓我們更專注於維護和開發的任務中,過程中尊重每個人的意思、開放心胸進行學習、勇氣挑戰優化任務、並且在承諾的時間內完成任務的交付。

相關資源

專案管理 Kanban (1)

基本介紹

教學目標

初步了解看板方法的基本概念。

重點概念

當組織發生變革時我們要如何適應呢?然而不論正向思考或負向思考皆會面臨組織的危機點,此時藉由精實開發之看板方法有效且短時間內修正渡過危機持續成長。從專案開始我們做的第一件事情主要是看見整體,接著定義範圍,可是有挑戰的複雜專案需求會一直改變,此時藉由敏捷開發之 SCRUM 方法有效由上而下處理複雜專案;然而當敏捷開發之 SCRUM 方法與組織文化抵觸時,會先以組織文化為主,也因此敏捷開發之 SCRUM 方法的成功關鍵在於老闆的觀念是否正確。此外若當發現組織文化與看板方法抵觸時則會修正組織文化,同時符合精實開發的原則縮短開發時間,所以當組織發生變革或要導入敏捷開發時最好先從落實精實開發之看板方法開始。

精實開發的原則主要是組織文化的基礎規範,分別為:

  1. 消除浪費
  2. 增強學習
  3. 盡量延持決策
  4. 盡快交付
  5. 授權團隊
  6. 嵌入完整性
  7. 看見整體

第一原則消除浪費主要先繪製出開發流程或價值流程圖,找出浪費時間的原因,像是等待就是一種不能控制的事情,減少等待的時間,以及資源充份應用,就能夠讓時間變的更快。開始的第一步就是使用看板,目前敏捷開發之 SCRUM 方法皆採用看板,因為看板能夠充份表達出昨日主要進行哪些對組織有意義的事情、今日將會進行哪些對組織有意義的事情,以及目前遇到什麼阻礙需要團隊協助解決,同時藉由昨日事情進行自我檢討和今日事情進行自我學習,看板方法的約束相較 SCRUM 方法約束較少,主要有六大核心實務,分別為:

  1. 視覺化
  2. 限制半成品數
  3. 管理工作流程
  4. 制定明確規則
  5. 落實回饋機制
  6. 在協作中持續改善

其中前三項核心實務的約束為主,後三項核心實務的約束則為策略,看板其實源自於豐田主要有兩個原則為零庫存系統和拉式系統,直到 2007 年才正式正名為『看板方法』,主要僅是改變管理方針的途徑。藉由看板能夠讓專案透明化,並且透過給予學習的機會讓團隊成員成長更快速,以及藉由回饋所帶來的價值持續改善。

最後我們都知道專案失敗最主要的原因為需求不明確,此時要如何讓需求更明確呢?主要可以藉由使用者故事以卡片說明、對話問題和測試案例的方式拆解出滿足需求的任務,卡片資訊主要包括標題、工時預估、說明、負責人、重要性、…等資訊。因此主要會由團隊的一起評估開發時間,以及進行討論與回饋,切記卡片主要僅代表團隊對任務的認知,以及最終目標,內容足夠就好,當然除了卡片之外,落實看板方法最好了解看板背後隱藏的規則,並且針對『完成』進行定義,再藉由增刪欄位改善組織文化。總而言之若要導入敏捷開發之 SCRUM 方法之前,最好先導入精實開發之看板方法改善組織文化。

相關資源

專案管理 Scrum (3)

基本介紹

教學目標

初步了解 Scrum 產物的概念。

重點概念

敏捷不是快而是處理複雜的專案,在面對每項任務時估算時間足夠就好。Scrum 主要會由三種面向進行規劃,分別為角色、活動和產物。為了要達到團隊共同溝通所以會採用站立會議,同時使得專案更透明,並且鼓勵學習成員之間共同估算時程和學習做超過能力的事情。其中 Scrum 產物主要分為產品待辦事項、衝剌待辦事項、遞增產品、燃盡圖。

首先產品待辦事項是指一份已經排好順序的事項表,包括了產品所需要的所有東西,並且唯一記錄針對產品有任何改變的必備條件表,其中產品負責人對於產品待辦的內容,可用性和重要順序必須負責任。此外產品待辦事項是動態的,主要會隨著產品的適用性,競爭力和用途來不斷地改變,因此只要產品存在,產品待辦事項就會存在。

接著衝剌待辦事項主要是從產品待辦事項中選出這次衝剌項目主要做的事項,只屬於開發團隊擁有和改變,同時加上發表遞增產品所需要的功能,以及將這功能轉換成完成品所需工作的預測。其中包括足夠細節的計劃,任何進度改變皆可在每日 Scrum 匯報中清楚看到,並且持續修正衝剌待辦事項,一步一步了解哪些是達成衝剌目標必須的工作。此外當有新工作需求時,開發團隊會將相關事項加入至衝剌待辦事項中,並且當工作有進展或完成時,預估剩餘工作量才會被更新。

再來遞增產品主要是指在衝剌期間內所有已完成的產品待辦事項,以及之前衝剌遞增產品價值的總合,同時在衝剌的最後,新的遞增產品必須是完成的。其中所謂完成的意思是代表其使用狀態達到 Scrum 團隊對於完成的定義,必須是可以使用的狀態。

最後燃盡圖主要會在專案完成之前,針對需求完成的相關工作進度以視覺化的方式呈現。其中有 Y 軸代表工作和 X 軸代表時間,在理想情況下,該圖表是向下的曲線,將會隨著剩餘工作的完成進度,燒盡至零為主。

相關資源