敏捷开发之scrum方法运用

fengyun2050 fengyun2050     2023-04-23     608

关键词:

目前软件开发除了强调产品质量,同时对产品能够快速发布并且迅速适应市场变化的要求也日益强烈。为适应这种开发环境和市场需求,传统的软件开发模式已被敏捷开发模式所替代。本文介绍敏捷软件开发中的Scrum方法,并结合实际问题,分析Scrum方法在实践中的运用。

技术图片

产品质量和开发效率一直是软件产品开发的关键。随着科技和经济的发展,软件的市场环境和用户需求不断发生变化,这对软件产品的快速发布提出很高的要求。传统的瀑布模型、螺旋模型、原型模型等已不能适应越来越复杂和不断变化的需求和市场环境。近年来,敏捷软件开发逐步流行,并被广泛认识、研究和使用。敏捷开发具有应对快速变化的市场和需求的能力,因此,它被越来越多的公司企业采用。用于敏捷软件开发的方法有很多,其中Scrum方法是被广泛应用的方法之一。

1.Scrum简介

Scrum是一个增量的、迭代的开发过程,名称来自英式橄榄球的争球。Scrum的整个开发周期包括若干个小的迭代周期,每个小的迭代周期称为一个冲刺(SPrint),每个冲刺的长度一般为2到4周。在Scrum中,使用产品订单来管理产品或项目的需求,产品订单是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。开发团队总是先开发的是对客户具有较高价值的需求。在每个冲刺中,开发团队从产品订单中挑选最有价值的需求进行开发。冲刺中挑选的需求经过计划会议上的分析、讨论和估算得到一个冲刺的任务列表,我们称它为冲刺订单。在每个迭代结束时,开发团队将交付潜在可交付的产品增量。

Scrum的主要角色有:产品负责人、Scrum主管、开发团队。Scrum的会议包括:计划会议、评审会议、回顾会议、每日站立例会。Scrum的文档有:产品订单、冲刺订单、燃尽图。Scrum方法的运作过程就是产品负责人、Scrum主管、开发团队依据Scrum必需的文档,通过Scrum定义的会议方式展开的一轮一轮产品开发的迭代过程。

2.Scrum方法的实际运用

Scrum方法给出的是一个框架,各角色人员如何根据这个框架来实践Scrum,尤其如何利用好每日站立例会、评审会议、回顾会议,是影响敏捷开发效果的关键因素。在Scrum方法的实际运用中,会遇到或多或少的一些具体问题。笔者根据以往自身敏捷开发项目的经验,对这些问题作简要的分析,并给出有效的解决办法。

2.1每日站立例会

每日站立例会是Scrum主管和开发团队成员必须参加的会议。它是除了面对面沟通之外,开发团队成员的另一个有效的沟通交流方式。Scrum倡导的每日站立例会平均时间不超过巧分钟,开发团队的每个成员需要向Scrum主管回答三个问题:今天完成了哪些工作?明天打算做什么?完成目标是否存在什么障碍?

每日站立例会需要Scrum主管的有效组织。每日站立例会最常见的问题是,团队成员之间陷入了具体技术问题的讨论中,导致会议时间严重拖长,影响了会议的效率。还有一种情况是,一个成员汇报所遇到的障碍的时候,其他成员没有认真聆听,对一些共有的障碍或者有依赖性的问题没有引起足够的重视,导致大家都卡在同样的问题里,影响了开发的进度。

为使每日站立例会更加有效率,开发团队的每个成员需要控制好自己的发言时间,一般在3分钟左右。发言突出要点,简明扼要,不要详细论述具体技术问题。一旦发现团队成员开始讨论具体技术问题,Scrum主管应及时给与提醒,这样可以有效地控制会议时间。为了使每个成员都清楚目前项目的状况,尤其对可能影响完成目标的障碍有所了解,Scrum主管在每次例会结束之前把记录下来的障碍向开发团队总结一遍,让大家心中有数,确保第二天的开发工作不受广泛影响。这样做也有助于Scrum主管在接下来的工作中有效地为团队去除这些障碍。

