快速認識Scrum的三四三口訣 - iThome
文章推薦指數: 80 %
在Scrum敏捷開發框架的核心元素中,包括了3種角色、4個會議和3項產出,開發人員掌握這些核心元素就能快速認識Scrum開發流程.
移至主內容
文/iThome
|
2011-06-17發表
ML(UnifiedModelingLanguage)在1991年成為標準的物件導向分析設計語言,因此終結了纏鬥多年的物件導向開發方法之戰。
不過,UML並不完整,事實上,UML三位創辦人當時暫時切除了提出統一開發程序的事務,才讓UML順利產出。
由此可以想見,提出統一的「開發程序」(developmentprocess),遠比提出統一的「建模語言」(modelinglanguage),要來得困難多了。
至此,UML非常順利地站穩標準的、統一的建模語言的地位,而被分割出去的開發程序則顛沛流離,一直到近來,似乎終於在「敏捷方法」(AgileMethod)之地,開出一片小黃花。
再多說一點,脫離了UML之後,開發流程後續的發展為何?UML三位創辦人正式推出了UML之後,其實後續還是提出了一套整合的開發流程,也就是鼎鼎有名的RUP(RationalUnifiedProcess)。
當時UML三位大師所在的公司是Rational,也就是RUP中R的由來,只是後來,Rational被IBM併購了,不過從RUP的名稱上頭,可以想見,當時這些大師們企圖將RUP打造成統一的開發程序。
RUP是一套完善且龐大的開發程序,對於大型專案可能很有貢獻。
但是,對於中小型專案而言,可能過於沉重且昂貴。
因此,RUP的命運並不如UML這般光采。
後來,開始出現一些簡化版的RUP,諸如:AUP(AgileUnifiedProcess)、或者EssUP(EssentialUnifiedProcess)等等的輕量級開發程序。
AUP是簡化版的RUP,而EssUP則是UML創始人之一IvarJacobson彙總了RUP、CMMI和敏捷式開發方法三者特色後提出的軟體開發程序。
由此現象,我們可以發現,輕量級的、敏捷式(agile)的開發程序,逐步受到重視,開始嶄露頭角。
就目前來說,敏捷式開發程序中,最受歡迎的支派,就是「Scrum」了。
所以,我們就不去學厚重的RUP,也省去經歷其他敏捷式開發程序的麻煩,直接進入最受歡迎的Scrum,做為前進敏捷開發的第一步吧!三四三話Scrum如果,你跟我一樣想要用最迅速、敏捷的方式來認識Scrum,我自己慣用的口訣是「三四三」。
其實,Scrum敏捷開發只是一個簡單的框架(Framework),核心元素包含有:3種角色、4個會議、3項產出。
● 3種角色:Scrum教練、產品負責人和團隊。
● 4個會議:衝刺規畫會議、每日站立會議、衝刺審查會議以及衝刺回顧會議。
● 3項產出:產品待辦清單、衝刺待辦清單和燃盡表。
所以,我經常用「三四三」這個口訣,來記憶Scrum框架的核心元素,與你分享之。
Scrum的3種角色在Scrum敏捷開發中,提出了3種主要的角色,分別說明如下:● 產品負責人(ProductOwner):其實,產品負責人這個角色有點像是客戶代表。
他會站在比較接近客戶的立場,去設定產品待辦項目的優先順序,以及為團隊說明客戶的需求。
● Scrum教練(ScrumMaster):顧名思義,Scrum教練必須熟知整個Scrum敏捷開發,以便能夠協助產品負責人和團隊的運作。
● 團隊(Team):就是一般的開發團隊,通常是跨職能的組成,也就是團隊成員混合著架構師、分析師、設計師、程序員、測試員等等。
Scrum的4個會議在每一個衝刺(Sprint)期間,除了團隊需要實際執行分內的任務外,Scrum還定義了4個重要的會議,分別簡單敘述如下:● 衝刺計畫會議(SprintPlanningMeeting):每個衝刺期間的一開始必須先舉行衝刺計畫會議,主要用來決定該衝刺期間的待辦項目,以及團隊的衝刺任務。
● 每日站立會議(DailyStandupMeeting):衝刺期間的每一天早上,都要執行15分鐘的站立會議,主要可以用來了解團隊的工作執行狀況。
● 衝刺審查會議(SprintReviewMeeting):每個衝刺的最後一天會先執行衝刺審查會議,隨後執行衝刺回顧會議。
在衝刺審查會議中,主要用來展示並了解該衝刺的待辦項目達成狀況。
● 衝刺回顧會議(SprintRetrospectiveMeeting):相較之下,前述的衝刺審查會議,其討論的主題鎖定在「產品」上頭。
而此處的衝刺回顧會議,其討論的主題則聚焦在團隊的「開發程序」上頭,主要用來討論並調整下一期衝刺的開發程序。
在物件導向技術中,建議採用反覆式的開發方式,而不是過去的瀑布式開發方式。
簡單來說,所謂的反覆式的開發方式是指,在一小段的反覆期中,執行了分析、設計、實作、測試等等的開發步驟,以便迅速地修訂錯誤。
而在Scrum敏捷開發中,同樣採用反覆式的開發方式。
不過,在物件導向技術中,稱為這樣的一小段時期為一個「反覆」(Iteration,也有另一個常見的譯詞為「循環」)。
到了Scrum敏捷開發中,則稱為一個「衝刺」(Sprint,SprintIteration)。
Scrum的3項產出在Scrum敏捷開發中,一共有3項重要的產出,分別簡述如下:● 產品待辦清單(ProductBacklog):其實,產品待辦清單的概念很簡單,它主要包含了一般常見的功能性需求和非功能性需求;不過,比較特別的是,它還包含了技術團隊提出的需求,而不只是照顧到客戶的需求而已。
也因此,Scrum敏捷開發特別採用了「產品待辦清單」(ProductBacklog)的字眼,用來跟傳統作法上只照顧客戶的系統需求,做字面上的分野。
● 衝刺待辦清單(SprintBacklog):衝刺待辦清單中的待辦項目,其實是產品待辦清單的子集。
在每一次的衝刺規畫會議中,才會開會決定要處理哪些待辦項目。
● 燃盡圖(BurndownChart):簡單來說,我們可以繪製燃盡圖,來呈現一個時間區段中,剩餘的工作量。
所以,有些文章或書籍中,也將「BurndownChart」中譯為「剩餘工作圖」或者是「剩餘時間圖」,原因正是如此。
對Scrum的「三四三」有了初步的概念以後,接下來在這個系列文章中,將模擬一個五人團隊如何使用Scrum敏捷開發基金系統作為例子,來介紹Scrum敏捷開發的核心元素,並且結合UML的使用,讓你可以看了立即上手。
Scrum敏捷開發是一種「增值流程」(value-upprocess)講具體些,就是每一次的「衝刺」都會具體實現「顧客價值」(businessvalue),說更加具體些,每一次的衝刺都會產出可以執行的程式碼,而且這些可執行碼能夠提供給顧客滿意的軟體服務。
但是,萬丈高樓平地起,住戶看不到的地基不重要嗎?顧客摸不著的基礎架構不重要嗎?所以呢,在開始傾全力往前衝刺之時,我們得先執行一個「衝刺0」的階段,這個階段主要目標就是在打好地基,做好基礎建設及規畫,下一回將從這個打地基工作開始談起。
作者簡介:邱郁惠研究UML/OOAD十餘年,創辦UMLBlog(www.umltw.com)推廣UML,出版多本UML/OOAD專業書籍,擁有OCUP/UML三級認證、PMP、ITIL、OOAD認證。
目前為自由工作者,專職於企業內訓、專案輔導、自辦課程、專欄寫作。
作者簡介:施奇宏投身軟體開發領域逾15年,任職於金融產業,有豐富金融IT實戰開發經驗。
對於Java、.NET、C++等都有涉獵。
最近著迷於軟體工程,尤其是測試驅動開發(TDD)及領域驅動設計(DDD)。
熱門新聞
Windows可能將改為3年1次大改版,但1年最多4次功能更新
2022-07-15
臺灣企業資安投資抵稅正式上路,最新投資抵減辦法7月公布
2022-07-11
聯想筆電再爆UEFI韌體漏洞,70餘機種受影響
2022-07-14
經濟前景不明,微軟傳裁員、Google也警告聘僱放緩
2022-07-13
WindowsAutopatch正式上線了
2022-07-12
悠遊卡終於將提供跨境消費,年底前可望在日本沖繩使用
2022-07-12
微軟仍決定預設封鎖Office中的VBA巨集
2022-07-12
微軟揭露鎖定Office365用戶且可繞過多因素認證的大規模網釣活動
2022-07-13
Advertisement
專題報導
千億營收電商的SRE之旅
摩根大通2022科技新戰略
紅帽邊緣運算新戰略
【法律科技大創新】用區塊鏈貫穿司法流程,打造被民眾信任的司法聯盟鏈
【不讓x86架構專美於前,憑低功耗與更多核心獲寵】Arm走入公有雲世界
更多專題報導
延伸文章資訊
- 1什麼是Scrum?不是工程師也能懂的Scrum入門介紹! - Medium
到底什麼是Scrum?流程駭客這要告訴大家什麼是Scrum,讓你用最短的時間,進入Scrum的工作模式!
- 210分鐘讀懂Scrum與敏捷軟體開發入門/Yves Lin
江湖上軟體開發有兩個大門派,第一個門派是以流程為主軸的「瀑布式開發」,另一個門派在1990年代異軍突起,稱為「敏捷式開發」,其中最知名的武功就是Scrum; ...
- 3什麽是Scrum?為什麼它如此強大• Asana
Scrum 有助團隊協作並完成具高影響力的工作。瞭解如何實作Scrum 流程,使您的團隊能快速建置及疊代。
- 4Scrum: Sprint循環8個步驟 - iT 邦幫忙
Scrum流程解釋. 我們首先需要確定產品Backlog(按優先級順序列出產品需求),這是產品負責人的責任; Scrum團隊根據產品Backlog改進會議中的Product Backlog列表對...
- 5什麼是Scrum?認識Scrum 的做法與它的限制
談到「敏捷開發」很多人就會聯想到Scrum。的確Scrum 是敏捷管理產品開發的架構之一。這篇文章帶你瞭解Scrum 架構、流程、角色與活動,以及他們之間的 ...