资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,敏捷开发,注:DC7.0项目组,二.敏捷核心价值&原则,三.敏捷大致流程,一.什么是敏捷开发?,四.DC7.0敏捷,提纲,五.给敏捷版本的建议,敏捷开发以用户的,需求进化为核心,,,采用迭代,、,循序渐进,的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,,在此过程中软件一直处于可使用状态,。,一.什么是敏捷开发?,1.为什么说是以人为核心、需求进化为核心?,瀑布开发模型整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,一切以文档为依据;而敏捷开发它只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核心,;已需求为核心。,2.什么是迭代?,迭代是指把一个复杂且开发周期很长的开发任务,分解为很多小周期可完成的任务,这样的一个周期就是一次迭代的过程;同时每一次迭代都可以生产或开发出一个,可以交付,的软件产品。,3.循序渐进。强调的是持续改进,使得你的团队,高效工作,。,二.敏捷四大核心价值,2.可工作的软件,高于理解文档,4.变化响应,高于计划遵循,3.客户协作,高于合同协商,1.个人和互动,高于流程和工具,二.核心价值解读,1.个人和互动高于流程和工具,理解:工具和流程固然重要,只是不如高效的团队合作更重要。敏捷重在以人为本,强调互动交流的重要性。,2.可工作的软件高于理解文档,理解:文档工作有其实际意义:一些最终交付给用户的文档,例如,用户手册和操作说明实际上正是最终解决方案中不可或缺的部分,不过也只是一小部分而已。永远不要忘记作为IT开发团队的首要任务是开发出符合用户需求的解决方案,而不是文档。不然的话,软件开发就该改名为“文档开发”了,不是吗?,二.核心价值解读,3.客户协作高于合同协商,客户协作 可理解为 各种不同的项目利益相关者,包括最终用户、他们的上司、高级IT主管、公司战略负责人、运营人员、支持人员、合规审查人员以及其他各色人等,理解:,只有项目的利益相关者本人能够告诉你他的需求是什么,他们可能无法很具体地描述解决方案,他们第一次可能无法抓住重点,在他们看到你的团队的实际工作成果后,可能会改变自己的想法,二.核心价值解读,4.变化响应高于计划遵循,理解:,所面临问题的理解会不断变化,有需求的变化、有关系人期望的变化、有环境因素的变化等等,变化是必然的。,预先制定项目计划是必需的,但是项目计划必须是有灵活性的。,二.敏捷12条原则,1、我们最优先要做的是通过尽早的、持续的,交付有价值,的软件来使,客户,满意,理解:规划迭代故事时必须按照优先级安排,为客户先提供最有价值的功能。通过频繁迭代能与客户形成早期的良好合作,及时反馈提高产品质量。,二.敏捷12条原则,2、即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。,理解:敏捷过程参与者不怕变化,他们认为改变需求是好事情,因为这些改变意味着我们更了解市场需求。(不过还是要少变点好,折腾不起),二.敏捷12条原则,3、经常性的交付,可以工作的软件,,交付的间隔可以从几周到几个月,交付的,时间间隔越短越好,。,理解:保证交付的软件可以很好的工作,那么交付时间越短对产品质量就更有益,二.敏捷12条原则,4、在整个项目开发期间,业务人员和开发人员必须天天都在,一起工作,。,理解:软件项目不会依照之前设定的计划原路执行,中间对业务的理解、软件的解决方案肯定会存在偏差,所以客户、需求人员、开发人员以及涉众之间必须进行有意义的、频繁 的交互,这样就可以在早期及时的发现并解决问题。(这点重点强点的是,交互沟通的重要性,),二.敏捷12条原则,5、围绕被激励起来的人个来构建项目。给他们提供所需要的环境和支持,并且信任他们能够完成工作。,理解:只要个人的目标和团队的目标一致,我们就需要鼓舞起每个人的积极性,以个人为中心构建项目,提供所需的环境、支持与信任。,二.敏捷12条原则,6、在团队内部,最具有效果并且富有效率的传递信息的方法,就是,面对面的交谈,。,理解:在十几或者二十几个人组成的大团队中,文档是一种比较合适的传递知识和交流的途径。而敏捷团队一般不会很多人(大团队实施敏捷时也会分成多个小的敏捷团队),所以大量的文档交流其实并不是很经济的做法。此时面对面的交谈反而更快速有效。,二.敏捷12条原则,7、工作的软件是首要进度度量标准。,理解:衡量这个功能是否完成的首要标准就是这个功能可以工作了,对用户来说已经可以应用了。(关键点:完成标准要明确好,最好是可工作的软件),二.敏捷12条原则,8、敏捷过程提,可持续的开发速度,。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。,理解:,很多人都认为软件开发中加班是很正常的,不加班反而不正常。敏捷过程应该摒弃拼拼的态度,下一个项目依旧会让你的组员再次突击。这时不知道有人会不会说,那我们就一直加班,也是“持续的开发速度”啊,这时可要注意了,持续加班只会导致人疲劳、厌倦,保持长期恒定的速度也只是一种理想而已。(,关键点:sprint周期要恒定,任务安排要合理,),二.敏捷12条原则,9、不断地关注优秀的技能和好的设计会增强敏捷能力。,理解:通过回顾总结,保留项目一些好的经验技能。通过一些好的技术实践可以加强产品敏捷能力,很多原则、模式和实践也可以增强敏捷开发能力。,二.敏捷12条原则,10、简单-使未完成的工作最大化的艺术-是根本的。,理解:通过最简单的方法完成现在需要解决的问题,二.敏捷12条原则,11、最好的构架、需求和设计出自自组织的团队,理解:,自组织团队的第一个要素就是必须有一个团队,而不仅仅是一群人,更不是一个团伙。团队,共同完成一个伟大的使命;自我管理;高效完成,二.敏捷12条原则,12、每隔一定时间,团队会在如何才能更有效地工作方面进行,反省,,然后相应地对自己的行为进行,调整,。,理解:持续改进,三.敏捷大致流程,1.,什么是Scrum?,敏捷流程有Scrum和xp。我们公司采用的是Scrum。Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;把一个开发流程的名字取名为Scrum,我想你一定能想象出你的开发团队在开发一个项目时,大家像打橄榄球一样迅速、富有战斗激情、人人你争我抢地完成它,你一定会感到非常兴奋的。,2,.Sprint:一个Sprint就是一个迭代,从Sprint计划会议开始到Sprint回顾会议结束为一次迭代。Sprint有严格的时间控制,一般每次Sprint的周期为2-4周,时间到了Sprint就结束,。,三.敏捷大致流程,3.三种角色,【PO】产品负责人(Product Owner),负责维护产品,待办事项列表,,确保每个成员明晰列表内容、明确哪些条目具有,最高优先级,,从而了解下个需要开发的条目。PO是非常重要的角色,他对客户需求有着很强的敏感性,清楚什么对客户最重要,做到什么程度能让客户满意,在TEAM遇到需求问题时都能给出解答或决策。,【SM】Scrum Master负责确保Scrum团队遵守Scrum价值、实践和规则;帮助Scrum团队和整个组织实施Scrum;通过指导和引导,教授Scrum团队更高效工作、生产出高质量的产品;帮助Scrum团队理解并采用自我管理-(,教练,)。,【TEAM】团队负责在每个迭代将产品待办事项列表转化成为潜在可交付的功能增量。TEAM是,自管理,的,有实际的自主权,文化上要符合,基于激发人的主动性、避免受外界干涉。他们完全有权决定如何把需求转化成产品功能,比如是否要做设计,采用什么算法,如何做缺陷预防等。PO和SM都无权指挥TEAM怎么去实现需求,但TEAM必须承诺交付的功能是PO期望的。,三.敏捷大致流程-如何进行Scrum开发?,Sprint,计划,会议,1.迭代计划会在每个迭代第一天召开,2.理解最终用户到底要什么,3.目的是选择和估算本次迭代的工作项,Sprint,评审,会议,团队在会议中向最终用户展示工作成果,团队成员希望得到反馈,并以之创建或变更 Backlog 条目,站立,会议,(10分钟以内),1.昨天完成情况,2.今天计划,3.存在的风险和障碍反馈,注:不要讨论具体的问题,四.DC7.0敏捷,项目之初,我们打算走的是瀑布模型,但工作量估算处理比较多,按照人力基本上要转集成就差不多6月份了,因此我们想走敏捷会不会解决我们人力确实的问题,让测试可以尽快的介入测试!,我们基于什么走敏捷开发?,1.框架。DC使用的插件化的编程思路,方便于任务的划分,预研阶段大体的框架已经初步形成。(这里体现的是什么,2.查询统计页面功能也更比较独立的,相互依赖比较少。,3.该覆盖率的单元测试和自动化,于,是我们把需求表和估算表整形成我们的PBL,走敏捷流程,这里我们回顾一下,什么是迭代?,迭代是指把一个复杂且开发周期很长的开发任务,分解为很多小周期可完成的任务,。,-对,我们DC可切分成小任务开发,符合迭代概念!,四.DC7.0敏捷,于,是我们把需求表和估算表整形成我们的PBL,走敏捷流程,PBL:需求文档和估算表直接转换,形成了我们DC7.0 PBL,根据工作量,我们迭代分为6个sprint,每个迭代持续时间为3周,3周,挂钩原则体现:,第3点原则,经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,,交付的时间间隔越短越好,第8点原则,敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。(,通过恒定的周期,能更好的评估组员的生产效率,更有利于恒定的开发速度),四.DC7.0敏捷,每个sprint开始,我们就列出本迭代需要讨论的方案、需要评审的方案点,挂钩原则:第6点,在团队内部,最具有效果并富有效率的传递信息的方法,就是面对面的交谈。,挂钩核心价值:可以工作的软件胜过面面俱到的文档,每天进行站立会议:,挂钩原则:第4点,在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。(注:这里业务人员,我们当前没有直接面对客户,主要是我和规划面对面的沟通),挂钩核心价值:个体和交互 胜过过程和工具,四.DC7.0敏捷,需求体验,直接提供IP给市场、客服、规划,可实时进行体验反馈,挂钩原则:第1点,我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。,挂钩核心价值:客户(利益关系人)合作胜过合同谈判,sprint计划会议&评审会议&回顾会议,挂钩原则:第12点,每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应的对自己的行为进行调整。,(,回顾、可持续改进,),第9点,不断地关注优秀的技能和好的设计会增强敏捷能力。,四.DC7.0敏捷,挂钩原则:第7点,工作的软件是首要的进度度量标准。,设定好每个task的完成标准,只有符合完成标准的才是真正的完成!,五.给敏捷版本的一些建议,1.,高覆盖率的自动化,做到可持续集成,2.,模块划分要可测试化(每个sprint的产出都是可测试的),3.,要定义好完成标准,4.,.,讨论环节,THE END,谢谢,
展开阅读全文