2.2评审会议

在每一个冲刺的尾声需要进行一次评审会议,产品负责人、Scrum主管、开发团队必须参加评审会议。评审会议的目的是让开发团队向产品负责人展示在该冲刺完成的功能,回答与会人员对展示的疑问并记录所期望的修改。评审会议进程一般不超过4个小时,开发团队准备的评审展示内容一般不超过1个小时。评审会议包含阶段性验收的意味,如何才能在有限的展示时间内,得到产品负责人的积极认可和有效反馈,是在会议准备阶段和会议进行过程中必须注意的问题。

在会议准备阶段,开发团队应该按照本次冲刺的冲刺订单,组织产品功能的展示点,形成清晰简要的PPT文档。在会议现场最好能进行在线实际的功能展示,所以会议前开发团队要准备好工作站和设备等。同时开发团队还需要把能展现产品功能效果的图、表、日志等数据提前保存下来,以防突发情况导致现场展示失败时无内容可展示。在会议开始时,Scrum主管和开发团队需要确保所有人员对产品和该冲刺的目标有所了解,如果有人对此不清楚,则先用几分钟进行描述。然后,开发团队按照准备好的PPT文档,逐个介绍这次冲刺实现的结果,并且展示其功能效果。在展示的过程中,开发团队应该把重点放在“我们做了什么”,而不是“我们怎么做的”。这样可以让产品负责人对产品目前的功能状况有直观的了解,而不是陷入到技术细节之中。如果产品负责人想改变某些功能,Scrum主管把这个需求添加到产品订单中,留待以后的冲刺解决。

2.3回顾会议

回顾会议是在每个冲刺结束之后进行的,通常在评审会议后进行,它通过总结本次冲刺的实践经验,为团队指出日后改进的方面,避免团队重犯相同的错误。Scrum主管、开发团队必须参加回顾会议。回顾会议是Scrum方法中很重要的会议,利用好回顾会议,可以有效地提高团队的生产力。回顾会议需要鼓励团队成员积极参与,集思广益,否则,这个会议就会流于形式,达不到预期的效果。

在实际应用中,回顾会议的形式可以采取头脑风暴法模式。会议开始时,Scrum主管先给团队成员总结上次冲刺的回顾会议确定的改进内容的执行结果。然后,Scrum主管给每个成员发一张即时贴便签,让他们自己思考,回顾本次冲刺中团队做得好和做得不好且需要改进的地方,各选三点意见写在便签上,然后把便签贴在白板上。等所有成员都把写好的便签贴在白板上后,Scrum主管和团队成员一起逐条讨论便签上的意见,充分理解团队成员的想法。讨论过程中,Scrum主管对相似的意见进行合并,对有依赖相关性的问题进行梳理。回顾会议结束后,Scrum主管就可以得到本次冲刺做得好的地方和需要改进的内容。那些需要改进的内容供下次冲刺的回顾会议进行效果跟踪。

3.小结

Scrum方法是敏捷开发的一个框架,它并没有规定具体的实践方法。Scrum提倡灵活,遵循敏捷开发以人为本的原则,这需要软件项目管理人员根据企业文化、管理模式、开发团队的经验等因素,选择合适的方案。

软件开发模式之敏捷开发(scrum)

简介这几年关于敏捷开发在互联网企业中越来越广泛被使用到,运用的比较多的当属scrum敏捷开发和xp敏捷开发,人人都在谈论敏捷开发。那什么才是敏捷开发呢?目录什么是敏捷开发?传统的开发模式和敏捷开发模式的对比?... 查看详情

敏捷开发之scrum扫盲篇

敏捷开发之Scrum扫盲篇现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中的各... 查看详情

敏捷开发之scrum扫盲篇(转)

...:http://www.cnblogs.com/taven/archive/2010/10/17/1853386.html 现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,... 查看详情

