Scrum 的相关概念

Scrum 的相关概念

4.1   Scrum 的起源

Scrum 是一种灵活的敏捷软件开发管理过程,这个名词来源于英式橄榄球。Scrum方法由Ken Schwaber和Jeff Sutherland提出,它将软件开发团队比作橄榄球队,全队有明确的最高目标----发布产品的重要性高于一切,团队高度自制,成员们熟悉开发过程中涉及的各种技术,紧密合作,确保每个迭代(Srpint)都朝着最高目标推进。而且每隔2~4周,每个团队成员都能看到能实际工作的软件,并据此决定是发布这个版本还是继续开发以加强它的功能。

对于那些功能需求可能经常发生变化的项目来说,Scrum是最为理想的选择之一。在一个采用Scrum的项目中,首先要将所有需要完成的工作列在一个Product Backlog中,项目开发过程中需求的改变也要写进去。在每个Sprint开始之前,要召开Sprint计划会议。在这个会上,产品负责人(Product Owner)为Product Backlog中的各项功能需求确定优先级。随后,Scrum开发团队按照优先级,从Product Backlog中挑选出他们认为能在这个Sprint中完成的任务,并把这些任务从Product Backlog中挪到Sprint Backlog中去。在Sprint的进行过程中,Scrum团队每天都要举行一个简短的每日Scrum会议,以便团队成员了解开发进度。一个Sprint结束之后,需要召开Sprint评审会议和Sprint回顾会议。开发团队在Sprint评审会议上把这个Sprint的开发成果展示给大家。而在Sprint回顾会议上,团队成员们会回顾刚刚过去的这个Sprint,从中总结经验和教训。

4.2   Scrum 中的角色

Scrum中有3种角色,分别是产品负责人(Product Owner)、Scrum Master 和 Scrum 团队,他们各自的职责如下:

  • 产品负责人(Product Owner)

    Product Owner 需要确定产品的功能和完成时间,并对产品的收益负责,要根据市场需求确定产品功能的优先级。在每个Sprint开始之前,Product Owner可以修改功能需求和优先级。而且,Product Owner 有权决定接受或否决各个Sprint的工作成果。

    Product Owner 的角色通常由市场部门的人员或开发部门门内部主要使用该产品的人员来担任,主要工作是根据市场需求确定产品功能,将其列入Product Backlog中,并为这些功能确定优先级。

    Scrum团队按照功能的优先级,将它们从高到低分配到各个Sprint中进行开发,这些被分配到一个Sprint中完成的功能就形成了Sprint Backlog。

    在产品的整个开发过程中,Product Owner对于产品的需求可能会发生改变。他可以修改Product Backlog,以及增加某些功能需求、删除某些功能需求、修改优先级等,但这些行为只能在各个Sprint之间进行。

  • Scrum Master

    Scrum Master的职责是:负责监督整个Scrum项目进程,调整项目计划;确保开发团队成员的能力能够胜任产品的开发;促进团队中不同角色的成员间充分交流和沟通,并负责为项目的进行扫清障碍;保证开发团队不受外力的干扰和阻扰;掌握产品开发进度,参与每日Scrum会议、Sprint计划会议和 Sprint评审会议。

    Scrum Master 通常由传统开发中的Team Leader 来担当。

  • Scrum 团队

    一般由5~10个能全职工作的成员组成较为理想。

    团队成员横跨各个职能,通常包括开发、测试、文档设计人员等。

4.3   什么是产品Backlog,什么是Sprint Backlog?

产品Backlog指根据初始需求分解出的任务列表,包括功能性和非功能性的所有功能,由Product Owner为Product Backlog中的任务确定优先级别,当开发团队开始某个任务的时候,再精确定义和分解这个任务。

产品Backlog是产品所要具备的所有功能的总纲。当一个项目刚刚开始时,没人能够事先预见到所有的任务和需求,并为之制定一个充分、详细而包罗万象的计划。可行的方式是,先为一个项目写下所有它该具备的显著特性和功能,数量不必很多,做好能保证团队的第一个Sprint有活可干。

随着Sprint的进行,生产出可发布的产品增量,客户对产品的直观认识也会随之加深,他们可以据此建议更改或者添加产品Backlog中的任务。

在Sprint计划会议上,产品负责人为产品Backlog中的任务确定优先级,并向Scrum团队描述这些任务。Scrum团队随后根据团队整体情况,确定他们能在这个即将到来的Sprint中完成哪些功能,并把它们挪到Sprint Backlog中去。

4.4   Scrum中如何实现一个Sprint?

  1. Scrum计划会议

在每个Sprint开始之前,需要召开Sprint计划会议,会议时间一般为4~8小时,参加人员有产品责任人、Scrum Master、Scrum团队和其他感兴趣的人,比如管理人员和客户代表。

