欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Scrum敏捷软件开发过程.docx

    • 资源ID:15262954       资源大小:875.21KB        全文页数:46页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Scrum敏捷软件开发过程.docx

    1、Scrum敏捷软件开发过程Scrum敏捷软件开发过程 什么是敏捷软件开发? 敏捷方法的项目计划 敏捷项目管理和传统项目管理 为什么使用敏捷? Scrum概述 Scrum的角色 Scrum实践和工作产品 敏捷开发中的估计方法 测试驱动开发 Scrum应用 支持工具和模版 一些常见的误解敏捷开发方法什么是敏捷软件开发? 敏捷软件开发是软件项目的一个概念框架. 有许多建立在敏捷概念上的方法,如Scrum和ExtremeProgramming(XP). 与僵化的、重量级的、官僚式的方法形成对照,比如瀑布模型(指纯粹形式的) 最大限度地降低短期固定时间的迭代式软件的开发风险.敏捷宣言(2001年) 人和

    2、交互胜过过程和工具. Individualsandinteractionsoverprocessesandtools 可以工作的软件胜过完备的文档. Workingsoftwareovercomprehensivedocuments 客户协作胜过合同谈判. Customercollaborationovercontractnegotiation 随时应对变化胜过遵循计划. Respondingtochangeoverfollowingaplan敏捷过程的限制 敏捷软件开发过程包含过程、原则、工具,和最重要的-人 因此:诚信是基础 没有过程能够对诚信进行有效地约束,诚信与否是有效实施敏捷过程的最

    3、大限制1使用敏捷方法的项目计划 “Sprintful”oftop-priorityPBLtothenextSprintSprintBacklogMoreaccurateestimatesasmanhours8Shorttermplanning(commitmentbyMaybe521385832Longtermplanning(bestguessatthemoment):InitialSizeEstimatesAsStoryPoints32SPoffunctionality,TeamVelocity8SP/Sprint 4SprintsTargetSprintforeachPBLitemset

    4、,feasibleimplementationOrder.敏捷项目管理和传统项目管理 传统项目管理: 事先对整个项目进行估计、计划、分析 反对变更;变更需要重新估计、重新规划 严密的合同来减少风险,如果改变需求要走CR流程. 项目作为一个“黑盒子”,对客户与供应商的可视性差. 产品化和测试阶段是分离的. 文档和计划驱动的方法. 软件交付时间晚,意识到风险的时间晚. 敏捷项目管理: 对整个项目做一个粗略的估计,每一次迭代都有详细的计划. 鼓励变化,客户价值驱动开发. 信任和赋予权力;合约使变更变得简单,增加价值. 客户和开发人员之间是紧密的连续的合作关系 每次迭代都产生可交付的软件 专注于交付软

    5、件. 第一次迭代就可交付能工作的版本,风险发现的早.为什么采用敏捷?预期的收益 采用敏捷方法得当的话,可以: 更加透明;随时跟踪项目的状态和进展情况,及早发现问题和风险. 快速交付,每次迭代都能交付可运行的软件. 最高风险和最高优先级的需求,最优先进行开发. 改善应对变更能力,减少大量的重计划. 改善项目沟通. 更好的客户参与,避免错误的假设. 总之: 提高了生产率;减少“浪费”(不需要的文档,重复工作等),项目的每次迭代都有明2确的目标. 提高客户满意度;短期内产生成效,按预期交付软件,每次迭代结束产生可以运行的软件. 改善员工的满意度;团队精神,减少官僚,能够规划和管理自己的工作,减少“恐

    6、慌”,稳定的工作量(可持续的步伐).敏捷方法何时有效? 公司和客户一致认为应当使用敏捷方法,双方都能理解敏捷方法. 敏捷方法对需求不完整以及经常变换的项目比较有效. 项目可以划分成固定时间间隔的迭代,并且可以冻结正在进行的迭代的范围 公司和客户都有能力担当角色尤其是ProductOwner和ScrumMaster. 项目的人员结构能够分成6到10人的团队,最好每个工作地点一个小组. 团队成员能够以自组织的方式工作. 项目的合同允许变更. 固定价格的项目可以使用敏捷,但应当尽量避免。 最好在按时间和材料付费或者按月付费的项目中进行使用 变更项目的范围不需要高级管理层的批准.Scrum概述Scru

    7、m概述(1/3) Scrum是管理软件项目的一个轻量级的敏捷方法,名字来源于橄榄球运动中的scrum过程 简单,但高度的纪律性 依赖迭代和增量的敏捷方法. Scrum是一种工作管理的方法,不仅仅限于软件开发,可以用来管理其它活动. Scrum不包含技术方法或实践.Scrum概述(2/3)项目的阶段 项目分成增量的迭代过程,在Scrum中称为迭代任务清单,通常持续2-4周的时间. Sprint的时间是限定好的;不能从外部改变正在进行中的sprint持续时间和范围. 每个sprint都可以产生可交付的迭代,即测试过并具备文档的的功能点 原则上,当产品开发到一定程度时,如实现了足够的客户价值,项目可

    8、以在任何一个sprint后结束. 如同任何项目,敏捷的项目有三个主要阶段: 产品定义(规划);运行Sprints所需要的准备、规划、技术分析. 执行Sprints(执行):在增量时间段内实现需求(产品需求清单). 结束:准备最终发布,结束项目Scrum概述(3/3)3DailyScrummeetings:Whatdidyoudoyesterday你昨天做了什么Whatwillyoudotoday?你今天会做什么Whatobstaclesareinyourway?有什么障碍在你的方式DailySprintPlanningMeeting:NextSprintGoal下一个Sprint目标Shipp

    9、ableProductIncrement可交付的产品增量SprintRetrospectiveSprint回顾SprintBacklogUpdatedProductBacklog更新ProductBacklogScrum的流程1、将整个产品Backlog分解成SprintBacklog,按照目前的人力物力条件可以完成的。2、召开Sprint计划会议,划分、确定这个Sprint内需要完成的任务,标注任务的优先级并分配给每个成员。注意这里的任务是以小时计算的,并不是按人天计算,长度不超过8小时。3、进入Sprint开发周期,每个Sprint迭代周期为连续30个日例日(2-4周)。在这个周期内,每天

    10、需要召开每日Scrum 简会,时间为15 分钟。在会议中每个团队成员仅就以下三点发言:自上次Scrum会议后你做了什么?从现在到下次Scrum会议的时间里你准备做什么?你在工作中遇到了哪些困难?4、整个Sprint 周期结束,召开Sprint 评审会议(Sprintreviewmeeting),将成果演示给ProductOwner,该会议限定时间为4小时。5、团队成员最后召开冲刺回顾会议(Sprintretrospectivemeeting),总结问题和经验,该会议限定时间为3小时。6、这样周而复始,按照同样的步骤进行下一次Sprint。Scrum角色、实践和工作产品Scrum中的三种角色 P

    11、roductOwner-产品所有者 个人:代表所有的干系人 ScrumMaster: 个人:负责指导过程的执行 ScrumTeamScrum团队: 承诺完成工作,向干系人交付产品价值Scrum角色Scrum团队4 Scrum团队是Scrum的中心角色,产品交付要依靠团队. Scrum团队自我组织、自我管理 Scrum团队是职能交叉的,包含产品交付的所有角色:开发人员、测试人员、buildmanagers,文档编写,界面设计人员. Scrum团队中的角色是不分等级的;不应当出现“我是开发人员我不作测试”. 团队按照最有利于项目的原则来分担责任(如组件的所有权等). 敏捷是建立在信任和授权的基础上

    12、,因此团队是自发组织的,组员选择自己的任务,而不是别人强制加以分配的. 另一方面,Scrum团队有交付的责任,他们需要能够自我激励和对工作目标进行承诺. 团队最佳规模:6-10人 主要职责 参与迭代任务清单的创建 执行为干系人创造价值的工作 根据团队的承诺完成所需的各项任务 将工作中的各项障碍迅速与ScrumMaster进行沟通 全面参与所有的各项会议 更新任务状态 自发选择任务 标识任务的完成 标识发现的新的任务 与其它团队共同进行工作Scrum角色ScrumMaster ScrumMaster不是一个管理者,而是一个教练和推动者-Scrum团队是一种自发的组织,是自我管理的. ScrumM

    13、aster的角色通常由项目组的成员担当,组长或者项目经理。ScrumMaster应当是项目中的成员. 主要职责: 评价过程的健康状况 加强过程 消除障碍 促进过程改进 支持团队开发 ScrumMaster的主要工作是做决策、消除障碍,保证团队能顺利交付产品 ScrumMaster还有如下责任 与其它角色配合. 训练团队,提高生产率. 培训产品所有者和干系人,确保Scrum流程的执行 确保一切工作按照既定的规范来运行. 规划并进行必要的改进. 推动会议的召开. 维护障碍列表 维护Scrum过程改进列表 优秀的ScrumMaster应当是专注的,、有决心的、有领导才能.Scrum角色Product

    14、Owner 产品所有者代表投资方的利益,确保交付的产品与期望的一致(提供更好的投资回报). ProductOwner决定产品具有哪些功能.5 ProductOwners的主要责任是创建和维护产品需求清单,即管理项目的范围. ProductOwner不断的把产品需求清单按优先级进行排序 ,使得最重要的功能能优先实现. 对于团队来说,只有一个需求集。所有的需求申请都归口到ProductOwner 管理商业价值(投资回报) ProductOwner还有如下责任: 计划项目的发布,什么时间、向什么人等. 对每次Sprint的结果进行评审和批准 参与Scrum会议 迭代计划会议 团队进展跟踪会议 迭代评

    15、审和回顾会议 能够随时回答团队工作中产生的各项和产品/业务相关的问题 ProductOwner的角色一般由客户担当,作为服务提供商的公司无法设定优先级.Scrum角色客户与管理层 客户和管理的角色是可选的,需要时才设立 客户: 是产品的最终用户 通过ProductOwner来设定对产品的期望 把当前的业务传达给项目. 管理层: 公司高级管理层,代表公司在项目中的利益. 通过ProductOwner来传达公司的利益和优先级(priorities)产品需求清单ProductBacklog概论 基本上,产品需求清单是为了实现产品的功能所需要的工作的列表,包括: 功能方面的需求;功能点. 非功能方面的

    16、需求,如性能改进. 要修改的Bug;上一版本的已知错误. 新技术,如支持新的操作系统或者平台. 问题;日后的不确定项,如新的功能. 产品需求清单是不断完善的. ProductOwner在项目进行过程中可以随时更新:增加、删除、修改功能,变更优先级等. 下一次迭代中要包含较高优先级的需求. 产品需求清单也可称为UserStories(用例),因为它们能够给产品的用户带来价值. 在一次迭代中要能够实现产品需求清单,如果不能全部实现要进行分解.构成 ProductOwner负责创建最初的产品需求清单,一开始是不完整的. 最初的清单应当包含足够的需求. 清单应当包含多少需求,取决于定价模型(black

    17、-box,更多的计划时间). 产品需求清单来源于: 客户;标书,需求规格说明等. Scrum团队的想法;增强型新功能等. 现有产品的迭代增量;已知错误,技术问题等.6 比较好的做法是ProductOwner、Scrum团队、客户/管理以及其它相关方(如相关的Scrum团队)举行一次或者多次研讨会 ScrumMaster或者ProductOwner来促成会议的召开,必须要有人来做. 要有效率、要围绕主题、沟通良好、避免不同的假设, 承诺并且共通合作,确定优先级.估计 Scrum团队对产品需求清单的每一项的规模提供初步的估计,通常采用事件点作为单位StoryPoints(模糊的). 也可采用人天或

    18、者人小时作为单位,但容易混淆:a)实际的规模b)时间的单位. 精确的估计值可以在Sprint规划时给出,当前阶段没有足够的信息. 规模的相对值才有意义. 这个估计值有助于确定优先级;优先级 优先级是产品需求清单中的主要问题. 优先级不但反映了客户的价值也反映了风险. 产品所有者-PO设定优先级. 清单中的每一项的优先级是唯一的,但可以对它们进行分类 优先级可以在项目的任何时候进行更改;如新的重要的功能可以直接给较高的优先级. 确定优先级考虑: 价值 风险 依赖关系示例ID,likeinanyrequirementsPriorityThesewilllikelyendupinthefirstSp

    19、rint版本发布计划 在Scrum中,不是每个Sprints都要发布一个版本. 迭代的结果主要是要实现功能的演示,不一定就是发布的版本. 版本发布计划决定了每次迭代应当包含产品需求清单的哪些功能. 根据现有的信息制定的项目总体的长期的计划. 根据产品需求清单和团队的进度来决定(实施的范围/迭代,e.g.inStoryPoints). Scrum团队参与版本发布计划的制定;架构、风险、依赖性决定了可行的实现顺序. 版本发布计划很大程度上依赖于客户的时间表和发布周期,即什么时候客户的产品需要包含我们的模块(交付物). 版本发布计划不是一成不变的;每个迭代结束后都可以更改.完成的定义7 当迭代任务清

    20、单上的任务都完成时,变为“已完成”状态 定义“已完成”的含义是非常重要的,例如: 如何记录软件的变化. 使用什么样的代码分析工具,发现的问题应当如何处理. 进行了什么样的测试,结果是如何记录的,通过标准(如覆盖率、修正的错误)是什么. 定义“已完成”意味着定义质量上的需求. “已完成”是0/1变量:完成或者未完成.所有的任务(task)都完成了迭代任务才算完成. 在第一个迭代开始之前应该定义好,因为它会影响工作量, 而且必须文档化,这样团队和产品所有者的理解是一致的. 完成的范围随着团队的成熟程度会逐渐发生变化计划分析架构性能指标试运行代码评审验收设计开发测试支持文档集成用户文档完成的定义-E

    21、xample 完成的定义 遵循编码规范 能在模拟器上演示 使用PCLint进行静态代码分析 具有EUnit测试套件的通过率和执行率. 或者使用结对编程,或者进行代码走查迭代任务清单SprintBacklog总论 迭代任务清单规划的主要目的是从产品任务清单中挑选高优先级的任务包含在下一次迭代中,即确定迭代的范围. 至于能够包含多少产品任务清单中的任务取决于Scum团队能够承诺完成多少. 承诺总是来自于内部,不能从外部强加. 迭代不应当有空闲时间,因此规划迭代范围时要保证工作量是稳定的(进度是持续的速度). 依赖多个因素;团队的能力,技术的成熟度,当前迭代增量的情况等. 迭代的范围在迭代任务清单中

    22、描述;团队设定优先级. 产品所有者PO定义每个迭代的任务说明(missionstatement),目标(sprintgoal),使迭代更具有针对性,如.“实现一个可扩展的列表控件,其项目是可以选择的”输入和输出8ProductTeamBusinessTechnologyCurrentProductOwnerCustomersManagementSprintPlanningMeetingSprintGoalSprintBacklog逻辑 迭代任务清单规划是“铁三角”法则的另一个例子 在Scrum,边界是一个变量,因为: 资源(Scrum团队)是确定的. 进度表(迭代的时间)是不能变的. 质量是无

    23、法协商的 团队在一个迭代内能完成的任务,可以用团队进度来衡量(StoryPoints/Sprint). 如果可能的话利用同一个团队上个迭代的进度,“yesterdaysweather”.30-daysprint 20workdays1dayforplanning,1forreview/retrospective=18workdays5personsinteam 90theoreticalmandays7.5-hourworkingday,average85%toprojectwork90*7.5*0.85=574manhours5%reservedforre-estimationandre-p

    24、lanning规划会议 召开迭代任务清单规划会议的目的是确定迭代的边界. 时间是限定的,最长时间是一个工作日(对持续4个星期的迭代,迭代持续的时间越短,用在规划上的时间也应该越少. 由ScrumMaster推动会议. 由于会议时间有限,ProductOwner和Scrum团队都应该事前进行准备. 前提:产品需求清单是有效的(valid);最新的,标注了优先级并且表述清楚. 规划会议要解决两个问题: 下次迭代要做什么. 确定迭代的目标,包含产品需求清单上高优先级的功能. 给Bug修改留一定的余地 怎么样实现下次增量所需要的功能. 改进设计以实现产品需求清单上的功能.9工作流程 产品所有者向团队介

    25、绍起草的产品需求清单和迭代目标. 产品所有者传达迭代的起止日期. Scrum团队从产品需求清单中选取高优先级的功能作为迭代的任务,如果有必要,更新其规模估计. Scrum团队改进架构和设计以便能够实现提出的产品需求. Scrum团队把产品需求清单的每一项划分成小的任务,并估算每个任务要花费的小时数. “扑克规划”方法是估算工作量的有效方法. Scrum团队决定一个迭代中能够实现产品需求清单的多少功能 产品所有者和Scrum团队明确了各自要承担的义务.SprintBacklog示例PersonsworkingonEffortSprintestimateMeetsthedefinitionofDe

    26、scriptionofthetaskTaskblockedbyan执行迭代任务清单 执行迭代任务清单意味着团队在迭代期间自行开发. 团队清楚要达到什么的目标以及怎样达到目标. 每人每一时间只有一个任务 团队是自发组织的;成员自己挑选任务,ScrumMaster提供指导并清除障碍. 不能从外部改变迭代的范围或者迭代的周期. 为了达到迭代的目标,团队可以增加、删除任务或者改变其优先次序. 如果要重新设定迭代的范围时需要产品所有者的配合. 迭代周期短,意味着工期紧; 应该把重点放在剩余的工作和风险的消除,要区分任务的优先级,重要的事情应当先做. 迭代应当达到项目的质量要求(definitionof“

    27、done”);没有独立的测试阶段.迭代进度图-BurndownChart Scrum注重成果,它关心的是要花多少时间达到目标,而不是已经花费的时间;.10 团队能否在既定的时间达到迭代的目标,可以查看要完成产品需求清单的功能所剩余的工作 Remainingwork=EstimatetoComplete(ETC). 描述剩余工作量和时间关系的图表称为SprintBurndown图,是Scrum中非常重要的控制方法(controlmeasure). 给Scrum团队和产品所有者提供直观的信息. 术语burndown表明Scrum团队在迭代过程中消耗剩余工作的能力;迭代结束时其值为0. 每个任务(task)的工作量由Scrum团队来估计. 每天都要进行估计,以便进行跟踪. 可以使用电子表格或者专门的工具(如ScrumWorks)Remainingworkincreasing Tasksunderestimatedand/orworkremainingInitialestimate(752h)Inthebe


    注意事项

    本文(Scrum敏捷软件开发过程.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开