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中的主要角色包括:
在每一次衝刺或迭代(一個15到30天的周期,其長度由開發團隊決定)當中,開發團隊創建可用的(可以隨時推出)軟件的一個增量。每一個迭代所要實現的功能來自產品訂單。產品訂單按照優先級排列工作需求。在迭代計劃會議中,產品負責人告訴開發團隊需要完成產品訂單中的哪些訂單項。開發團隊決定在下一次迭代中他們能夠承諾完成多少訂單項。在迭代的過程中,沒有人能夠變更迭代訂單,這意味著在一個迭代中需求是被凍結的。
管理Scrum過程有很多實施方法,如即時貼、白板、甚至軟件包。 Scrum最大的好處之一是它非常容易學習,而且啟動Scrum應用並不需要太多的投入。
参见:猪与鸡 |
Scrum當中定義了許多角色。按照對開發過程的參與情況,這些角色被分為兩組,即豬組和雞組。這個分組方法的由來是一個關於豬和雞合夥開餐館的笑話[16]:
一天,一頭豬和一隻雞在路上散步。
雞對豬說:“嗨,我們合夥開一家餐館怎麼樣?”
豬回頭看了一下雞說:“好主意,那你準備給餐館起什麼名字呢?”
雞想了想說:“叫‘火腿和雞蛋’怎麼樣?”
“那可不行”,豬說:“我把自己全搭進去了,而你只是參與而已。”
豬是在Scrum過程中全身投入專案的各種人物,他們在專案中承擔實際工作。他們有些像上邊那個笑話裡的豬,要把自己身上的肉貢獻出來。
雞並不是實際Scrum過程的一部分,但是必須考慮他們。 敏捷方法的一個重要方面是使得用戶和利益相關者參與到過程中的實踐。參與每一個衝刺的評審和計劃,並提供反饋對於這些人來說是非常重要的。
参见:站会 |
在冲刺中,每一天都会举行项目状况会议,被称为“scrum”或“每日站立会议”。每日站立会议有一些具体的指导原则:
在会议上,每个团队成员需要回答三个问题:
每日 Scrum 限時 15 分鐘,詳細討論可於Scrum之後,另開會議討論。
每一个冲刺完成后,都会举行一次冲刺回顾会议,在会议上所有团队成员都要反思这个冲刺。举行冲刺回顾会议是为了进行持续过程改进。会议的时间限制在4小时。
Scrum提倡所有团队成员坐在一起工作,进行口头交流,以及强调项目有关的规范(disciplines),这些有助于创造自我组织的团队。
Scrum的一个关键原则是承认客户可以在项目过程中改变主意,变更他们的需求,而预测式和计划式的方法并不能轻易地解决这种不可预见的需求变化。同样,Scrum采用了经验方法– 承认问题无法完全理解或定义,而是关注于如何使得开发团队快速推出和响应不断出现的需求的能力最大化。
Scrum会议一共包含以下四种:
产品订单(product backlog)是整个專案的概要文档。产品订单包括所有所需特性的粗略的描述。产品订单是关于将要生產什么樣的产品。产品订单是开放的,每个人都可以编辑。产品订单包括粗略的估算,通常以天为单位。估算将帮助产品负责人衡量時程表和優先順序(例如,如果"增加拼写检查"特性的估计需要花3天或3个月,将影响产品负责人对该特性的渴望)。
冲刺订单(sprint backlog)是大大细化了的文档,包含团队如何实现下一个冲刺的需求的信息。任务被分解为以小时为单位,没有任务可以超过16个小时。如果一个任务超过16个小时,那么它就应该被进一步分解。冲刺订单上的任务不会被分派,而是由团队成员签名认领他们喜爱的任务。
燃尽图(burn down chart)是一个公开展示的图表,显示当前冲刺中未完成的任务数目,或在冲刺订单上未完成的订单项的数目。不要把燃尽图与挣值图相混淆。燃盡圖可能在一次衝刺的大部分時間內都維持平坦,但計畫仍然可以按照既定時間進行。
以下是一些Scrum的通用实践:
虽然Scrum最初只应用于软件开发,它也可以被成功地应用于其他产业。现在Scrum通常被认为是一种用于开发任何产品或管理人和工作的迭代式的,增量的过程。
将Scrum应用于产品开发是在《新新产品开发游戏》[4] 第一次提出,之后野中郁次郎和竹内弘高合著的《创造知识的企业》(牛津大学出版社,1995年)进行了详细的阐述。今天Scrum被用于开发金融产品,互联网产品,以及医药产品。
由于市场营销通常以專案的方式运作,许多一般專案管理的原则应用在市场营销上。市场营销也可以像專案管理技术那样进行优化。以Scrum方法进行市场营销被认为有助于克服市场营销经理们所遇到的问题。短时和固定的会议对于小的市场营销团队来说很重要,这是因为团队的每一个成员都可以了解其他人在做些什么,以及整个团队在朝着什么方向前进。Scrum在市场营销中应用可以:
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.
|
|