什么是scrum?如何有效的在一个研发团队中推行Scrum?

日事清介绍

日事清 是北京创仕科锐公司出品的一款团队管理软件。可以对研发团队的“需求”、“BUG”、“任务”,进行管理,做需求管理、缺陷跟踪、任务管理等。因为日事清提供了Scrum视图和Kanban视图,所以特别适合敏捷开发团队使用。10人以下团队的可以免费使用。

Scrum是一种管理项目的敏捷方式,通常是软件开发领域使用。使用Scrum进行敏捷软件开发通常被视为一种方法论; 但不是将Scrum本身视为方法论,Scrum可以被看作是管理流程的框架。

 

什么是Scrum?

 

在敏捷的Scrum的世界中,不是提供关于如何在项目上完成所有工作的完整、详细的描述,而是留给Scrum软件开发团队。这是因为团队将最了解如何解决他们所呈现的问题。

 

这就是为什么在Scrum开发中,例如,sprint计划会议是根据期望的结果(对下一个sprint中要开发的一组功能的承诺)而不是一组入口准则、任务定义、退出标准(ETVX)等,如大多数方法中所提供的那样。

 

Scrum依赖于一个自组织、跨职能的团队。Scrum团队是自我组织的,因为没有整体团队负责人决定哪个人将执行哪项任务或如何解决问题。这些是由整个团队决定的问题。

 

在Scrum中,团队是跨职能的,这意味着每个人都需要从构思到实现一个特性。

 

在敏捷开发中,Scrum团队由两个特定角色提供支持。第一个是ScrumMaster,可以被认为是团队的教练,帮助团队成员使用Scrum流程在最高级别执行。另一个角色是产品所有者(PO),在Scrum软件开发中,代表业务、客户或用户,并指导团队构建正确的产品。

Scrum开发:涉及什么?

 

Scrum模型推荐项目通过一系列的冲进行。为了与敏捷方法保持一致,冲刺的时间间隔不超过一个月,最常见的是两周。

 

Scrum主张在sprint开始时召开计划会议,团队成员可以计算出他们可以承诺的项目数量,然后创建sprint backlog——sprint期间要执行的任务列表。

 

在敏捷的Scrum sprint期间,Scrum团队从概念到编码和测试功能都采用了一小部分功能。最后,这些功能已经完成,意味着编码,测试并集成到不断发展的产品或系统中。

 

在sprint的每一天,所有团队成员,包括ScrumMaster和产品所有者,都应参加每日Scrum会议,这次会议的时间安排不超过15分钟。在此期间,团队成员分享他们在前一天工作的内容,将在当天工作,并确定进展的任何障碍。

Scrum模型将每日scrums视为在讨论sprint工作时,同步团队成员工作的一种方式。

 

在冲刺结束时团队进行冲刺审查,在此期间团队向产品所有者(PO)、或任何其他希望提供可能影响下一冲刺的反馈的利益相关者——演示新功能。

 

Scrum软件开发中的这个反馈循环可能会导致对新交付功能的更改,但也可能导致修改或向产品积压(product backlog)工作中添加项目。

 

Scrum项目管理中的另一项活动是每个sprint结束时的sprint回顾。整个团队参加了这次会议,包括ScrumMaster和PO。会议会反思已经结束的冲刺的机会,并确定改进的机会。


Scrum流程:主要工件

 

当然,Scrum开发中的主要工件是产品本身。Scrum模型希望团队在每次Scrum sprint结束时将产品或系统带入到潜在的可交付状态。

 

产品积压(product backlog)是Scrum的另一个工件。这是要添加到产品中的功能的完整列表。产品所有者优先考虑积压(product backlog),以便团队始终首先处理最有价值的功能。

 

使用Scrum方法创建产品待办事项的最流行和最成功的方法是使用用户故事填充它,用户故事(user stories)是从用户或客户的角度描述的功能的简短描述。

 

在Scrum项目管理中,在sprint的第一天和计划会议期间,团队成员创建sprint backlog。sprint backlog可以被认为是sprint的团队待办事项列表,而产品backlog是要构建的功能列表(以用户故事的形式编写)。

 

sprint backlog是团队需要执行的任务列表,以便提供它在sprint期间提交的功能。

 

Scrum敏捷方法产生的其他工件是冲刺消耗图(sprint burndown chart)和释放燃尽图(release burndown chart)。Burndown图表显示了冲刺或释放中剩余的工作量,并且是Scrum软件开发中的有效工具,用于确定冲刺或释放是否按计划在所需日期完成所有计划的工作。

 

敏捷Scrum项目:主要角色

 

即使你是Scrum的新手,你也可能听说过一个名为ScrumMaster的角色。ScrumMaster是团队的教练,帮助Scrum从业者实现最高水平的表现。

 

在Scrum流程中,ScrumMaster在很多方面与传统项目经理不同,包括该角色不向团队提供日常指导,也不向个人分配任务。

 

一个好的ScrumMaster可以让团队避免外界干扰,让团队成员在冲刺期间疯狂地关注他们所选择的目标。

虽然ScrumMaster专注于帮助团队做到最好,但产品所有者(PO)致力于指导团队实现正确的目标。产品所有者(PO)通过创建产品的引人注目的愿景,然后通过产品积压将该愿景传达给团队来实现这一目标。

 

产品负责人负责在Scrum开发过程中确定积压(backlog)的优先级,以确保在了解正在构建的系统,用户,团队等方面获得更多信息。

Scrum项目管理的第三个也是最后一个角色是Scrum团队本身。虽然个人可以加入团队中的各种职称,但在Scrum中,这些职称并不重要。Scrum方法论指出,每个人都以任何方式为完成每个sprint的工作做出贡献。

这并不意味着将要求测试人员重新构建系统; 在采用敏捷Scrum模型之前,个人将花费大部分时间(有时甚至是全部)工作在他们工作的任何学科中。但是对于Scrum来说,只要这样做是为了团队的利益,就应该超出他们的首选学科。

在这种敏捷方法中考虑这三种角色的联锁性质的一种方法是作为赛车。

 

Scrum团队就是汽车本身,随时准备以任何指向方向行驶。产品所有者是司机,确保汽车始终朝着正确的方向前进。ScrumMaster是首席机械师,能够让汽车保持良好的性能和最佳性能。


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