《SCRUM:用一半的時間做兩倍的事》書摘

Sprint 9 成果發布

Balloon
14 min readMar 29, 2022

概述

許多談 Scrum 的書籍都在教讀者 Scrum「怎麼跑」,卻鮮少仔細頗析「為什麼這樣跑」。本書作者是 Scrum 的發明者,全書娓娓道來 Scrum 的發明歷程,讓讀者可以跟著作者的腳步實際走一遭,看看 Scrum 被發明的時空背景,以及 Scrum 中的各個角色、流程是為了解決什麼樣的問題,進一步去體會 WHY Scrum。

本書含金量高,脈絡性也強,為了盡可能不遺漏任何重要環節,本篇書摘保留原書的章節標題,依序一章一章做重點節錄,盡量在有限的篇幅中完整還原全書內容。

一、世界的運作法則已瓦解

傳統瀑布式的開發方式,會在一開始花很多時間規劃各個細節,產出漂亮的甘特圖(作者稱之為難以抵擋的誘惑),彷彿一切只要計畫好就會順利被完成。但不幸的是,人類並不善於估算完成一件事的時間與心力,所以專案最終往往嚴重超時超支,仍無法完成⋯⋯

Scrum 是一個考慮不確定性和創造性的架構,是隨著學習過程建立的。基本概念是「 經常檢視它」:檢驗與調整(Inspect and Adapt)。作者認為應將變化、發現與新想法的擬定,都內建在工作方法中。

Scrum 關心顧客與利害關係人,而非開發人員。Scrum 的團隊組成應包含可以完成專案的所有人,並且站在使用者的角度看產品。作者認為傳統瀑布式各個部門一關接一關的專案流程,時常會發生「這不歸我管」的三不管地帶,沒有密切合作及沒有從使用者的角度看事情,將導致成品根本不是顧客要的。

想要開始跑 Scrum,首先,應該先把所有待辦事項列出來,並且妥善安排先後順序。根據八二法則,80% 的價值來自 20% 的功能。Scrum 是由一段段衝刺(Sprint)組成,每段衝刺都必須交付一些價值。只要辨識出最有價值的部分,即可在前幾段衝刺交付大部分的價值。由於每段衝刺都會實際交付一些價值給利害關係人,所以可以很快得到反饋,即便做出來的東西不是顧客要的,也能夠快快失敗,快快調整。

團隊在每段衝刺的開始,會認領認為可以在一段衝刺中完成的待辦項目。一開始尚無法得知團隊開發的速度,但是一段時間後,就可以大略得知團隊在每段衝刺中可以完成多少項目,也就是速度。把整個專案的所有項目除以一段衝刺可以完成的項目數,就可以估算專案完成需要幾段衝刺。由於衝刺的時間是固定的,也就可以推算完成的日期。

衝刺的另一個要點,是在每段衝刺結束時檢討流程。作者認為職場上有太多浪費,團隊應透過檢討,找出阻礙並加以排除,去除浪費!

二、Scrum 的由來

作者回憶軍旅生活,曾經駕駛戰鬥機作戰的他,在戰場上需要進行觀察(Observe)、導向(Orient)、決定(Decide)、行動(Act)四個步驟:迅速判斷情勢、思考不同的策略、決定某個策略、果斷行動!由於戰場變化莫測,敵我的行動將成為新的外部資訊,所以需要不斷重複進行觀察、導向、決定、行動的循環。商場如同戰場,作者認為計畫一定會出錯,需要設計一套新的方法,可以不斷吸收外部資訊,持續調整策略與方向。

另一個讓作者得到啟發的,是一個六隻腳的機器人。該機器人沒有類似於人腦的中樞,而是每隻腳都有一個獨立的智慧中樞。發明者並沒有預先在智慧中樞中安裝複雜的資料庫,而是只對每隻腳都下簡單的指令,讓他們得以觀察外部狀況,然後彼此互相配合。結果是,機器人一開始像嬰兒般學步,但很快的,彼此就能配合得很好。作者認為團隊也應如此,要能夠「取得外部環境回饋」並「自組織」決定如何行動,而 Scrum 就是那個簡單的指令。「取得外部環境回饋」能讓團隊快速因應變化,「自組織」則能讓團隊因為得到授權,能夠自己決定怎麼做,進而去追求比自己更重要的價值。管理者充其量只是僕人領袖,旨在為組織排除障礙。

