什麼是Scrum?認識Scrum 的做法與它的限制

文章推薦指數: 80 %
投票人數:10人

談到「敏捷開發」很多人就會聯想到Scrum。

的確Scrum 是敏捷管理產品開發的架構之一。

這篇文章帶你瞭解Scrum 架構、流程、角色與活動,以及他們之間的 ... Loading...首頁課程內容系列課程JavaScript全端開發課程學期一|程式設計入門學期二|掌握網頁開發學期三|軟體工程師養成全年開課時間表最新消息非本科跨領域學程式最新課程DATA&AI公開課SQL14天入門課學習體驗成效Blog技術主題求職攻略數據入門文章首頁FAQ常見問題關於ALPHACamp加入我們舊生專屬福利馬上報名Web技術什麼是Scrum?認識Scrum的做法與它的限制Posted on 2021-11-23  by    byALPHACamp談到「敏捷開發」很多人就會聯想到Scrum。

的確Scrum是敏捷管理產品開發的架構之一,它能幫助團隊解決複雜、困難的問題,同時提升開發速度,創造更多的價值。

Scrum這個詞則是源自於橄欖球(Rugby)中的術語:Ascrum(shortforscrummage)isamethodofrestartingplayinrugbythatinvolvesplayerspackingcloselytogether文字與圖片來源:Wikipedia就像圖片那樣,指的是重新發球時選手會排成陣列緊密靠在一起,在裡頭進行搶球。

Scrum的精神1986年,兩位日本教授竹內弘高與野中郁次郎,在哈佛商業評論發表了「TheNewNewProductDevelopmentGame」文章以及關於新的產品開發管理研究。

在文中他們提到,有別於過去「大隊接力」般的開發團隊,新的開發團隊就好像橄欖球隊一樣,從比賽的最一開始「一起努力」到最後,在團隊內部成員們「不斷地互相傳球」,同時整個團隊在賽場上又是「隨時變化進攻策略」、「一步步向前推進」直到達陣。

和敏捷精神一樣,Scrum並不是某個人在某個特別的時間點發明出來的,早在Scrum這個詞出來之前,已有許多團隊嘗試執行這種新的管理方式,而如今你看到的Scrum,更是過去團隊的努力與經驗累積。

現在就讓我們來介紹如何將Scrum應用在軟體產品的開發上。

如何用Scrum管理專案?Scrum是一個全面的產品開發架構。

從團隊組合、協助模式、到文件的格式,都有清楚的設計目的與描述。

在Scrum中,通常以1-4週為一個開發週期,這個週期稱作sprint,也就是快速衝刺的意思。

在一個sprint當中,開發團隊必須要在限定的時間之內,完成計畫目標。

透過每一次的sprint,開發團隊將快速發布可運作的產品去測試市場反應,收集關於產品的回饋,然後持續調整產品的開發方向,最終目標是打造最能滿足客戶需求的產品。

接下來,我們帶你一一認識Scrum架構中的人物角色、物件與流程。

在模擬專案中跑scrum,ACTwitter專案幫你累積多人協作經驗Scrum的人物、物件、與流程圖片來源:Scrum.org人物角色在Scrum裡,有三個主要的角色:1.產品擁有者(ProductOwner)Productowner代表客戶參與開發流程,確保開發團隊的產品符合客戶需求。

Productowner負責規劃使用者故事,並與開發團隊討論,決定產品功能開發的優先順序。

在開發過程中,協助開發團隊釐清產品需求,同時,productowner也負責整合客戶的意見、使用者的回饋,做為未來改善產品的基礎。

2.ScrumMasterScrumMaster負責確保開發團隊依照Scrum的方式進行產品開發,並排除任何會影響Scrum流程的障礙,協助改善開發流程。

ScrumMaster不是以「領導者」的姿態帶領專案,而是Scrum規則的「執行者」。

3.開發團隊(DevelopmentTeam)開發團隊負責開發與交付產品。

開發團隊為跨領域團隊,可由設計師、工程師等不同的專業人士所組成。

以上這三個角色是Scrum裡的有權限做事的人,其他與專案相關但沒有實際參與的角色被統稱為Stakeholder(利益關係者),可能是客戶、使用者或任何人,至多只能觀察產品並給意見,不能干擾開發過程及決策。

