Scrum是敏捷过程中比较著名的一个过程框架,被很多团队采用。
Scrum使用迭代的开发方式,每一次迭代中,都会经历一个“计划->实施->验证->反思”的过程。这是一个开发过程,同时也是一个对项目的认识过程,这样的设计其实也是遵循了哲学的认知论.
名词解释:
Sprint:每一次迭代称为一个Sprint。
Backlog:其实就是需求列表。
SM:Scrum Master,Scrum过程的管理者。
PO:Product Owner,需求他说了算。
TEAM:架构师、开发人员、测试人员等。
Chicken:其他相关的人,如老总、客户。 ^_^
故事点:一个相对独立的功能点。
度量:在过程中的一些度量值。如当前系统的BUG数。
事件:过程中出现的一切事件。如小王今天早上在大家在全身心投入站会时时,放了一个屁……
角色
Scrum中只有三类角色:SM、PO、Team。
计划会议
一个迭代的时长一般定在2-4周。而计划会议是 Scrum 中最重要的会议。目的是定出本次Sprint的任务目标和计划,让所有成员能在接下来的日子里更流畅地进行各自的工作。同时,这也会让PO更有信心。
主要活动:PO做出产品Backlog,然后在会议上给大家讲解。会议上Team在对故事点理解的基础上,对其进行估时。最后再将其拆分为任务点。故事点和任务都放在小黑板上。
产物(按优先级排序):
业务目标、Demo会议日期、
Sprint Backlog(故事点列表、估优先级和估时、HowToDemo)、
速度和资源的计算、成员列表、
每日站会的时间地点、
故事点拆分为任务。
注意事项:
PO必须参加这个会议!这是因为需要和Team进行面对面的交流来进行计划,以确定估算时间、范围、重要程度等可变因素。
PO和团队之间要保证对故事的理解没有问题。可以保证backlog所有的列都全部写好。最重要的就是How to demo列。
技术性的故事点,不要让PO来定优先级,这样会得到很低的优先级,而往往它们是很重要的。
Sprint Backlog
每期Sprint都需要一个Backlog。Backlog也就是对当前需求的描述文档。目前我们项目组使用Excel做Backlog:
图1 Backlog Excel表
同时,使用黑板进行平时的调整:
图2 小黑板
每日站会
每天,Scrum团队成员都会参加这个会议。会议时间在15分钟以下,大家都站着,所以称为“站会”。
每个人在站会上主要是叙述一下昨天做了什么、今天会做什么,以及需要的支持等。同时,每个人更新小黑板上的相关内容,如:
图3 更新时间
Sprint Demo会议
Demo会议也是十分重要的一个会议。
主要是向PIG们展示当前阶段的项目成果。会议上应该保证明确地展示了本Sprint的业务目标。
这是一个重在 沟通和反馈 的过程。
Sprint回顾会议
这同样是一个非常重要的会议。因为这个会议的开展会帮助团队进步。
会议中会对本次Sprint的所有故事、度量、事件,进行以下三方面的归类:做得好的,做得不对的、改进意见。
(“做得不对的”表示:如果同样的事发生在下个Sprint,应该以不一样的方式来对待它。)
其它
想系统地学习Scrum,参见:Introduction to Scrum - An Agile Process
还有:《Scrum and XP from the Trenches》