英文外贸网站设计,科技数码app排名,泰安房产信息网官网,安卓网站建站系统敏捷开发之Scrum扫盲篇
现在敏捷开发是越来越火了#xff0c;人人都在谈敏捷#xff0c;人人都在学习Scrum和XP... 为了不落后他人#xff0c;于是我也开始学习Scrum#xff0c;今天主要是对我最近阅读的相关资料#xff0c;根据自己的理解#xff0c;用自己的话来讲述S…敏捷开发之Scrum扫盲篇
现在敏捷开发是越来越火了人人都在谈敏捷人人都在学习Scrum和XP... 为了不落后他人于是我也开始学习Scrum今天主要是对我最近阅读的相关资料根据自己的理解用自己的话来讲述Scrum中的各个环节主要目的有两个一个是进行知识的总结另外一个是觉得网上很多学习资料的讲述方式让初学者不太容易理解所以我决定写一篇扫盲性的博文同时试着也与园内的朋友一起分享交流一下希望对初学者有帮助。 什么是敏捷开发
敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。
怎么理解呢首先我们要理解它不是一门技术它是一种开发方法也就是一种软件开发的流程它会指导我们用规定的环节去一步一步完成项目的开发而这种开发方式的主要驱动核心是人它采用的是迭代式开发 为什么说是以人为核心
我们大部分人都学过瀑布开发模型它是以文档为驱动的为什么呢因为在瀑布的整个开发过程中要写大量的文档把需求文档写出来后开发人员都是根据文档进行开发的一切以文档为依据而敏捷开发它只写有必要的文档或尽量少写文档敏捷开发注重的是人与人之间面对面的交流所以它强调以人为核心。 什么是迭代
迭代是指把一个复杂且开发周期很长的开发任务分解为很多小周期可完成的任务这样的一个周期就是一次迭代的过程同时每一次迭代都可以生产或开发出一个可以交付的软件产品。 关于Scrum和XP
前面说了敏捷它是一种指导思想或开发方式但是它没有明确告诉我们到底采用什么样的流程进行开发而Scrum和XP就是敏捷开发的具体方式了你可以采用Scrum方式也可以采用XP方式Scrum和XP的区别是Scrum偏重于过程XP则偏重于实践但是实际中两者是结合一起应用的这里我主要讲Scrum。 什么是Scrum
Scrum的英文意思是橄榄球运动的一个专业术语表示“争球”的动作把一个开发流程的名字取名为Scrum我想你一定能想象出你的开发团队在开发一个项目时大家像打橄榄球一样迅速、富有战斗激情、人人你争我抢地完成它你一定会感到非常兴奋的。
而Scrum就是这样的一个开发流程运用该流程你就能看到你团队高效的工作。 【Scrum开发流程中的三大角色】
产品负责人Product Owner
主要负责确定产品的功能和达到要求的标准指定软件的发布日期和交付的内容同时有权力接受或拒绝开发团队的工作成果。
流程管理员Scrum Master
主要负责整个Scrum流程在项目中的顺利实施和进行以及清除挡在客户和开发工作之间的沟通障碍使得客户可以直接驱动开发。
开发团队Scrum Team
主要负责软件产品在Scrum规定流程下进行开发工作人数控制在5~10人左右每个成员可能负责不同的技术方面但要求每成员必须要有很强的自我管理能力同时具有一定的表达能力成员可以采用任何工作方式只要能达到Sprint的目标。 Scrum流程图 //------------------------
下面我们开始讲具体实施流程但是在讲之前我还要对一个英文单词进行讲解。
什么是Sprint
Sprint是短距离赛跑的意思这里面指的是一次迭代而一次迭代的周期是1个月时间即4个星期也就是我们要把一次迭代的开发内容以最快的速度完成它这个过程我们称它为Sprint。 如何进行Scrum开发
1、我们首先需要确定一个Product Backlog按优先顺序排列的一个产品需求列表这个是由Product Owner 负责的
2、Scrum Team根据Product Backlog列表做工作量的预估和安排
3、有了Product Backlog列表我们需要通过 Sprint Planning MeetingSprint计划会议 来从中挑选出一个Story作为本次迭代完成的目标这个目标的时间周期是1~4个星期然后把这个Story进行细化形成一个Sprint Backlog
4、Sprint Backlog是由Scrum Team去完成的每个成员根据Sprint Backlog再细化成更小的任务细到每个任务的工作量在2天内能完成
5、在Scrum Team完成计划会议上选出的Sprint Backlog过程中需要进行 Daily Scrum Meeting每日站立会议每次会议控制在15分钟左右每个人都必须发言并且要向所有成员当面汇报你昨天完成了什么并且向所有成员承诺你今天要完成什么同时遇到不能解决的问题也可以提出每个人回答完成后要走到黑板前更新自己的 Sprint burn downSprint燃尽图
6、做到每日集成也就是每天都要有一个可以成功编译、并且可以演示的版本很多人可能还没有用过自动化的每日集成其实TFS就有这个功能它可以支持每次有成员进行签入操作的时候在服务器上自动获取最新版本然后在服务器中编译如果通过则马上再执行单元测试代码如果也全部通过则将该版本发布这时一次正式的签入操作才保存到TFS中中间有任何失败都会用邮件通知项目管理人员
7、当一个Story完成也就是Sprint Backlog被完成也就表示一次Sprint完成这时我们要进行 Srpint Review Meeting演示会议也称为评审会议产品负责人和客户都要参加最好本公司老板也参加每一个Scrum Team的成员都要向他们演示自己完成的软件产品这个会议非常重要一定不能取消
8、最后就是 Sprint Retrospective Meeting回顾会议也称为总结会议以轮流发言方式进行每个人都要发言总结并讨论改进的地方放入下一轮Sprint的产品需求中 下面是运用Scrum开发流程中的一些场景图
上图是一个 Product Backlog 的示例。 上图就是每日的站立会议了参会人员可以随意姿势站立任务看板要保证让每个人看到当每个人发言完后要走到任务版前更新自己的燃尽图。 任务看版包含 未完成、正在做、已完成 的工作状态假设你今天把一个未完成的工作已经完成那么你要把小卡片从未完成区域贴到已完成区域。 每个人的工作进度和完成情况都是公开的如果有一个人的工作任务在某一个位置放了好几天大家都能发现他的工作进度出现了什么问题成员人数最好是5~7个这样每人可以使用一种专用颜色的标签纸一眼就可以从任务版看出谁的工作进度快谁的工作进度慢 上图可不是扑克牌它是计划纸牌它的作用是防止项目在开发过程中被某些人所领导。
怎么用的呢比如A程序员开发一个功能需要5个小时B程序员认为只需要半小时那他们各自取相应的牌藏在手中最后摊牌如果时间差距很大那么A和B就可以讨论A为什么要5个小时... 敏捷开发中XP与SCRUM的区别 区别之一 迭代长度的不同
XP的一个Sprint的迭代长度大致为1~2周, 而Scrum的迭代长度一般为 2~ 4周. 区别之二: 在迭代中, 是否允许修改需求
XP在一个迭代中如果一个User Story(用户素材, 也就是一个需求)还没有实现 则可以考虑用另外的需求将其替换替换的原则是需求实现的时间量是相等的。 而Scrum是不允许这样做的一旦迭代开工会完毕, 任何需求都不允许添加进来并有Scrum Master严格把关不允许开发团队受到干扰
区别之三: 在迭代中User Story是否严格按照优先级别来实现
XP是务必要遵守优先级别的。 但Scrum在这点做得很灵活 可以不按照优先级别来做Scrum这样处理的理由是如果优先问题的解决者由于其它事情耽搁不能认领任务那么整个进度就耽误了。 另外一个原因是如果按优先级排序的User Story #6和#10虽然#6优先级高但是如果#6的实现要依赖于#10则不得不优先做#10.
区别之四:软件的实施过程中是否采用严格的工程方法保证进度或者质量
Scrum没有对软件的整个实施过程开出工程实践的处方。要求开发者自觉保证但XP对整个流程方法定义非常严格规定需要采用TDD, 自动测试 结对编程简单设计重构等约束团队的行为。因此原作者认为这点上XP的做法值得认同的但是却把敏捷带入了一个让人困惑的矛盾, 因为xp的理念结合敏捷模式表达给团队的信息是“你是一个完全自我管理的组织 但你必须要实现TDD, 结对编程, ...等等”
不难发现这四个区别显见的是 Scrum非常突出Self-Orgnization, XP注重强有力的工程实践约束
作者建议 在管理模式上启用Scrum 而在实践中创造一个适合自己项目组的XP