文物(artifacts)在執行Scrum時,需要準備一系列文件(英文稱為artifacts)。

不同的團隊會根據他們的開發環境跟習慣選擇不同的文件,一般來說會包括以下幾種:1.使用者故事(userstories)由Productowner負責規劃,做為以使用者為核心的開發基礎。

2.Task-board由開發團隊根據使用者故事,列出所有需要被完成的任務,然後分配給開發團隊的成員。

3.ProductbacklogProductbacklog為產品待辦清單,包含了所有需要被完成的使用者故事。

Productowner會決定開發的優先順序。

4.SprintbacklogSprintbacklog為衝刺待辦清單,列出開發團隊需要在一個sprint裡完成的開發目標。

5.BurndownchartScrum團隊在開發過程中,會每日追蹤進度,將未完成Task的剩餘工時加總起來,再依照日期紀錄下來,然後跟專案一開始的時程計劃作比較,便能得到一張長得像這樣的burndownchart:圖片來源:eLearningIndustry在上圖,淺藍色線是計專案一開始時預估的時程,單純把task的總時數除以專案的天數。

綠色線是實際進度紀錄。

這兩條線幾乎是不可能一樣的。

製作burndownchart的目的,是讓團隊了解這個Sprint的進度狀況,以及還有多少小時的Task要完成。

如果進度受到嚴重的阻礙,團隊就要及早作出應對和調整。

活動衝刺規劃會議(SprintPlanningMeeting)在每個sprint開始的第一天,團隊全體成員都需要參與這個會議,討論這次sprint的開發目標。

Productowner決定開發的優先順序,而開發團隊可以決定要完成多少的開發量。

圖片來源:Shutterstock每日衝刺會議(DailyScrum)在sprint當中的每一天,都得召開衝刺會議,約10-15分鐘,由ScrumMaster主持,確保會議時間不會過長與失焦。

為了簡短會議時間、讓大家保持專注,通常會站著開會,因此也稱作stand-upmeeting。

在會議中,開發團隊成員須報告三件事:昨天完成的工作今天準備要做的工作是否遇到任何阻礙,需要請求幫忙?衝刺檢視會議(SprintReviewMeeting)在sprint的最後一天舉辦,除團隊所有人需要參加之外,也可邀請stakeholders參與。

開發團隊將展示開發「成果」並讓productowner驗收,團隊藉此檢視產品是否需要調整。

衝刺自省會議(SprintRetrospectiveMeeting)在sprint結束後召開,跟sprintreviewmeeting不同的地方是,這個會議回顧與檢視Scrum開發「流程」,看看是否有需要改善的地方。

產品經理的工作內容是什麼?從PM觀點設定職涯目標Scrum的核心價值在介紹完Scrum的架構之後,最後我們來看看執行Scrum所需要的核心價值:1.專注在sprint期間,ScrumMaster會協助排除所有的外在干擾,因此開發團隊必須心無旁騖地全力開發產品,發揮最大的潛能。

2.勇氣在Scrum中以團隊為單位,為了共同完成目標,團隊成員之間會互相學習、支持,會比單打獨鬥的開發者更有勇氣面對困難的挑戰。

3.開放跨領域的成員在同一個團隊裡面一起工作,而非分散在企業大樓的不同角落,促成了開放溝通、學習的機會,讓產品開發更為順利。

4.承諾為了完成目標,Scrum團隊裡面的成員都要有很強的自主性,承諾完成被分配的任務,才能推動一起團隊前進。

5.尊重所有成員一同分享團隊的成功與失敗,因此得尊重彼此不同的意見,並互相給予協助,才能共同完成目標。

Scrum中的敏捷精神Scrum在許多方面體現了敏捷精神,在流程上,強調快速發布可運作的產品,以及持續收集回饋並改善;在團隊上,強調每位成員須具備積極的心態與承諾,在相互尊重下以開放的溝通提升產品開發效率。

在下一個單元裡,我們將談到適合Scrum的使用情境,以及你可以如何在未來的專案中使用Scrum。

雖然Scrum有較為完整的架構,但一樣有其適合使用情境以及局限性,我們列出了一些常見的陷阱讓你觀摩:Scrum適合的使用情境產品需求不明確當產品需求不明確時,團隊可以透過Scrum快速發布產品、盡快驗證需求,並能夠與客戶、利益關係者緊密合作。