Product Owner从产品Backlog中挑选高优先级的任务,并与Scrum团队一起决定在这个Sprint中需要完成多少功能。Scrum团队将这些任务分解成小的功能模块。Scrum团队成员详细讨论如何能按需求完成这些功能模块,并估计完成每个功能模块所需的大概时间。

  1. 每日Scrum会议

每日Scrum会议(Daily Scrum),即团队每日例会,条件允许的话,每天都应该在同样的时间和地点,组织所有成员站立举行。由于是以站立的状态开会,因此时间比较短,一般为 15分钟左右。这个会议最好是在每天的清晨开,有利于团队成员安排好当天的工作计划。只有团队成员可以在每日Scrum会议上发言,其他人员如果对项目进度有兴趣也可以参加,但只能旁听而不能发言。

  1. Scrum评审会议

Sprint评审会议在Sprint结束时召开,由开发团队展示这个Sprint中完成的功能,长度为两个小时左右,不需要PPT,一般是已经完成功能的Demo,而客户、管理层、Product Owner以及其他开发人员等都可以参加。

在Sprint评审会议上,Scrum团队用Demo的形式展示产品的功能之后,与会人员依据在Sprint计划会议上确定的这个Sprint的目标来评审具备了这些新功能的产品。

  1. Scrum回顾会议

Sprint回顾会议由产品责任人、Scrum团队和Scrum Master参见,会议中需要讨论:有哪些好的建议或方法应该被采纳;在Sprint中有什么做法不可取;有哪些做法效果很好,应该继续下去。

Sprint结束后,Scrum团队回顾刚结束的Sprint,对其进行总结和反思,使整个团队能持续成长。总之,Sprint回顾会议的宗旨就是:Scrum团队如何在下一个Sprint中做得更好!

4.5   Scrum中的User Story

我们通常用User Story来描述Backlog里的各个Backlog项,User Story是从用户的角度对系统的某个功能模块所作的简短描述。一个User Story描述了项目中的一个小功能,以及这个功能完成之后将会产生什么效果,或者说能为客户创造什么价值。

User Story要由Stakeholder(利益相关者)来编写。User Story的形式很简单,人们可以很容易地掌握编写User Story的方法。这样就可以保证是由与项目相关领域专家们来编写User Story,而不是开发人员。

我们通常把User Story写在一张小卡片上,同时在卡片上标明它的优先级和预计完成时间,以便开发人员根据任务的优先级来制定Sprint Backlog。而且,Stakeholder可以随时更改一个Story的优先级,那么此时开发人员就应该相应地调整Story的开发次序。

一个User Story的大小和复杂度应该在一个Sprint中开发完毕为宜。如果User Story太大,可能会导致对它的开发横跨几个Sprint。这种情况是需要避免的。此时就应该将这个User Story分解。

User Story有一个通用的公式格式,大家可以套用一下试试,很简单。 作为<某个角色>,我可以<做什么>,以完成<什么目的>。 例如:作为一个病人,我可以预约一个医生,让他给我看病。

这种表达方式清晰明了,提供了足够的信息以供测试。更详细的实现细节会在要完成这个User Story的Sprint开始之前确定下来,并补充到Sprint Backlog中去。这是一种把客户需求分解为可测试的且有优先级的任务的有效方式。

为了能及时、高效地完成每个Story,Scrum团队会把每个Story分解成若干个Task。每个Task都是可以在明确的时间内完成的,而且时间是以小时为计量单位的。

特别提示:每个Task的时间最好不要超过8小时,就是要保证1个工作日内完成,如果做计划时发现有些Task的时间超过了8小时,就说明Task的划分有问题,需要特别注意。

4.6   Scrum 中Burndown Chart

Burndown Chart 可以体现Sprint的进度。如果Sprint Burndown Chart一直是上升状态,或当Sprint进行一段时间之后,Sprint Burndown Chart上当前点的Y值仍然与Sprint刚开始时相差无几,就说明这个Sprint中的Story过多,要拿掉一些Story以保证这个Sprint 能顺利完成。如果Sprint Burndown Chart下降得很快,例如Sprint刚过半时Y值已经接近零了,则说明为这个Sprint分配的任务太少,还要多加一些任务近来。在Sprint计划会议上,如果团队即将要做的任务理解和认识不充分,就很可能导致这两种情况的出现。

注意:燃烧曲线是衡量团队进度的重要工具。但是不要过分依赖它作为监督和考核的依据,否则就会变味。因为这样会使团队把重点放在生成漂亮的曲线上,而不是项目本身。

4.7   参考资料

电子工业出版社 <<轻松Scrum之旅---敏捷开发故事>>

时间: 2024-11-03 22:02:07

Scrum 的相关概念的相关文章

