Scrum是用於開發、交付和維持錯綜複雜產品 (complex products) 的敏捷框架 (framework) [1] 。最初著重於軟體開發,之後已被用應用於其他領域,包括研究、銷售、營銷和其他先進技術領域。

一個 Scrum 團隊建議為十名成員的團隊而設計的,他們以迭代[2] (iterative)與增量[3] (incremental)式的方式交付工作,每個迭代稱作 Sprint。一個 Sprint 的時間不超過一個月,通常是兩星期。Scrum 團隊在每個 Sprint 都專注在唯一一個共同的目標 (Sprint Goal),每天會有稱為Daily Scrum的站會,團隊中的開發人員(Developers)會檢視朝向共同目標的進度,和調適當下的計畫。在 Sprint 結束時,團隊會進行 Sprint 審查 (Sprint Review) 跟利害關係人 (Stakeholders) 一起檢視當下的結果與調適計畫,這是互相資訊交流的機會。最後,團隊會進行 Sprint 回顧(Sprint Retrospective)來持續改善。

歷史

Scrum的特性

Scrum過程

Scrum是一個包括了一系列實踐和預定義角色的過程骨架。 Scrum中的主要角色包括:

  1. Scrum Master是Scrum教練和團隊帶頭人,確保團隊合理的運作Scrum,並幫助團隊掃除實施中的障礙;
  2. 產品負責人,確定產品的方向和願景,定義產品發布的內容、優先級及交付時間,為產品投資報酬率負責;
  3. 開發團隊,一個跨職能的小團隊,人數5-9人,團隊擁有交付可用軟件需要的各種技能。

在每一次衝刺或迭代(一個15到30天的周期,其長度由開發團隊決定)當中,開發團隊創建可用的(可以隨時推出)軟件的一個增量。每一個迭代所要實現的功能來自產品訂單。產品訂單按照優先級排列工作需求。在迭代計劃會議中,產品負責人告訴開發團隊需要完成產品訂單中的哪些訂單項。開發團隊決定在下一次迭代中他們能夠承諾完成多少訂單項。在迭代的過程中,沒有人能夠變更迭代訂單,這意味著在一個迭代中需求是被凍結的。

管理Scrum過程有很多實施方法,如即時貼、白板、甚至軟件包。 Scrum最大的好處之一是它非常容易學習,而且啟動Scrum應用並不需要太多的投入。

Scrum中的角色

参见:猪与鸡

Scrum當中定義了許多角色。按照對開發過程的參與情況,這些角色被分為兩組,即豬組和雞組。這個分組方法的由來是一個關於豬和雞合夥開餐館的笑話[16]

一天,一頭豬和一隻雞在路上散步。
雞對豬說:“嗨,我們合夥開一家餐館怎麼樣?”
豬回頭看了一下雞說:“好主意,那你準備給餐館起什麼名字呢?”
雞想了想說:“叫‘火腿雞蛋’怎麼樣?”
“那可不行”,豬說:“我把自己全搭進去了,而你只是參與而已。”

豬組的成員

是在Scrum過程中全身投入專案的各種人物,他們在專案中承擔實際工作。他們有些像上邊那個笑話裡的豬,要把自己身上的肉貢獻出來。

產品負責人(product owner)
產品負責人代表了客戶的意願。這保證了Scrum團隊在做從業務角度來說正確的事情。產品負責人編寫用戶故事,排出優先級,並放入產品訂單(product backlog)。产品负责人决定团队每个冲刺(sprint)要完成哪些任务。产品负责人负责最大化产品以及开发团队工作的价值。产品负责人通过在每个冲刺统一完整地执行Scrum流程,来保持合理开发节奏,从而保障产品的质量。[17]
Scrum主管(或促進者)(scrum master)
Scrum主管促進Scrum過程,他的主要工作是去除那些影響團隊交付沖刺目標的障礙。 Scrum主管並非團隊的領導/项目经理(因為團隊是自我組織的),而是一個負責屏蔽外界對開發團隊的干擾(例如某位领导对开发团队的指手画脚)的角色。 Scrum主管確保Scrum過程被按照初衷使用,即维护每个冲刺的流程,确保每个冲刺能够顺利实施。 Scrum主管是規則的執行者。Scrum主管负责团队建设,通过对士气积极主动的调节和鼓舞,来保持团队的凝聚力和战斗力。[17]
開發團隊(dev team)
負責交付產品的團隊。一個團隊通常由5至9名具有跨職能技能的人(設計者,開發者等)組成,承擔實際的開發工作。

