Scrum是一种敏捷的管理项目的方式,经常用于软件项目的管理。用Scrum来管理的敏捷软件开发通常被认为是一种方法,但与其说它是一种方法,不如说它是用来管理过程的一种框架。

什么是Scrum?

在敏捷开发的Scrum世界里,关于事情如何被完成的详细的描述,不是由外部提供而通常是留给Scrum软件开发团队来决定的,因为团队最了解该如何去解决这些问题。

这就是为什么在Scrum开发过程中,一个冲刺计划会议只描述期待的结果,而不是一系列的像在其他方法论中被提及的诸如开始标准,任务描述,验证条件,完成条件等。

Scrum基于一个自我组织,跨功能的团队。Scrum团队没有一个总体上的团队领导决定谁会做什么样的任务以及如何去解决这个任务,这些问题都是由团队整体来决定的。

而Scrum团队是跨功能的则说明团队里的每一个成员都需要承担一个从想法到实现的功能。

与敏捷开发结合,Scrum团队由两个特殊的角色来支持,第一个是Scrum大师(Scrum Master),他/她可以被看作是团队的教练,用来帮助团队成员更好的理解Scrum的过程,在工作中发挥最高水平。

产品所有者(Product Owner)是Scrum软件开发团队中的另外一个角色,代表了业务,客户和用户来帮助团队向构建正确产品的方向前进。

Scrum开发包含了什么?

Scrum模型建议将项目开发安排在一系列的冲刺中前进。为了与敏捷开发的方法轮更好的结合,每一个冲刺都被限定在一个月之内,通常都会是两周时间。

Scrum方法建议在每一个冲刺时间开始之前举行一次计划会议,在计划会议中,团队成员会决定在这个冲刺阶段中他们能完成多少项目,然后创建这个冲刺阶段需要完成的挤压列表。

在敏捷开发的Scrum冲刺中,Scrum团队会对一些功能完成从想法,到实现,最后完成功能测试的过程。在最后,会完成这些功能的开发,测试和集成到现有的产品或系统中,完成这些功能。

在冲刺中的每一天,全部成员需要参与一个Scrum日会,包括Scrum大师和产品所有者。这个每天的例会不超过15分钟。在会议之中,每一个团队成员分享他们前一天做了什么,今天将要做什么,然后是否有遇到什么困难。

Scrum模型把每天的Scrum当作是在冲刺阶段中探讨工作,凝聚团队成员的一种方式,

在每一个冲刺结束后,团队会开一个冲刺评论会议,团队会在会议中向产品所有者及其他想要提供反馈建议的成员展示在这个冲刺阶段的功能完成情况。

在这个项目反馈环节中,Scrum软件开发团队可能会对新开发的功能进行修改,也可能会对挤压列表中进行修改和添加。

另外一个Scrum项目管理的活动是每一个冲刺结束后的冲刺回顾。整个团队都会参加这次会议,包括Scrum大师和产品所有者。这个会议旨在回顾这次冲刺过程,发现是否有提升的机会。

Scrum过程:主要的构件

Scrum开发当中最重要的构件当然是产品本身。Scrum模型期待在每次Scrum冲刺结束之前,团队都能将产品或者系统开发到能够发布的状态。

产品的挤压列表是另外一个Scrum中的构件,挤压列表承载着全部需要被加到产品中的功能。产品所有者会安排挤压列表中的优先级将最有价值的功能提到最高。

最流行同时也是最成功的创建挤压列表的方法是通过简短描述用户使用场景的用户故事。

在Scrum项目管理中,在冲刺的第一天和计划会议的时候,团队成员创建冲刺挤压列表。挤压列表可以被看作是在冲刺阶段团队的Todo列表,而产品挤压列表则是通过用户故事将要完成的功能。

冲刺挤压列表是团队将要在这次冲刺中完成的功能,以完成在冲刺结束后可以发布功能的承诺。

另外的构件是从Scrum敏捷开发方法论中来的,是冲刺完成表和发布完成表。完成表显示的是在冲刺或者发布还需要完成的工作。是对于Scrum软件开发来说非常有效的工具,可以被用来决定产品是否可以按照日程安排计划完成。

敏捷Scrum开发项目: 主要角色

即使你刚刚接触Scrum,你可能也听说过一个叫做Scrum大师的角色。Scrum大师是团队的主教练,帮助Scrum实践者实现他们最高的表现。

在Scrum过程中,Scrum大师是在很多地方区别于传统的项目管理经理的,包括这个角色并不提供对于团队每天的指导,也不安排具体任务给某个成员。

一个好的Scrum大师保护团队不受外来干扰的影响,让团队成员能够将注意力集中到完成冲刺阶段的任务上。

当Scrum大师关注在帮助团队做到最好的时候,产品所有者则在指导团队朝着正确的方向上努力。产品所有者通过创建具有吸引力的关于产品的愿景,并且通过产品的挤压列表将这样的一种对于产品的愿景传递给团队。

产品所有者负责划分挤压列表中的优先级,保证关于系统,产品,用户以及团队拥有非常非常深刻的理解。

第三个也是最后一个Scrum项目管理的角色就是Scrum团队自己。尽管每个成员在团队中有着不同的职位头衔,在Scrum里面,这些职位的头衔是不重要的。Scrum方法论让每个团队成员以他们自己的方式为完成每一个冲刺做出贡献。

这并不以为希望测试人员去完成系统的重构,每个团队成员会花费他们大部分甚至全部的时间在使用Scrum模型之前的工作。但是用了Scrum之后,每个团队成员在除他们自己期待的工作之外所做的工作,是为了帮助团队更好的完成任务。

一种描述这三个角色在敏捷开发中关系的比喻是赛车比赛。

Scrum团队是赛车本身,准备好往任何地方形式,产品所有者是驾驶员,保证这辆赛车朝着正确的方向前进。而Scrum大师则是首席机械师,保证赛车调教完好能够发挥除它最大的潜力。

名词翻译:

Daily Scrum: Scrum日会

Scrum Master: Scrum大师

Product Owner: 产品所有者

Sprint: 冲刺

Artifact: 构件

Planning: 计划

Review: 审核

Retrospective: 回顾

Sprint Burndown chart: 冲刺完成表

Release Burndown chart: 发布完成表

原文链接:https://www.mountaingoatsoftware.com/agile/scrum