持續改善是 Scrum 的核心價值之一,作者說明 PDCA 循環:規劃(Plan)、執行(Do)、檢核(Check)、行動(Act)的重要性,並將這個理論放進 Scrum 中,成為它的基本精神。

章末,作者說明日式武術中「守破離」三個層次的境界。守:按規則走,熟練到不會出錯;破:在規則中創造新動作;離:從心所欲,捨棄形式卻在舉手頭足間皆傳達出精髓。作者認為 Scrum 也有守破離的三個層次,鼓勵讀者往「離」的境界邁進。

三、團隊,小而美

研究顯示,好的團隊與差的團隊的產出可能會差到數十倍之多,相對於個人,頂多只有數倍之差。於是作者認為,改善團隊績效遠遠比改善個人績效重要。

優秀的團隊有三大特性:卓越、自主、跨功能:

卓越:團隊成員追求卓越,重視開發中的產品大於自己的專業項目。
自主:團隊被充分授權自己做決定,並為結果負責任。
跨功能:團隊成員具備完成專案的所有技能,且所有資訊都是透明流通的。

為了讓資訊流通透明,作者在每段衝刺中設計了三大會議:每日立會(Daily standup meeting)、檢視會議(Review meeting)、回顧會議(Retrospective meeting)。尤其在回顧會議中,團隊成員應彼此信任,對事不對人,提出流程可以改善的地方。Scrum 大師(Scrum master)也應扮演好僕人領袖的角色,為團隊找出阻礙、找出流程問題,引導團隊持續改善。

作者建議一個 Scrum 團隊的人數最好在 5 到 9 人之間,因為受限於大腦,人們無法一次記住太多資訊。如同《人月神話》中提及的,在已經延遲的專案中加人只會更慢,因為溝通成本提高的幅度高過加進來的人的產能。

最後,作者點出,有時候在企業中無法推動 Scrum,是因為企業高層維繫權力的考量。因為團隊一旦得到授權,且一切公開透明,企業高層將難以維繫自己的權力及利益。

四、掌握時間的節奏

衝刺的關鍵在於:即時回饋、減少浪費。所以在每段衝刺都要交付一些顧客實際能使用的東西。當團隊承諾在一段衝刺中「做」某些事,意思是在衝刺結束時,這些東西是顧客已經可以使用的狀態,而非開發完但尚未測試之類的半成品。同時,在團隊決定好目標後,應盡可能避免其他任務的干擾,因為這種外力干擾會讓團隊成員分心,大幅拖慢速度。

衝刺的其中一種重要的會議是「每日立會」。目的在於提高溝通飽和度。作者認為 Scrum 中的團隊成員都是平等的,應撕除頭銜,因爲大家會覺得某個頭銜的人應當負責某項任務,其他人不用去理解也沒關係,因而降低溝通飽和度。

每日立會的用意是找出問題並予以排除,不是只是輪流報告進度。作者期待團隊是企圖心旺盛並願意追求卓越的。所以當有人提出困難,其他人會主動一起思考解決辦法、主動予以協助。另一個立會的好處是,成員間不用互相等待,大家隨時都在處理目前專案最優先需要被執行的部分。

「展示成果」是衝刺的另一個關鍵,唯有將階段性成果展示給利害關係人看,才能快速得到反饋,進而修正方向再行動!

五、浪費是一種罪

礙於人腦的限制,一個人一次只能做一件事,若多工則會有環境切換的耗損(Loss to Context Switching),亦即在新舊工作切換之間,必然會浪費一部分的時間才能進入新工作的狀態中。

出自《溫伯格的軟體管理學》(Quality Software Management)

從上表可以看出,若一次進行五個專案,則有 75% 的時間與精力完完全全是白費力氣。而且事情做一半等於沒完成,必須等到五個專案都完成才能一起上線。一次只進行一個專案,將會更早完成所有專案。作者於是將 Scrum 設計成一次只做一件事,而且是當前價值最高的那件事。