雞組的成員

並不是實際Scrum過程的一部分,但是必須考慮他們。 敏捷方法的一個重要方面是使得用戶和利益相關者參與到過程中的實踐。參與每一個衝刺的評審和計劃,並提供反饋對於這些人來說是非常重要的。

用戶
軟件是為了人而開發的。有人說,“假如森林裡有一棵樹倒下了,但沒有被人聽到,那麼它算是發出了聲音嗎?”同樣地,人們可以說,“假如軟件沒有被使用,那麼它算是被開發出來了麼?”
利益相關者(客戶,提供商)
影響項目成功的人,但只直接參與衝刺評審過程。
經理
為產品開發團體搭建環境的人。

Scrum会议

参见:站会

在辦公室中間進行的“每日站立会议”,會議的位置有助於會議準時開始

在冲刺中,每一天都会举行项目状况会议,被称为“scrum”或“每日站立会议”。每日站立会议有一些具体的指导原则:

在会议上,每个团队成员需要回答三个问题:

  1. 昨天你完成了哪些有助於推進Sprint目標的工作?
  2. 今天你打算做什么與自身Sprint目標相關的事?
  3. 完成你的目标是否存在什么障碍?(Scrum主管需要记下这些障碍)

每日 Scrum 限時 15 分鐘,詳細討論可於Scrum之後,另開會議討論。

每一个冲刺完成后,都会举行一次冲刺回顾会议,在会议上所有团队成员都要反思这个冲刺。举行冲刺回顾会议是为了进行持续过程改进。会议的时间限制在4小时。

Scrum提倡所有团队成员坐在一起工作,进行口头交流,以及强调项目有关的规范(disciplines),这些有助于创造自我组织的团队。

Scrum的一个关键原则是承认客户可以在项目过程中改变主意,变更他们的需求,而预测式和计划式的方法并不能轻易地解决这种不可预见的需求变化。同样,Scrum采用了经验方法– 承认问题无法完全理解或定义,而是关注于如何使得开发团队快速推出和响应不断出现的需求的能力最大化。

Scrum会议一共包含以下四种:

  1. 冲刺计划会议
  2. 每日站立会议
  3. 评审会议
  4. 回顾会议。

文档

产品订单

产品订单(product backlog)是整个專案的概要文档。产品订单包括所有所需特性的粗略的描述。产品订单是关于将要生產什么樣的产品。产品订单是开放的,每个人都可以编辑。产品订单包括粗略的估算,通常以天为单位。估算将帮助产品负责人衡量時程表和優先順序(例如,如果"增加拼写检查"特性的估计需要花3天或3个月,将影响产品负责人对该特性的渴望)。

冲刺订单

冲刺订单(sprint backlog)是大大细化了的文档,包含团队如何实现下一个冲刺的需求的信息。任务被分解为以小时为单位,没有任务可以超过16个小时。如果一个任务超过16个小时,那么它就应该被进一步分解。冲刺订单上的任务不会被分派,而是由团队成员签名认领他们喜爱的任务。

燃尽图

燃尽图(burn down chart)是一个公开展示的图表,显示当前冲刺中未完成的任务数目,或在冲刺订单上未完成的订单项的数目。不要把燃尽图与挣值图相混淆。燃盡圖可能在一次衝刺的大部分時間內都維持平坦,但計畫仍然可以按照既定時間進行。

自适应的项目管理

以下是一些Scrum的通用实践:

Scrum在其他领域的应用

虽然Scrum最初只应用于软件开发,它也可以被成功地应用于其他产业。现在Scrum通常被认为是一种用于开发任何产品或管理人和工作的迭代式的,增量的过程。

Scrum用于产品开发