《构建之法—现代软件工程》读书笔记之——敏捷开发

敏捷开发是一系列价值观和方法论的集合。在敏捷的大旗下,我们可以看到好几种软件开发的方法论,我们在这里主要分析Scrum这个方法论。从Scrum方法论中分析,敏捷开发一共分四步:第一步:找出完成产品需要做的事情——Pr... 查看详情

敏捷开发之scrum(转)

现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中的各个环节,主要目的有两... 查看详情

[scrum敏捷开发之]sprint开发过程详解

...浪费的目标在此也绝对适用。然而,Scrum与众不同且保持敏捷的一个关键方面是,产品负责人在团队中,他们可以增量地接受工作。另外,SprintBacklog对所有人完全透明地显示了团队在Sprint结束前必须完成的工作,开发团队可以根... 查看详情

敏捷开发之scrum扫盲篇

现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中的各个环节,主要目的有两... 查看详情

转:敏捷开发之scrum扫盲篇

现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中的各个环节,主要目的有两... 查看详情

敏捷测试--之scrum--原理

Scrum是一个用于开发和维持复杂产品的框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是2到4周(互联网产品研发可以使用1... 查看详情

敏捷:scrum常见概念一览(代码片段)

常见的敏捷方法有:Scrum、极限编程(XP)、特征驱动开发(Feature-DrivenDevelopment,FDD)、动态系统开发方法(DynamicSystemDevelopmentMethods,DSDM)、水晶家族方法(Crystalfamilymethods,透明水晶、×××水晶、橙色水晶、红色水晶)、精益... 查看详情

敏捷开发之scrum扫盲篇

...r)、流程管理员(ScrumMaster)、开发团队(ScrumTeam)现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,... 查看详情

看板方法与scrum的比较:选择最佳敏捷项目管理框架[译]

参考技术A“我们在使用敏捷方法。”在与软件开发团队交谈时,您经常会听到这样的声明。确实如此,根据统计2018年全球大约90%开发人员在使用敏捷方法。但是,敏捷并不统一的方法。作为组织开发流程的通用方法,敏捷软... 查看详情

构建之法(第六章敏捷流程)

第六章主要讲了  1.1敏捷流程及其原则,Backlog,Burn-down,Sprint,Scrum方法论  1.2什么时候选择敏捷的开发方法,什么时候选择其他方法。 1.敏捷的流程:“敏捷流程”是一系列价值观和方法的集合。  1.1敏捷... 查看详情

编程心法之scrum-agile敏捷开发(代码片段)

Scrum是一种敏捷开发的方法先定一个能达到的小目标Scrum团队包括产品负责人、开发团队和ScrumMasterProductOwner产品负责人:管理代办事项和优先级的唯一负责人。相关术语Sprint敏捷开发的周期,一般情况下需要2-6周时间,最终应该... 查看详情

scrum方法

 Scrum的由来—由瀑布等传统开发模型的弊端提出敏捷开发方法 瀑布模型是由Royce在1970年提出的,他把大型软件的开发分为分析与编程.瀑布模型的弊端:   1).强调文档性:导致了往往要到开发的后期,才能看到软件的模样.为软件的... 查看详情

敏捷开发scrumvskanban,如何选择?

 两大方法虽然敏捷诞生只有20年的时间,但却帮助了很多企业取得了成功,在这期间也出现了各种敏捷方法论和思想体系,这篇文章,我们试图去讨论一个问题:对于准备实施敏捷的团队,在Scrum和Kanban两种方法之间如何选... 查看详情

scrum学习

...该流程,你就能看到你团队高效的工作。 scrum是学习敏捷开发的一种具体的方式,我们说敏捷开发要理解,它 查看详情

敏捷开发

scrum:  SCRUM是一个用于开发和维护复杂产品的框架XP极限编程: ,是一种软件工程方法学,是敏捷软件开发中应用最为广泛和最富有成效的几种方法学之一。 查看详情