您好,欢迎访问三七文档
2��©2011LenovoConfidential.Allrightsreserved.导航敏捷开发的历史1为什么需要敏捷开发2敏捷开发介绍3敏捷测试43��©2011LenovoConfidential.Allrightsreserved.敏捷开发的诞生历史4��©2011LenovoConfidential.Allrightsreserved.软件团队的不断增大效率确越来越差?概括出了一些可以让软件开发团队具有快速工作、响应变化能力的价值观和原则,并把这些价值观和原则称为敏捷开发2001年一批业界专家软件团队敏捷开发的历史5��©2011LenovoConfidential.Allrightsreserved.我们提倡概念实践普及6��©2011LenovoConfidential.Allrightsreserved.为什么需要敏捷开发?7��©2011LenovoConfidential.Allrightsreserved.软件开发面临问题为什么需要敏捷开发用户需求总是在变化传统软件开发周期长传统软件开发后续难以调整8��©2011LenovoConfidential.Allrightsreserved.为什么需要敏捷开发能快速响应需求的变化快速、频繁的交付有价值的软件客户合作(快速交流反馈)快9��©2011LenovoConfidential.Allrightsreserved.为什么需要敏捷开发敏捷开发优势BECDA精确质量速度高效的自我团队丰厚的投资回报率最具价值的功能总是被优先开发,这样能给客户带来最大的投资回报率。传统开发一次设计,开发周期很长。而敏捷方法则是通过短周期“设计-开发-交付”有用的软件给用户,并从用户那里得到反馈,再根据用户反馈进行下一个周期的“设计-开发-交付”敏捷开发团队成员在开发过程中都能积极主动,自我管理。每个团队成员的技术能力、交流、社交、表达和领导能力都能得以提高。10��©2011LenovoConfidential.Allrightsreserved.可行性研究与计划需求分析设计编码测试运行维护定义阶段开发阶段维护阶段开发了一年,这不是我需要的软件不断发布版本给客户,不断提供新的需求,不断改进传统瀑布开发模型敏捷开发11��©2011LenovoConfidential.Allrightsreserved.为什么需要敏捷开发相对于(非敏捷),敏捷软件开发具有以人为本、轻载灵活、降低风险、提高质量、减少成本、效率高、见效快等优点相关统计表明,敏捷开发可以将效率提高3~10倍,软件的质量也有更加可靠的保证;同时,还给团队内的每个成员提供了良好的发展机会,技术和合作水平都能得到相应提高这么一大堆的优点,所以我们需要敏捷开发12��©2011LenovoConfidential.Allrightsreserved.XX敏捷开发介绍13��©2011LenovoConfidential.Allrightsreserved.什么是SCRUM迭代,增量大家先弄清楚这两个词的意思模糊清晰迭代—反复求精增量—逐块构建每次构建一点点····Scrum是一个敏捷开发框架,是一个增量的、迭代的开发过程14��©2011LenovoConfidential.Allrightsreserved.一个迭代开发周期需求完成开发发布测试计划SCRUM基本流程迭代交付后客户重新调整需求频繁交付给客户,根据客户的新需求,不断完善软件15��©2011LenovoConfidential.Allrightsreserved.Scrum基本元素1.产品Backlog(ProductBacklog)2.SprintBacklog3.Sprint燃尽图(SprintBurndownChart)1.产品负责人(ProductOwner)2.ScrumMaster3.Scrum团1.Sprint计划会议(SprintPlanningMeeting)2.每日站会(DailyScrumMeeting)3.Sprint评审会议(SprintReviewMeeting)4.Sprint回顾会议(SprintRetrospectiveMeeting)三个角色四个仪式三个物件Scrum由三个角色、四个仪式和三个物件(343)16��©2011LenovoConfidential.Allrightsreserved.三个角色---Scrum角色和职责•确定产品的功能。•决定发布的日期和发布内容。•为产品的profitabilityoftheproduct(ROI)负责。•根据市场价值确定功能优先级。•每个Sprint,根据需要调整功能和优先级(每个Sprint开始前调整)。•接受或拒绝接受开发团队的工作成果。•保证团队资源完全可被利用并且全部是高产出的。•保证各个角色及职责的良好协作。•解决团队开发中的障碍。•做为团队和外部的接口,屏蔽外界对团队成员的干扰。•保证开发过程按计划进行,组织DailyScrum,SprintReviewandSprintPlanning•一般情况人数在5-9个左右•团队要跨职能(包括开发人员、测试人员、用户界面设计师等)•团队成员需要全职。(有些情况例外,比如数据库管理员)•在项目向导范围内有权利做任何事情已确保达到Sprint的目标。•高度的自我组织能力。•向ProductOwner演示产品功能。•团队成员构成在sprint内不允许变化。项目经理项目管理团队17��©2011LenovoConfidential.Allrightsreserved.XX迭代规划会议SprintPlan一般不超过8小时。前4个小时:产品负责人向团队展示最高优先级的产品,团队则向他询问产品Backlog的内容、目的、含义及意图。后4小时:团队计划本Sprint的安排评审会议(外部)SprintReview一般4个小时,由团队成员向产品负责人额其他利益相关人展示Sprint周期内的产品开发情况评审会议(内部)SprintRetrospective一般3个小时,ScrumMaster将鼓励团队在SCRUM过程框架和实践范围内,对开发过程做出修改,使它在下一个Sprint周期中更加有效和令人愉快每日站立会议DailyScrumMeeting在简会上,每个成员主要回答三个问题;–自上次SCRUM简会后的一天了(昨天),你做了什么?–从现在到下次SCRUM简会的一天里(今天),你要做什么?–在实现SCRUM及项目目标的工作中,你遇到哪些困难吗?开发团队一个迭代周期需求转化成任务每日开发完成一个迭代周期四个会议----仪式回顾会议•团队的定期自我检视,发现什么是好的,什么是不好的。•一般控制在15-30分钟•每个Sprint都要做•全体参加Sprint回顾会议上,全体成员讨论有哪些好的做法可以启动,哪些不好的做法不能再继续下去了,哪些好的做法要继续发扬。18��©2011LenovoConfidential.Allrightsreserved.XX三个物件-----Scrum物件之产品Backlog•一般情况使用用户故事来表示backlog条目•理想情况每个需求项都对产品的客户或用户有价值•Backlog条目按照商业价值排列优先级•优先级由产品负责人来排列•在每个Sprint结束的时候要更新优先级的排列Backlog条目(功能)估算故事点(分成若干任务)作为一个博客作者,我想设置我发布文章的背景图片,以便于我的读者阅读的时候感受到文章的意境。8作为一个博客作者,我想让我的读者对我的文章进行评价,以便于收集读者反馈,日后改进。10作为一个博客作者,我想通过博客发布我的照片,以便于我的读者们认识我。20一个需求的列表19��©2011LenovoConfidential.Allrightsreserved.三个物件--Scrum物件之SprintBacklogSprintbacklog定义了Sprint的目标,明确了Sprint过程中具体需要完成的任务20��©2011LenovoConfidential.Allrightsreserved.三个物件--Scrum物件之SprintBacklog团队成员自己挑选任务,而不是指派任务对每一个任务,每天要更新剩余的工作量估算每个团队成员都可以修改Sprintbacklog,增加、删除或者修改任务21��©2011LenovoConfidential.Allrightsreserved.三个物件-----Scrum物件之燃尽图随着时间的消耗工作量逐渐减少,在开始的时候,由于估算上的误差或者遗漏工作量有可能呈上升态势。01002003004005006007001234567891011剩余工作量Sprint工作日Sprint燃尽图燃尽参考线燃尽线燃尽图直观的反映了Sprint过程中,剩余的工作量情况22��©2011LenovoConfidential.Allrightsreserved.腾讯企鹅帝国的敏捷开发23��©2011LenovoConfidential.Allrightsreserved.24��©2011LenovoConfidential.Allrightsreserved.敏捷测试25��©2011LenovoConfidential.Allrightsreserved.我是开发我是测试我们测试从头到尾一直参与26��©2011LenovoConfidential.Allrightsreserved.设计文档转换成用例开发中全面测试重点测试开发用例编写者一起讨论完善功能测试点完成诺干个功能点测试用例设计文档自由测试27��©2011LenovoConfidential.Allrightsreserved.敏捷测试工程师的十条法则需求转换成测试,完成测试提供有意义的反馈对会影响核心功能的花俏功能,可以质疑这些功能影响大局,优先关注核心功能敏捷测试人员对某个隐藏的假设或者误解的需求产生怀疑时,她会与客户和开发人员讨论1、提供持续反馈2、为用户创造价值3、促进面对面的沟通28��©2011LenovoConfidential.Allrightsreserved.敏捷测试工程师的十条法则我们需要勇气允许自己失败,至少我们会短暂失败,并从中学习教训。在由于构建版本不稳定导致一次迭代失败之后,我们开始寻找方法以确保这种事情不再发生找到合适的方法,简单的方法进行测试反馈问题给团队,问题持续解决4、勇气5、简单化6、持续改进29��©2011LenovoConfidential.Allrightsreserved.敏捷测试工程师的十条法则敏捷开发项目在持续开发,持续变化,测试也在持续不停进行多学习相关知识,具备多重技能和多层次视角时,任何测试问题都更容易解决。人是知识的组成,熟练的知识,经验丰富的测试工程师会提出其他人想不到的重要问题。7、响应变化8、自我组织9、关注人30��©2011LenovoConfidential.Allrightsreserved.敏捷测试工程师的十条法则每个人都应该在工作中找到乐趣。敏捷开发珍视敏捷测试人员对工作的激情!响应变化10、享受乐趣
本文标题:敏捷开发介绍
链接地址:https://www.777doc.com/doc-3548202 .html