将Scrum应用于产品开发是在《新新产品开发游戏》[4] 第一次提出,之后野中郁次郎竹内弘高合著的《创造知识的企业》(牛津大学出版社,1995年)进行了详细的阐述。今天Scrum被用于开发金融产品,互联网产品,以及医药产品。

Scrum用作营销项目管理方法

由于市场营销通常以專案的方式运作,许多一般專案管理的原则应用在市场营销上。市场营销也可以像專案管理技术那样进行优化。以Scrum方法进行市场营销被认为有助于克服市场营销经理们所遇到的问题。短时和固定的会议对于小的市场营销团队来说很重要,这是因为团队的每一个成员都可以了解其他人在做些什么,以及整个团队在朝着什么方向前进。Scrum在市场营销中应用可以:

参见

外部链接

参考文献

  1. ^ Schwaber, Ken; Sutherland, Jeff. Scrum 指南. ScrumGuides.org. ScrumGuides.org. [Feb 9, 2021]. (原始内容存档于2021-06-02). 
  2. ^ National Academy for Education Research. Iteration. 國家教育研究院. 國家教育研究院. [2021-02-09]. (原始内容存档于2021-02-09). 
  3. ^ National Academy for Educational Research. Incremental. 國家教育研究院. 國家教育研究院. [Feb 9, 2021]. (原始内容存档于2021-02-09). 
  4. ^ 4.0 4.1 Takeuchi and Nonaka: The New New Product Development Game (Harvard Business Review, Jan-Feb 1986)
  5. ^ Peter DeGrace, Leslie Hulet Stahl, Wicked problems, righteous solutions, 1990, ISBN 0-13-590126-X
  6. ^ Advanced Development Methods, Inc Company Profile. Dun & Bradstreet. 
  7. ^ Jeff Sutherland, AGILE DEVELOPMENT: LESSONS LEARNED FROM THE FIRST SCRUM, 2004 (PDF). [2008-08-16]. (原始内容存档 (PDF)于2008-05-17). 
  8. ^ Agile Software Development with Scrum. 2002. 
  9. ^ Maximini, Dominik. The Scrum Culture: Introducing Agile Methods in Organizations. Management for Professionals. Cham: Springer. January 8, 2015: 26 (2015) [August 25, 2016]. ISBN 9783319118277. (原始内容存档于2021-04-14). Ken Schwaber and Jeff Sutherland presented Scrum for the first time at the OOPSLA conference in Austin, Texas, in 1995. [...] In 2001, the first book about Scrum was published. [...] One year later (2002), Ken founded the Scrum Alliance, aiming at providing worldwide Scrum training and certification. 
  10. ^ Home. Scrum.org. [January 6, 2020]. (原始内容存档于2021-06-08) (英语). 
  11. ^ A letter from Ken Schwaber. 2009 Control Chaos - Message from Ken. [Feb 16, 2021]. (原始内容存档于2006-12-14). 
  12. ^ Ken Schwaber. Ken Schwaber 在 Blog 自述 2006 年接到的一通電話…. Ken Schwaber's Blog. [2021-02-16]. (原始内容存档于2020-08-08). 
  13. ^ Paddy Corry. 在成立 Scrum Alliance 七年後的2009年,Schwaber在對幫助傳播 Scrum 一詞的認證計劃存在分歧之後,陷入了一片陰影…. Medium: Serious-Scrum. [2021-02-16]. (原始内容存档于2021-01-26). 
  14. ^ Schwaber, Ken; Sutherland, Jeff. Scrum 指南. ScrumGuides.org. ScrumGuides.org. [Feb 15, 2021]. (原始内容存档于2021-06-02). 
  15. ^ 許慈真/北美智權報 專欄作家. 從Scrum一案看美國商標訴訟如何取得暫時禁制令:. 北美智權報. [2021-02-16]. (原始内容存档于2020-11-27). 
  16. ^ Ken Schwaber. Agile Project Management with Scrum. Microsoft Press. 2004年1月: 7. ISBN 0-7356-1993-X. 
  17. ^ 17.0 17.1 Scrum团队内部的角色与分工. PingCode Blog. 2021-08-31 [2023-09-22]. (原始内容存档于2023-03-30) (中文(中国大陆)). 

延伸阅读