作者也認為,第一次就把事情做對很重要,因為改正錯誤更花時間,而且隔越久再回來改越花時間。研究顯示,比起開發完當天發現 bug 時就馬上修正,若隔數週再回來修正此錯誤,將需要花費 24 倍的時間才能修正。Scrum 希望可以一次就把事情做完且做對!

作者延伸說明一個資方可能不太喜歡的理論:工時減少,產能提高。因為太勞累容易犯錯,誠如上述,改正錯誤比創造新事物更花時間,而且疲勞也會影響判斷力、更會影響別人。每個人在不同的人生階段都會有自己的工時 — 產能曲線,在某個工時可以擁有最高的產能,絕非工時越長產能越高。

最後,作者一再強調團隊的重要性遠重於個人,所以 Scrum 並不推崇英雄主義,而是每個人互相都可以 cover 彼此的工作,是一個有機的組織型態。

六、計畫要務實,不要空想

作者認為,擬定計畫是需要的,但是鉅細彌遺的擬定一個大型計畫則是不切實際的,雖然這實在非常誘人。Scrum 的設計,是決定先做什麼,擬定足以再創造一些價值的細部計畫,就可以開始執行。

這些細部計畫,或說是任務,可以用「故事」來描述。具體方式為:「身為O,我希望O,好讓我O」。在定義故事的時候,需要考慮動機和將對誰產生價值。這些故事要具體,但不用預設如何落實。有一個方式可以用來判斷故事是否足夠具體與完整,稱為 INVEST:

獨立(Independent):本身是「可完結」的,且不能和其他故事有牽扯。
可修改(Negotiable):在完結前,保有修改的空間。
有價值(Valuable):必須為顧客、使用者或利害關係人帶來價值。
可估算(Estimable):必須能掌握大小長短。
規模小(Small):必須小到可以預估且易於規劃。
可測試(Testable):必須可被驗測。

針對最後一點,作者認為大家要一起定義出「何謂完成」(DoD, Definition of Done)。當團隊完成一項任務時,說明該任務已經達到 DoD 的標準,並且能為顧客帶來價值。

在評估任務的時間時,作者認為可以用完成任務的心力來估算,而且不要去估算每個任務實際需要多少時間,而是要用相對大小去估算,因為人們並不擅長做絕對的估算。

為了避免從眾效應,作者發明一個方式稱為「規劃撲克牌」。每個團隊成員都有一組由費氏數列組成的撲克牌,牌上的點數代表任務的相對複雜度。每項任務在充分討論後,大家都自己選好一張牌,然後一起翻開。如果大家的點數相同就直接通過,如果差距不大可以直接取平均數,如果差異過大則大家需要重新討論後再次進行選牌、翻牌的動作,直到達成共識。作者提醒,任務估算必須由團隊自行評估,因為他們才是真正執行任務的人。

七、快樂是過程,也是指標

專案絕大部分的時間都在執行階段,但企業多半看的只有專案的成果。作者認為過程才是應該被重視的,應該獎勵過程,大家工作才會快樂,並且快樂會帶來成功。

「人必須快樂,才會成功」作者如是說。這並不是心靈雞湯,而是經過驗證的事實。研究顯示,快樂是領先指標,而不是因為成功才導致快樂。當然,要如何將快樂要轉換成績效,也是 Scrum 想解決的問題之一。

Scrum 的回顧會議,相當於 PDCA 循環中的 C,是個檢視上一段衝刺的好機會。在這個過程中,彼此應互相信任,提出方案去改善流程,而非咎責。作者提出一個稱為「滿意指標(Happiness Metric)」的方式,運作方式很簡單,就是問大家四個問題:

  1. 你是否滿意自己在公司裡扮演的角色?請以 1 分至 5 分打分數。
  2. 你對公司整體的滿意度如何?請以 1 分至 5 分打分數。
  3. 為何你會這樣覺得?
  4. 在下一段衝刺中,有哪些事能讓你感到更滿意?

作者發現,團隊的滿意度是領先指標,可以預測生產力。

為了讓團隊成員更快樂、滿意度更高,有一些事情是有幫助的。作者認為快樂來自:自主、精熟、有目標,這能讓人覺得擁有掌控自己命運的能力,會做得越來越好,並且有超越個人的目標。這也是 Scrum 相當強調自組織的原因。另外,公司上層的透明度很重要,團隊成員需要了解計畫全貌,瞭解自己之於公司有何貢獻,他們才會竭盡所能地去思考如何良好的達成目標。

