Scrum敏捷软件开发过程精要.docx
文本预览下载声明
Scrum敏捷软件开发过程目录什么是敏捷软件开发?敏捷方法的项目计划敏捷项目管理和传统项目管理为什么使用敏捷?Scrum概述Scrum的角色Scrum实践和工作产品敏捷开发中的估计方法测试驱动开发Scrum应用支持工具和模版一些常见的误解敏捷开发方法什么是敏捷软件开发?敏捷软件开发是软件项目的一个概念框架.有许多建立在敏捷概念上的方法,如 Scrum 和Extreme Programming (XP).与僵化的、重量级的、官僚式的方法形成对照,比如瀑布模型(指纯粹形式的)最大限度地降低短期固定时间的迭代式软件的开发风险.敏捷宣言(2001年)人和交互胜过过程和工具. Individuals and interactions over processes and tools可以工作的软件胜过完备的文档.Working software over comprehensive documents客户协作胜过合同谈判.Customer collaboration over contract negotiation随时应对变化胜过遵循计划.Responding to change over following a plan敏捷过程的限制敏捷软件开发过程包含过程、原则、工具,和最重要的-人因此:诚信是基础没有过程能够对诚信进行有效地约束,诚信与否是有效实施敏捷过程的最大限制使用敏捷方法的项目计划敏捷项目管理和传统项目管理传统项目管理:事先对整个项目进行估计、计划、分析反对变更; 变更需要重新估计、重新规划严密的合同来减少风险, 如果改变需求要走CR流程.项目作为一个“黑盒子”,对客户与供应商的可视性差.产品化和测试阶段是分离的.文档和计划驱动的方法.软件交付时间晚, 意识到风险的时间晚.敏捷项目管理:对整个项目做一个粗略的估计,每一次迭代都有详细的计划.鼓励变化, 客户价值驱动开发.信任和赋予权力;合约使变更变得简单,增加价值.客户和开发人员之间是紧密的连续的合作关系每次迭代都产生可交付的软件专注于交付软件.第一次迭代就可交付能工作的版本,风险发现的早. 为什么采用敏捷? –预期的收益采用敏捷方法得当的话,可以:更加透明; 随时跟踪项目的状态和进展情况,及早发现问题和风险.快速交付, 每次迭代都能交付可运行的软件.最高风险和最高优先级的需求,最优先进行开发. 改善应对变更能力, 减少大量的重计划.改善项目沟通.更好的客户参与, 避免错误的假设.总之:提高了生产率; 减少“浪费”(不需要的文档,重复工作等),项目的每次迭代都有明确的目标.提高客户满意度; 短期内产生成效, 按预期交付软件, 每次迭代结束产生可以运行的软件.改善员工的满意度; 团队精神,减少官僚,能够规划和管理自己的工作,减少“恐慌”,稳定的工作量(可持续的步伐). 敏捷方法何时有效?公司和客户一致认为应当使用敏捷方法,双方都能理解敏捷方法.敏捷方法对需求不完整以及经常变换的项目比较有效.项目可以划分成固定时间间隔的迭代, 并且可以冻结正在进行的迭代的范围公司和客户都有能力担当角色尤其是Product Owner 和Scrum Master.项目的人员结构能够分成6到10人的团队,最好每个工作地点一个小组.团队成员能够以自组织的方式工作. 项目的合同允许变更.固定价格的项目可以使用敏捷,但应当尽量避免。最好在按时间和材料付费或者按月付费的项目中进行使用变更项目的范围不需要高级管理层的批准.Scrum 概述Scrum 概述(1/3)Scrum是管理软件项目的一个轻量级的敏捷方法, 名字来源于橄榄球运动中的scrum 过程简单,但高度的纪律性依赖迭代和增量的敏捷方法.Scrum 是一种工作管理的方法,不仅仅限于软件开发,可以用来管理其它活动.Scrum 不包含技术方法或实践.Scrum 概述(2/3) – 项目的阶段项目分成增量的迭代过程,在Scrum中称为迭代任务清单, 通常持续2-4周的时间.Sprint 的时间是限定好的; 不能从外部改变正在进行中的sprint持续时间和范围.每个sprint都可以产生可交付的迭代, 即测试过并具备文档的的功能点原则上, 当产品开发到一定程度时,如实现了足够的客户价值,项目可以在任何一个sprint后结束.如同任何项目,敏捷的项目有三个主要阶段:产品定义(规划); 运行Sprints所需要的准备、规划、技术分析.执行Sprints (执行): 在增量时间段内实现需求(产品需求清单).结束: 准备最终发布,结束项目Scrum 概述(3/3)Scrum 的流程1、将整个产品Backlog 分解成Sprint Backlog ,按照目前的人力物力条件可以完成的。2、召开Sprint 计划会议,划分、确定这个Sprint 内需要完成的任务,标注任务
显示全部