敏捷开发实践之Scrum方法运用

摘要:目前软件开发除了强调产品质量,同时对产品能够快速发布并且迅速适应市场变化的要求也日益强烈。为适应这种开发环境和市场需求,传统的软件开发模式已被敏捷开发模式所替代。本文介绍敏捷软件开发中的Scrum方法,并结合实际问题,分析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提倡灵活,遵循敏捷开发以人为本的原则,这需要软件项目管理人员根据企业文化、管理模式、开发团队的经验等因素,选择合适的方案。下面给大家推荐一款备受好评的敏捷开发软件 CORNERSTONE 提供了包括任务/需求/测试管理、迭代规划、缺陷追踪、报表统计、团队协作、WIKI、共享文件和日历等功能模块,20人以下团队可免费使用。

原文地址:https://blog.51cto.com/14511852/2467508

时间: 2024-10-07 05:56:11

敏捷开发实践之Scrum方法运用的相关文章

一步步学敏捷开发:1. Scrum概述

Scrum概述 Scrum概述无非就是敏捷宣言.敏捷原则.Scrum框架和价值观.在之前先看段比较专业的Scrum介绍. Scrum是跨职能团队以迭代.增量的方式开发产品或项目的一种开发框架.它把开发组织成被称为Sprint的工作周期.这些迭代每个都不超过4周(最常见的是两周),并且无间歇地相继进行.Sprint是受时间箱限制的,无论工作完成与否它们都会在特定日期结束,并且从不延长.通常由Scrum团队来选定一个Sprint的时长,并且对于他们所有的Sprint都使用这一时长,直到这个团队能力提

[敏捷开发实践](1) 认识敏捷开发

[敏捷开发实践](1) 认识敏捷开发 1,提要 软件开发是一个系统工程,包括最初的可行性分析.再到设计.开发.测试.维护等整个生命周期.在这个过程中某些阶段的失误或说是变化,都可能增加整个软件项目的风险. 如何在保证效率的基础上还能安计划.保证质量的完成软件项目?于是产生了软件开发的一些方法,这个方法不是指具体有编码阶段的各种设计模式和技巧,而是在整个软件开发策略层面的方法. 传统瀑布模式和新型的敏捷开发就是其中最常用的方法,后面着重讨论敏捷开发的优缺点和敏捷开发的基础知识. 2,常用的开发模式

敏捷开发实践(一)--谈谈我对敏捷开发的理解

随着敏捷开发越来越流行,人人都在谈敏捷,人人也都在学习scrum等敏捷开发方法...当然,自己也是敏捷开发的实施者和受益者. 背景 我们公司引入敏捷开发的时间并不长,在实施敏捷的过程还存在一些问题,自己在实施敏捷的过程也存在很多的疑惑(毕竟原来没有学过,和真实的经历,体会),所以最近一直在学习敏捷,看敏捷的视频和阅读相关资料,同时结合自己实施敏捷的经验,通过分享博文进行一下简单的总结,目的有四: 1. 详细的介绍和学习一下敏捷开发 2. 和CSDN的大牛们一起分享交流,学习,提高一下 3. 总结

敏捷开发实践总结?EUMs

为了更好的阅读体验,欢迎访问 作者博客原文 项目回顾 项目背景 EUMs(End User Monitor System)是一个在线的物资跟踪监控系统.由ThoughtWorks团队为Unicef(United Nations International Children's Emergency Fund,联合国儿童基金会,客户)提供的一套完善的软件交付服务. 该系统为资助物资的跟踪与监控提供了完整的网络解决方案.整个流程涵盖了Unicef对物资来源的管控.库存管理.物资下发与跟踪.Unicef

TFS 2015 敏捷开发实践 – 看板的使用

看板在现代应用开发过程中使用非常广泛,不管是使用传统的瀑布式开发还是敏捷开发,都可以使用看板管理.因为看板拥有简单的管理方法,直观的显示方式,所以很多软件开发团队选择使用看板进行软件开发管理.本文不在对看板管理理论进行过多的赘述了,只是在这里介绍一下如何使用TFS的看板功能.最新版本的TFS提供了功能强大的电子看板(最新发布的TFS 2015 Update 2.1中,也包含了对看板功能的提升),并且能对看板的显示进行大量定制,而且还加入了泳道的功能.开发团队可以根据自己的需求来定制属于自己团队的

《HP大规模敏捷开发实践》读书笔记

读这本书的心得,敏捷是实践出来的,哪怕不懂srcum**等方法,只要坚持心中的价值观,朝一个方向改进,哪怕不能"任何时候都拥有符合发布要求的代码",今天比昨天好,也是成功. 通过业务分析确定开发目标 为什么要做敏捷,一定是存在问题. 可以从业务状况(成本和时间资源)和战略目标(价值主张)两方面进行业务现状自查 不是核心的价值主张却耗费最大的作业成本的业务就是改进的目标 架构的重要性 好的架构会适应变化和易于维护,能大幅提升开发维护效率 架构守护者对架构的演进和维护负责 从持续集成和质量

读《大规模敏捷开发实践》

初识敏捷开发是在2006年,那时愉快的增加了毕业后第二家公司.一家打算在中国开展外包业务的美国公司. 其业务形式就是让在美国的总部接当地的IT单子,然后拿到中国来做. 中国分支的名字也非常高大上,Global Development Center,事实上当时在全球就这么一个分支机构.不知当初的美国老板怎么选上杭州,而不是上海的. 我那时对软件开发的流程认识基本停留在软件project课本里描写叙述的所谓瀑布式开发.在项目開始前拼命的收集需求.依据可怜的尚不明白的信息进行分析,争取设计出一套合理的

一步步学敏捷开发:5. Scrum的4种会议

在Scrum会议中包括:计划会议.每日站会.评审会议和回顾会议. 1.Sprint计划会(Sprint Planning) 在Scrum中,Sprint计划会议有两部分:1. 决定需要完成哪些工作?2. 决定这些工作如何完成? 第一部分:需要完成哪些工作?参会人员:Team.Scrum Master.Product Owner第一部分的会议,产品负责人向开发团队介绍排好序的产品待办事项,由整个Scrum团队共同理解这些工作.Sprint中需要完成的产品待办事项数目完全由开发团队决定.做多少工作只

【原创】基于禅道的敏捷开发管理实践

以下是我在一个长期项目研发过程中采用敏捷思想进行项目开发管理的成功实践,供大家参考 一.项目背景     1.这是一个长期维护,需要不断扩展功能的O2O平台,系统本身包含多达13个子系统,且还在不断增加中 2.系统采用了"组件化架构",各个组件之间实现了脱藕,可以各自单独扩展 3.开发资源严重匮乏,程序员严重不足,且其中能独立工作的程序员比例很低 二.敏捷开发实践 1.每一次版本迭代都包括:需求->设计->编码->测试->交付这四个阶段 2.用禅道对开发全过程进