不僅公司上層是透明的,Scrum 本身也是。不論是立會還是檢視會議,利害關係人都可以自由參加,Scrum 板也是公開的。在全透明的狀態下,利害關係人也能對團隊產生信心。

另外,公司也能透過輪調、協助員工多元學習等方式,讓員工更快樂,也學會新技能。團隊內部也應以團隊為出發點,撕掉頭銜,無私的分享知識。

章末,作者提醒,快樂不等於自我感覺良好,這樣只會導致停止持續改善,有違 Scrum 持續改善的初衷。

八、優先順序

這章主要在談產品負責人(Product Owner)的職責範圍。他必須知道要先做什麼,這必須在以下三個範圍中取得平衡:賣得出去、做得出來、有熱情(做出來的東西才不會平庸)。

若說 Scrum 大師的職責在於如何讓團隊把事情做好、如何讓團隊提高生產力;產品負責人則是負責決定該做什麼,將生產力轉換成價值。待辦事項清單歸產品負責人所有,由他決定什麼時候該做什麼,應當挑選低風險高價值的項目優先處理。

產品負責人應具備四大特質:

  1. 具備專業領域知識:瞭解流程,知道做得到什麼、做不到什麼。
  2. 有決策權:自行決定產品願景及如何實現願景,並為成果負責。
  3. 經常和團隊溝通:讓團隊找得到人,並提供市場情報和勾勒願景。
  4. 為價值負責。

他們必須經常調整優先序,不要想什麼都要一次做到。他們也需要透過觀察(Observe)來看清全貌,即時的回饋和意見很重要,並藉由導向(Orient)思考方案和預判結果。接著是下決定(Decide)然後行動(Act)!

在決定好順序,團隊也開始做出一些東西之後,什麼時候釋出是產品負責人的另一個重要議題。作者重提八二法則,認為在完成 20% 的功能時就能釋出,甚至在那之前,可以先釋出最小可行性產品(MVP, Minimum Viable Product)快速取得回饋。由於產品在完成 20% 時就已釋出,並創造 80% 的價值。產品負責人又會不斷調整優先序,把最有價值的故事往前排,所以在第一次釋出之後,團隊接著做的不是後面較沒價值的 80% 功能,而是新的極富價值的 20% 功能。如此,在傳統專案管理方式中,團隊會在花費 100% 的成本時創造 100% 的價值(而且往往有意外),Scrum 團隊卻能僅花費 50% 的成本卻創造 200% 的價值!這也回扣本書書名「用一半的時間做兩倍的事」。

產品負責人也要懂得避免風險,常見的風險有三:市場 — 別人想要嗎、技術 — 做得出來嗎、財務 — 賣得出去嗎。故產品負責人是需要具備一定程度的專業領域知識的。

大型專案可以有一群產品負責人處理所有的需求。若有多個 Scrum 團隊則需要一個產品負責人團隊,並且可以有不同的分工,比如有人專門負責策略與顧客互動、有人負責戰術面,決定衝刺的工作內容。這裡要注意,產品負責人決定的是要做的事和原因,但不要決定做法。

傳統專案管理理論中,變更控制是一門學問,並且有複雜的變更管理程序,頻繁的變更也是讓一開始精心規劃的甘特圖大幅失真的原因之一。作者大膽提出「免費變更」的概念,因為 Scrum 只對即將要執行的項目做細部規劃,針對未來的方向,保有大量彈性。此外,因為 Scrum 會對所有故事都估算點數,若顧客想要加入某個功能,團隊只要估算該功能的點數,請顧客移除差不多點數的功能,即可達到零風險的免費變更。

九、改變世界

本章介紹 Scrum 在其他領域的案例,應用的領域有校園中幫助學生自主學習、有在烏干達協助農民脫貧、也有政府運用 Scrum 讓政策得以落實。作者重提「守破離」的概念,在本書附錄,提供如何實行 Scrum 的簡易介紹,讓讀者可以透過持續練習達到守的程度,然後鼓勵讀者漸漸往破和離的境界邁進!

--

--