您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 敏捷开发全景视图(流程方法和最佳实践)
敏捷开发全景视图(流程、方法和最佳实践)钟玮军2016-02-25目录Contents敏捷vs传统敏捷开发流程框架敏捷方法和最佳实践思考与答疑敏捷vs传统IT项目管理方法的发展历史196019701980199020002010SDLCWATERFALLRADPMBOKITILPRINCEZachmanDSDMRUPXPPRINCE2CRYSTALSCRUMAGILEMANIFESTOFEATOGAF8.0LEANKANBAN软件开发生命周期(SDLC)传统软件开发模式传统瀑布式软件开发方式向迭代式软件开发方式转变(RUP框架)传统软件开发模式存在的问题•传统软件件开发过程的常见症结–交付周期长;害怕需求变更;中间过程不可控;测试周期被一缩再缩;最终结果差强人意–与“唯快不破”的互联网经济格格不入•敏捷软件开发模式–由传统迭代式软件开发模式发展而来,Time-Boxed–抛开传统软件开发模式的繁文缛节,强调产品价值、团队协作、客户参与、先期验证、简化流程、拥抱变化–总结吸收成功软件项目研发的最佳实践;与现代管理思想相辅相成–前期有学习成本,后期会获益匪浅敏捷软件开发模式Source:ForresterResearch,Inc.趋势:敏捷开发逐渐成为主流模式2009Q32014Growth敏捷开发带来的好处TOP5reportedbenefits:Improvedquality(56%)Moreopportunitiesformid-coursecorrections(56%)Overallimprovedcustomerandbusinesssatisfaction(38%)Betterbusiness-ITalignment(37%)Improvedtimetomarket(32%)Alotmorethanvelocity质量改善利于中途修正总体改善客户和业务的满意度商业需求与IT实施更加匹配更快投入市场Source:2013ForresterResearch,Inc.敏捷开发宣言•ManifestoforAgileSoftwareDevelopment–Individualsandinteractionsoverprocessesandtools人和交互重于过程和工具–Workingsoftwareovercomprehensivedocumentation可以工作的软件重于面面俱到的文档–Customercollaborationovercontractnegotiation客户合作重于合同谈判–Respondingtochangeoverfollowingaplan随时应对变化重于遵循计划•虽然右边也有其价值,但我们认为左项更加重要敏捷原则(AgilePrinciples)1.SatisfytheCustomer2.WelcomeChange3.DeliverFrequently4.WorkasaTeam5.MotivatePeople6.CommunicateFace-to-Face7.MeasureWorkingSoftware8.MaintainConstantPace9.ExcelatQuality10.KeepitSimple11.EvolveDesigns12.ReflectRegularly敏捷开发价值观•专注:由于我们在一段时间内只专注于少数几件事情,所以我们可以很好地合作并获得优质的产出。我们能够更快地交付有价值的事项。•公开:在团队合作中,大家都会表达我们做得如何,以及遇到的障碍。我们发现将担忧说出来是一件好事,因为只有这样才能让这些担忧及时得到解决。•尊重:因为我们在一起工作,分享和成功失败,这有助于培养并加深互相之间的尊重,并帮助彼此成为值得尊重的人。•承诺:由于对自己的命运有更大的掌握,我们会有更坚强的信念获得成功。•勇气:因为我们不得单打独斗,我们能够感受到支持,而且掌握更多的资源。这一切赋予我们勇气去迎接更大的挑战。从传统到敏捷:思维的转变形而上者谓之道,形而下者谓之器。形而上者起于学、行于理、止于道,形而下者起于教、行于法、止于术。•从重视“流程”到重视“原则”–道本器末,不忘初心–做正确的事比正确地做事更重要•如何看待流程、方法、最佳实践在敏捷开发中的作用–无其器则无其道,器和道一样重要–上善若水,原则的“刚性”和流程的“柔性”从传统到敏捷:认识误区从传统到敏捷:阻碍和要点改变我们的商业文化采用敏捷技术实践改变我们的IT文化以一种敏捷的态度使用我们现有的工具采用新的敏捷开发工具采用敏捷管理实践从传统到敏捷:关键因素改变我们的商业文化采用敏捷管理实践改变我们的IT文化采用敏捷技术实践采用新的敏捷开发工具以一种敏捷的态度使用我们现有的工具敏捷开发流程框架产品研发:一个持续的过程Managementisdoingthingsright;leadershipisdoingtherightthings.(PeterDrucker)敏捷开发流程框架:Scrum注:Scrum是最为流行的敏捷开发流程框架之一What?How?Scrum框架:简介•Scrum–是一个用于开发和维持复杂产品的框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是2到4周(互联网产品研发可以使用1周的Sprint)。在Scrum中,使用产品Backlog来管理产品的需求,产品backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum团队总是先开发对客户具有较高价值的需求。在Sprint中,Scrum团队从产品Backlog中挑选最高优先级的需求进行开发。挑选的需求在Sprint计划会议上经过讨论、分析和估算得到相应的任务列表,我们称它为Sprintbacklog。在每个迭代结束时,Scrum团队将递交潜在可交付的产品增量。Scrum起源于软件开发项目,但它适用于任何复杂的或是创新性的项目。•要素:–周期:ProductRelease=Time-BoxedSprint=DailyContinousDelivery–团队:ProductOwner,ScrumMaster,DevTeam(Cross-Functional)–工件:ProductBacklog,SprintBacklog,ProductIncrement–活动:SprintPlanningMeeting/ReviewMeeting/RetrospectiveMeeting,DailyScrumMeeting,ProductBacklogRefinement–度量:Burndown图、Burnup图、VelocityScrum(一):迭代周期框架•迭代周期框架:–ProductRelease=Time-BoxedSprint=DailyContinousDelivery•业务战略传递:–Strategy=Portfolio=Product=Release=Sprint=DailyWorkingWhat?How?Scrum(二):团队BuildTheRightThingBuildTheThingRightBuildItFastScrumTeam•Achievement-oriented•Customer-oriented•Committed•Motivated•Self-organized•Empowered•SkilledScrum团队:团队文化共赢的文化•团队成功•个人发展•立足现实•挑战极限Scrum团队:角色分工概览团队:ProductOwner职责•主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权利接受或拒绝开发团队的工作成果•PO在Scrum中承担了多项职责–产品经理:愿景和方向,结果负责–需求分析:业务分析和需求分析–需求管理:维护、终止和变更–项目管理:优先级排序和项目状态跟踪–质量保障:检查产品结果–客户代表:产品体验/接受拒绝•PO对外承担了与产品干系人交流沟通的职责–老板、客户和用户、营销和销售、…Scrum团队:PO的职责关系=0ProductOwner属于研发角色,但与战略、市场和销售等公司其它角色存在密切合作关系,需要掌握跨界知识和语言表达。图示表现了产品管理四种角色之间的关系和分工定义,但根据项目规模不同,某一成员可能身兼数职。Scrum团队:PO能力要求•业务分析能力(BusinessAnalysis)•工程技术能力(Engineering)•领导和协调能力(Leadership&Coordination)://
本文标题:敏捷开发全景视图(流程方法和最佳实践)
链接地址:https://www.777doc.com/doc-2384486 .html