研发管理08:敏捷 Scrum 相关基本概念

本文描述 Scrum 的相关概念. 1, 定义与概述 2, 三个角色 3, 六个时间箱 4, 四个工件

SCRUM黑

来自 :coolshell 这篇文章的原文在这里(原文链接)(下文不是全译,也不是部分译,我只是把其总结,有我自己的发挥,但是原意大致不变),这篇文章完全是在调侃Scrum的,作者第一段就是一个免费声明,其说他是Scrum和其它敏捷方法的big fan, 他也认为Scrum 100% 对 软件开发可行.作者使用Scrum 5年了,也公开作过几次敏捷的分享会.他觉得写这篇文章只是为了好玩,因为他们戴上Edward de Bono 的 black hat (黑礼帽 – 是6个思考之帽中的一种——负面

【Beta】 第七次Daily Scrum Meeting

第七次meeting会议 [Beta] 第七次Daily Scrum Meeting 一.本次会议为第七次meeting会议 二.时间:10:00AM-10:20AM 地点:禹州楼 三.会议站立式照片 四.今日任务安排 成员 昨日任务 今日任务 林晓芳 重观界面问题上的美化处理 对现有的东西进行总结,主要是关于此次采用的一些方法.库等等 林清青 与其他组探讨交流进度 对于接下里的任务方向与大家探讨 陈惠 重观界面问题上的美化处理 基于现有的东西进行更深入的完善,例如,如何让闹钟提醒更人性化 郑莹

DNS服务相关概念详解

实验环境:RHEL 32Bit DNS服务相关概念详解 DNS是一种域名解析服务,DNS服务的核心以及DNS服务的标准都是基于一个软件来实现的,这个软件叫做BIND(Berkeley Internet Name Domain),互联网上几乎所有的DNS服务都是由BIND来构建的,虽然也有其它的DNS服务构建标准,但是它们的使用语法以及工作机制都和BIND非常接近. ·Linux服务器和Windows服务器的比较 Linux服务器在没有SELinux的时候它的安全级别和Windows服务器的安全级

8. 蛤蟆的数据结构进阶八哈希表相关概念

8. 蛤蟆的数据结构进阶八哈希表相关概念 本篇名言:"作家当然必须挣钱才能生活,写作,但是他决不应该为了挣钱而生活,写作.--马克思" 前些笔记我们学习了二叉树相关.现在我们来看下哈希表.这篇先来看下哈希表的相关概念 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47347273 1.  哈希表的概念 哈希表(HashTable)也叫散列表,是根据关键码值(Key Value)而直接进行访问的数据结构.它通过把关键

瀑布式开发、迭代开发、敏捷开发、XP与SCRUM的区别

瀑布式开发.迭代开发,区别[都属于,生命周期模型]         两者都是一种开发模式,就像设计模式一样,考虑的角度不一样,个人感觉谈不到取代一说. 传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好.特别是前期阶段,设计的越完美,提交后的成本损失就越少.我现在从事的外包项目就是这样的流程. 迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目

Scrum站立会议

Scrum是一个包括了一系列实践和预定义角色的过程骨架. 主要角色: 产品负责人: 负责维护产品订单的人,代表利益相关者的利益. Scrum主管 :为Scrum过程负责的人,确保scrum的正确使用并使得Scrum的收益最大化. 开发团队:一个跨职能的小团队,人数5-9人,团队拥有交付可用软件需要的各种技能. 指导原则: 会议准时开始.对于迟到者团队常常会制定惩罚措施 欢迎所有人参加,但只有在专案中承担实际工作的角色可以发言. 不论团队规模大小,会议被限制在15分钟. 所有出席者都应站立.(有助

每日站立会议——敏捷流程scrum实践

每日站立会议是敏捷流程scrum中的很重要的一个制度之一. 功能: 1.快速同步进展,让项目组内部的员工互相了解彼此的进展,从而了解本项目的整体进展. 2.给每个人一种精神压力,信守承诺.这是一种面对面的精神压力,直面项目进展. 3.培养团队的文化,让每个人意识到:我不是一个人在战斗,我们是一个团队. 站立会议的目的: 1.让所有人了解其他人在做什么,当前项目计划进展如何 2.帮助大家解决那些阻碍做事情的问题,以及共享承诺这些都非常有利于提高团队合作精神的. 注意要点: 1.主题明确,不能掺杂其

Scrum软件开发

敏捷开发:agile software development适合轻量级流程,允许快速改变.Scrum是一个敏捷开发框架,打破传统顺序产品开发流程,鼓励团队自组织(co-location或在线协作,以及每天的face-to-face通信) Scrum have three pillars: transparency, inspection, and adaptation. Scrum角色:1)Product owner:product's stakeholder,代办客户发声(等同客户代表).书