產品需要快速迭代Scrum的框架可以容納不同專業的成員緊密合作,像是使用者體驗研究員、介面設計師、程式開發者、行銷人員等,並且有定期的共同會議聚焦團隊方向。

Scrum不適合的使用情境團隊成員分處多地由於Scrum流程強調團隊的密切合作與即時溝通,若有成員採取遠距工作的方式,那麼就容易降低團隊溝通的效率,或造成資訊不對稱。

團隊成員習慣被動等待指令Scrum強調團隊合作,專案依賴每一位成員的積極性與解決問題的能力。

若有成員不夠積極主動,那麼就會降低Scrum的整體效果。

開發過程需大量依賴外在資源當開發團隊無法獨立完成產品開發,得依賴較多外在資源或條件時,就難以執行Scrum。

軟體業PM談專案管理3大能力:溝通、管理、技術能力使用Scrum時常見的問題Sprint目標設定太高設定困難的目標,可以驅使Scrum團隊發揮最大潛力,而偶爾無法達到目標也是可以接受的。

但如果時常無法達成目標,那麼就要進一步去思考,目標是不是真的太困難了,又或者是否需要調整團隊組成。

會議失焦每天的衝刺會議的重點在於凝聚團隊、排除困難,若流於流水帳式的報告,那麼就會失去它的意義。

無法排除的外在阻礙在執行sprint的時候,ScrumMaster會協助排除外在影響因素,但實際上有時候可能會出現緊急狀況,無法等到下一次的衝刺規劃會議才排入開發。

團隊可能需要做合適的調整,譬如指派一名「救兵」在sprint進行中處理緊急狀況,以因應快速變化的狀況。

團隊成員疲乏最後,在sprint時間限制的壓力下,加上高度專注,雖然產能會大大提升,但也容易導致團隊成員身心的疲累。

所以在使用Scrum高速開發的同時,也要緊密注意團隊的狀況。

ALPHACamp的SimpleTwitter專案實戰SimpleTwitter專案是【全端網路開發課程】的最後一項里程碑,呼應到「模擬實戰」的設計理念,在此專案中,你會需要運用敏捷開發「綜合運用全部所學,在多人協作下,交付出符合需求的app」。

成功關鍵在於:在任務導向的情境中,體驗實務的「軟體開發流程」透過小組分工來完成任務,克服多人協作下的任務調度與程式碼管理8週軟體工程師課程,養成工程師業界實戰能力ALPHACampSeeAllPost產品開發專案管理軟體開發Search熱門搜尋自學程式學習方法學習教練助教跨領域職涯軟體工程師前端全端AllCategoriesAC動態AC評價Web技術人物專訪程式學習自學能力資料科學軟體職涯FollowUs延伸閱讀更多好文章推薦給你!Web技術React是什麼?給新手的React入門Web技術React教學,系統性學習React的步驟Web技術CSS教學:認識語法規則與基本功Web技術演算法(Algorithm)是什麼?演算法應用的例子與場景Web技術助教開講活動回顧:網頁開發必學技巧不藏私公開Web技術LeetCode解題的思考策略,刷題的4個階段Web技術CSS學習與實作經驗分享,如何建立扎實基本功Web技術Node.js是什麼?跟JavaScript有什麼關係ALPHACamp的使命是「幫助人們發展有意義、有價值的職涯」。

自2014年以來,我們以新加坡和台灣為教學據點,培訓超過6500名學員。

校友遍及台灣、新加坡、中國、以及全球的科技新創。

JavaScript全端開發課程三學期系統化課程設計學期一:程式設計入門學期二:掌握網頁開發學期三:軟體工程師養成最新課程New數位職涯RPGDATA&AI公開課SQL14天入門課LearnMore非本科跨領域學程式理工科職涯升值挑戰學習體驗成效Blog技術主題職涯攻略常見問題關於ALPHACamp加入我們ContactUsEmail:[email protected]電話:+886-2-2546-9766(※防疫期間AC採遠距上班,如需聯繫請來信或FB私訊)地址:105台北市復興北路201號6樓之4獲取最新資訊業界經驗分享、職涯諮詢、學習技能提升!訂閱電子報ALPHACamp|創新職涯的線上學校©2022AllRightsReserved



請為這篇文章評分?