Scrum敏捷开发模式详解-Jack

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

张振华.JackQQ:494460705Mail:zhangzhenhua846@126.com2015年2月10年Java开发1自我介绍Scrum敏捷开发模式详解1.关于敏捷开发模式(历史,介绍,比较)2.敏捷宣言3.Scrum详解4.Scrum四种会议5.Scrum三种角色6.Scrum两种工具7.Scrum中常见的问题2目录张振华.Jack1.敏捷方法,特别是迭代和增量开发方法(IID)起源于20世纪30年代的一些非软件项目。而最早引入一些敏捷方法的项目之一就是20世纪60年代初的美国航天局水星计划。2.20世纪70年代,最早的有记载的使用迭代和增量开发的主要项目之一,是为第一艘美国三叉戟潜艇开发的第一指挥和控制系统。该项目有大约一百万行代码,进行得非常成功。迭代和增量开发从此开始稳步发展,越来越多的项目开始使用这种开发模式。3.1976年,TomGilb在他的著作《软件度量》(“SoftwareMetrics”)一书中阐述了他的迭代和增量开发实践,这可能就是第一部阐述这种方法的书籍。4.20世纪80年代,更多的出版物和更多的项目应用进一步推进了迭代开发的发展。在1895年,巴里贝母(BarryBoehm)正式定义了使用迭代开发的螺旋模型(Spiralmodel)。5.20世纪90年代,推荐使用迭代和增量开发的出版物和文献显著增加。6.2000年底,更多的敏捷开发方法被广泛推广并被使用于各种不同的项目中。7.2001年二月,一组由17位在DSDM,XP,Scrum,FSD等领域的专家组成的代表团齐聚美国犹他州,寻找这些方法的共同点。最终,这些专家制定并宣布了敏捷开发宣言。形成了现在我们所认识的敏捷开发和后来的敏捷联盟。8.2008年,欧美软件企业中,有近半企业已采用敏捷方法进行开发。大多数尚未应用敏捷的企业,也都对其有所了解,而且很多在计划实施。3张振华.Jack什么是敏捷开发?敏捷开发(AgileDevelopment)是一种以人为核心、迭代、循序渐进的开发方法。敏捷开发提倡的“增量迭代、及时交付”的思想。这种模式能最大程度地不偏离客户需求的本质。敏捷不是指某一种具体的方法论、过程或框架,而是一组价值观和原则。符合敏捷价值观和原则的开发方法包括:极限编程(XP),Scrum,精益软件开发(LeanSoftwareDevelopment),动态系统开发方法(DSDM),特征驱动开发(FeatureDriverDevelopment),水晶开发(CrystalClear)等等4张振华.Jack在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分成不同阶段、分别完成,在此过程中软件一直处于可使用状态。敏捷开发与瀑布模型的比较敏捷开发可以在开发的过程当中及时修正需求的正确与否,软件的质量也有了更加可靠的保证。(美国国防部的项目审查显示,早期使用瀑布模式开发的软件项目,有75%以失败告终,有些开发出来的产品根本没有被使用过,只有2%的软件产品无需大量修改就能被正常使用。)采用敏捷开发的团队一般会提高3-10倍的效率。敏捷开发的应用也给团队内的每个成员提供了良好的发展机会。他们的技术和合作水平都能得到响应的提高。敏捷开发注重的是沟通,其实更有助于打造一个积极的、自我管理的、具备自由交流风格的开发团队。对用户的需求变更,有积极的响应机制。用户全程参与到开发过程,这使需求变化和用户反馈能被动态管理并及时集成到产品中。5张振华.Jack两种模式的需求与成果的线性图预见性Agile-经验性从全部的需求和详细的计划开始直到所有需求全部结束从目标和高优先级的需求出发直到目标达成结束6张振华.Jack敏捷开发宣言张振华.Jack7Scrum起源1.Scrum原始含义是指英式橄榄球次要犯规时在犯规地点对阵争球。2.1986年,竹内弘高和野中郁次郎,首次提到将Scrum应用与产品开发,他们认为传统的“接力式”的开发模式已经不能满足快速灵活的市场需求,而整体或“橄榄球式”的方法——团队作为一个整体前进,在团队的内部传球并保持前进,这也许可以更好的满足当前激烈的市场竞争。3.1993年JeffSutherland首次将Scrum用于软件开发(敏捷思想深受日本工业界最佳实践的影响,尤其是丰田和本田公司推行的精益原则)。4.1995年JeffSutherland和KenSchwaber规范化了Scrum框架,并在OOPSLA95上公开发布。5.2001年敏捷宣言及原则发布、敏捷联盟成立,Scrum是其中一种敏捷方法。6.2001年,KenSchwaber和MikeBeedle推出第一本Scrum书籍《Scrum敏捷软件开发》。7.2002年KenSchwaber和MikeCohn共同创办了Scrum联盟。张振华.Jack8Scrum开发模型的实际应用A.2008年,欧美软件企业中,有近半企业已采用敏捷方法进行开发。大多数尚未应用敏捷的企业,也都对其有所了解,而且很多在计划实施。中国的外企,外包公司和许多知名企业也很早都开始采用了敏捷方法。B.目前中国的互联网公司,外包公司,软件公司和许多知名企业也都开始采用了敏捷方法。如:腾讯、携程、爱立信、阿里巴巴、华为、易趣等大部分的软件公司。C.在携程2010年开始就有一小波人员开始尝试Scrum的开发。2014年Ctrip,公司重点战略应用Scrum模型作为开发合作模式以提高开发效率和科学管理,在公司全面推广和铺开。D.目前再国内的现状是,随着越来越多的人对Scrum的了解和熟悉,肯定会成为大中小公司的主流的开发模式。张振华.Jack9Scrum开发流程一个轻量级的软件开发方法Scrum是一个敏捷开发框架,是一个增量的、迭代的开发过程.。在这个框架中,整个开发周期包括若干个小的跌代周期,每个小的的跌代周期称为一个Sprint,每个Sprint的建议长度2到4周。在Scrum中,使用产品Backlog来管理产品或项目的需求,产品backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum的开发团队总是先开发的是对客户具有较高价值的需求。在每个Sprint中,Scrum开发团队从产品Backlog中挑选最有价值的需求进行开发。Sprint中挑选的需求经过Sprint计划会议上的分析、讨论和估算得到一个Sprint的任务列表,我们称它为Sprintbacklog。在每个迭代结束时,Scrum团队将交付潜在可交付的产品增量。一个简单的框架10张振华.JackScrum术语解释Sprint:原意为冲刺,Scrum中的Sprint指一个迭代周期,即一个交付阶段一般2-3周为宜,特别是互联网项目。Backlog:待办列表,即等待认领或者开发的任务列表。ProductBacklog:产品待办列表,指产品的需求列表。UserStory:用户故事,指一条需求,也就是一个功能点。StoryPoint:衡量用户故事的工作量大小的计量单位。一般为天/小时。ProductOwner:产品负责人简称PO。就是产品经理,即需求提出方,需求决定者。SprintTask:实现一条需求需要做的一个技术任务。张振华.Jack11Scrum概况贯穿Scrum的三种角色•ProductOwner(产品经理)、ScrumMaster(项目经理)、ScrumTeam(开发团队)在Scrum工程中通过四种会议活动•SprintPlanningMeeting(Sprint计划会议)•DailyScrumMeeting(每日站会)•SprintReviewMeeting(Sprint的评审会议),我更倾向于把这个会议称之为“SpringDemoMeeting(Sprint演示会议)”。•SprintRetrospectiveMeeting(Sprint回顾会议)Scrum健康反应状况的两个工具•Backlog(代办列表):SprintBacklog(Sprint的需求列表)和ProductBacklog(产品需求列表)•Burn-downChart(燃尽图):Sprint燃尽图(SprintBurn-downChart)和发布燃尽图(ReleaseBurn-downChart)结果•通过以上三种手段完成一个一个Sprint的,直至最后产品的所有的需求交付工作。张振华.Jack12Scrum中的2、3、4•待开发任务列表(TheSprintBacklog)•待修复缺陷列表(Thedefectbacklog)•进度图、燃尽图(BrunDownChart)•ProductOwner(产品经理)•ScrumMaster(项目经理)•ScrumTeam(团队成员)•迭代计划会议(SprintPlanningMeeting)•每日晨会(DailyScrumMeeting)•迭代Demo会议(SprintReviewMeeting)•SprintRetrospectiveMeeting(Sprint回顾会议)13张振华.JackSprint四种会议之—计划会议一14SprintPlanningMeeting:【需求会议,又称计划会议】在启动每个sprint前召开。一般为2-3小时。其实计划会议是个Team确认和沟通的过程。该会议上主要解决如下两个问题:1:决定在Sprint中需要完成哪些工作?2:决定这些工作如何完成,需要多长工时?张振华.Jack计划会议二(注意事项一)A.需求整理:1.Scrum的理念是解放产品经理写复杂的详细的prd文档,当然了一些业务场景的原型图有可能还是需要的。2.Backlog要简单明了,没必要写详细的描述文字,开发过程中要实时注意沟通。3.召开PlanMeeting之前产品经理整理好需求列表,及其排好一个大概优先级。需求有产品负责人负责。B.任务拆分的时候:1.Backlog要停留在业务需求层面上。2.把用户story拆分成合理的需求,产品经理要提前做好拆分的功课。3.超过5天或者大于10天的任务要拆成小需求,降低估算难度。4.任务的开发时间有Team决定。张振华.Jack15计划会议二(注意事项二)估算时间的时候:1.永远不要站在牺牲内部质量的基础上。2.估算方式可以用scrum纸牌,大家一起出牌,求平均,单位可以是天,也可以是小时。3.尊重每一个的选择,估算时间差距大的时候可以问明原因,但是不要指责。4.估算时间的时候任何人都没有发言和干预权,有干活的人一起评估。张振华.Jack16计划会议三—确定最终的sprint的内容最终确定sprint的目标和任务的时候一定要有一个时间盒子的概念。就是sprint的周期一旦确定,就可以根据排好的需求,任务的优先级进行调整或者放到下一个sprint。张振华.Jack17一旦当sprint的周期定好之后,比如有一个紧急任务D要加进来,Sprint的交付周期不变,做法有:1)将低优先级的任务下移;2)将时间长的任务拆分或者化解计划会议四-意义所在可以有效的增加团队内部的沟通。使每个人都对项目的整体有直观的认识,使项目更加open,更加透明增加开发者的话语权,尊重每一个开发者,有助于提高开发者的积极性。增加开发者的责任心,使对自己说出的话更富有承诺性。增加的项目计划性,以科学合理高效的方法应付需求的变更。张振华.Jack18Sprint四种会议之--每日站会一DailyScrummeeting:【Spring站会,有点类似每天工作报告】1.每日Scrum会议,即团队每日例会,条件允许的话,每天都应该在同样的时间和地点,组织所有成员站立进行。2.最好是每天早晨开,一般15分钟左右,时间比较短,也有利于团队成员安排好当天的工作。3.只有团队成员可以在例会上发言,其他人员有兴趣可以参加,但只能旁听,不能发言。(体会一下小猪和小鸡卖鸡蛋火腿的故事)4.每日Scrum会议由ScrumMaster主持,Scrum团队所有成员轮流回

1 / 48
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功