敏捷开发方法.ppt

上传人:石*** 文档编号:39862419 上传时间:2022-09-08 格式:PPT 页数:40 大小:1.78MB
返回 下载 相关 举报
敏捷开发方法.ppt_第1页
第1页 / 共40页
敏捷开发方法.ppt_第2页
第2页 / 共40页
点击查看更多>>
资源描述

《敏捷开发方法.ppt》由会员分享,可在线阅读,更多相关《敏捷开发方法.ppt(40页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、现在学习的是第1页,共40页l敏捷开发方法的核心思想敏捷开发方法的核心思想l敏捷开发方法的原则敏捷开发方法的原则l敏捷开发方法的代表敏捷开发方法的代表极限编程极限编程现在学习的是第2页,共40页l敏捷软件开发方法的思想是现代管理理敏捷软件开发方法的思想是现代管理理念的延伸,其核心是念的延伸,其核心是以人为本,发挥人以人为本,发挥人的主观能动性。的主观能动性。l敏捷软件开发方法认为,对项目最重要敏捷软件开发方法认为,对项目最重要的影响因素是人,而不是过程和技术。的影响因素是人,而不是过程和技术。不能把人员当做由过程驱动的不能把人员当做由过程驱动的“可插拔可插拔替换的编程单元替换的编程单元”,而要

2、发挥人的能动,而要发挥人的能动性,建立紧密协作的、自组织的团队。性,建立紧密协作的、自组织的团队。现在学习的是第3页,共40页l以过程为核心(而不是以人为核心)的软件组织以过程为核心(而不是以人为核心)的软件组织为了少犯错误,保证项目成功,而从项目开发经为了少犯错误,保证项目成功,而从项目开发经验中总结和定义了许多过程,用于约束开发行为验中总结和定义了许多过程,用于约束开发行为,避免重复相同的错误。由于项目的复杂性和多,避免重复相同的错误。由于项目的复杂性和多样性,这种过程定义会越来越多,最终形成一个样性,这种过程定义会越来越多,最终形成一个庞大的、笨重的过程集合,这样的过程集合会降庞大的、笨

3、重的过程集合,这样的过程集合会降低开发效率和产品质量,增加开发成本。低开发效率和产品质量,增加开发成本。现在学习的是第4页,共40页 我们正在通过亲身实践以及帮助他人实践,揭示更我们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。通过这项工作,我们认为:好的软件开发方法。通过这项工作,我们认为:人和交互人和交互 重于重于 过程和工具过程和工具 可以工作的软件可以工作的软件 重于重于 面面俱到的文档面面俱到的文档 客户合作客户合作 重于重于 合同谈判合同谈判 随时应对变化随时应对变化 重于重于 遵循计划遵循计划 虽然右项也有其价值,但我们认为左项更加重要。虽然右项也有其价值,但我们认为

4、左项更加重要。现在学习的是第5页,共40页l只有好的过程而缺乏合格的人员,不能保证项目不只有好的过程而缺乏合格的人员,不能保证项目不失败。失败。l优秀的人员不一定是顶尖的技术人才,但一定能和优秀的人员不一定是顶尖的技术人才,但一定能和其它人员良好地协作。其它人员良好地协作。l拥有一般的技术人才,但能够有效沟通、紧密协作拥有一般的技术人才,但能够有效沟通、紧密协作的团队比那种虽拥有技术精英,但不能有效沟通的的团队比那种虽拥有技术精英,但不能有效沟通的团队更有可能取得成功。团队更有可能取得成功。现在学习的是第6页,共40页l工具虽然重要,但那种最先进的、大而复杂的工具工具虽然重要,但那种最先进的、

5、大而复杂的工具不一定适合组织的需要,而且可能会给组织带来负不一定适合组织的需要,而且可能会给组织带来负面影响。面影响。l先尝试小而灵便的工具。先尝试小而灵便的工具。l首先要致力于建立团队,然后让团队根据自己的首先要致力于建立团队,然后让团队根据自己的需要配置工具环境。需要配置工具环境。现在学习的是第7页,共40页l过多的文档会带来许多负面影响。需花费许多资过多的文档会带来许多负面影响。需花费许多资源来产生这些文档并保持它们之间的一致性(特源来产生这些文档并保持它们之间的一致性(特别是文档与编码之间的一致性)。如果不一致,别是文档与编码之间的一致性)。如果不一致,文档将成为产生混乱的根源。文档将

6、成为产生混乱的根源。l应该书写一些文档来描述系统的基本结构和原理,但应该书写一些文档来描述系统的基本结构和原理,但文档一定要短而精炼,只用来描述总体设计原理和最文档一定要短而精炼,只用来描述总体设计原理和最高层次的系统结构。高层次的系统结构。l代码已包含了最丰富的、且无歧义的系统信息。代码已包含了最丰富的、且无歧义的系统信息。现在学习的是第8页,共40页l当有新的成员加入项目团队,通过与他不断地交流当有新的成员加入项目团队,通过与他不断地交流和密切地合作来使他熟悉当前项目,而不是让他阅和密切地合作来使他熟悉当前项目,而不是让他阅读大量文档。读大量文档。l不要去产生文档,除非有紧迫而明显的需求。

7、不要去产生文档,除非有紧迫而明显的需求。现在学习的是第9页,共40页l软件项目的成功依赖于客户频繁的反馈,而不是软件项目的成功依赖于客户频繁的反馈,而不是依赖于与客户达成的合同或协议。依赖于与客户达成的合同或协议。l合同中所规定的需求、进度和成本很容易变得没有合同中所规定的需求、进度和成本很容易变得没有意义,因为项目处在持续不断的变化中。意义,因为项目处在持续不断的变化中。l客户必须每天与开发团队一起工作,对开发团队的工客户必须每天与开发团队一起工作,对开发团队的工作及时提供反馈。作及时提供反馈。现在学习的是第10页,共40页l由于项目中存在很多不确定因素,应对变化的能力由于项目中存在很多不确

8、定因素,应对变化的能力常常决定了项目的成败。常常决定了项目的成败。l计划必须是灵活的,能够适应业务和技术的变化计划必须是灵活的,能够适应业务和技术的变化。l一个比较好的计划策略是:对未来两星期的工作制一个比较好的计划策略是:对未来两星期的工作制定详细的计划;对未来定详细的计划;对未来3个月的工作制定很粗略的个月的工作制定很粗略的计划;对更远的时间段,则制定最初级的计划。计划;对更远的时间段,则制定最初级的计划。现在学习的是第11页,共40页l敏捷开发方法的核心思想敏捷开发方法的核心思想l敏捷开发方法的原则敏捷开发方法的原则l敏捷开发方法的代表敏捷开发方法的代表极限编程极限编程现在学习的是第12

9、页,共40页l由敏捷软件开发宣言的思想衍生出敏捷软件开发的由敏捷软件开发宣言的思想衍生出敏捷软件开发的12条原则。条原则。(1)我们最优先要做的是通过尽早地、持续地交付我们最优先要做的是通过尽早地、持续地交付有价值的软件来满足客户的需要。有价值的软件来满足客户的需要。w 有统计数字表明,越早、越频繁地向用户交有统计数字表明,越早、越频繁地向用户交付软件,软件的质量就越好。付软件,软件的质量就越好。w 敏捷开发方法力求项目开始几周后,就向用敏捷开发方法力求项目开始几周后,就向用户交付一个最初的系统,以后每隔两周就交户交付一个最初的系统,以后每隔两周就交付一个增加了功能的系统。付一个增加了功能的系

10、统。现在学习的是第13页,共40页w对于每次交付的软件,客户可以将其投入应对于每次交付的软件,客户可以将其投入应用,如果软件的功能还不足以满足应用的需用,如果软件的功能还不足以满足应用的需要,就只对其进行审查,并提出修改意见。要,就只对其进行审查,并提出修改意见。现在学习的是第14页,共40页(2)欢迎需求的变化,即使到了开发的后期。敏捷欢迎需求的变化,即使到了开发的后期。敏捷过程能够驾驭变化,为客户创造竞争优势。过程能够驾驭变化,为客户创造竞争优势。w 使用敏捷过程的开发组织欢迎需求的变化,使用敏捷过程的开发组织欢迎需求的变化,因为他们认为需求变化可以让它们更多地了因为他们认为需求变化可以让

11、它们更多地了解市场。解市场。w 敏捷开发组织采用各种方法和技术,使软件敏捷开发组织采用各种方法和技术,使软件的结构高度灵活,需求的变化对系统的影响的结构高度灵活,需求的变化对系统的影响被最小化。被最小化。现在学习的是第15页,共40页(3)频繁交付可以工作的软件,从几个星期到几个月,频繁交付可以工作的软件,从几个星期到几个月,时间越短越好。时间越短越好。w 敏捷开发组织不满足于交付文档和计划,他敏捷开发组织不满足于交付文档和计划,他们的目标是频繁地交付可以工作的软件,从们的目标是频繁地交付可以工作的软件,从而满足客户的需要。而满足客户的需要。现在学习的是第16页,共40页(4)在整个项目开发期

12、间,业务人员和开发人员必须在整个项目开发期间,业务人员和开发人员必须每天工作在一起。每天工作在一起。w 软件项目必须被不断地调整和引导,这要求软件项目必须被不断地调整和引导,这要求用户、开发者和其他利益干系人要频繁地交用户、开发者和其他利益干系人要频繁地交流。流。现在学习的是第17页,共40页(5)围绕斗志高昂的人构建项目,给他们提供所需围绕斗志高昂的人构建项目,给他们提供所需的环境和支持,并且信任他们能够完成任务。的环境和支持,并且信任他们能够完成任务。w 在一个敏捷项目中,人员被认为是最重要的在一个敏捷项目中,人员被认为是最重要的因素,其它所有因素(过程、环境、管理等因素,其它所有因素(过

13、程、环境、管理等)都被认为是次要的,当这些因素对人员造)都被认为是次要的,当这些因素对人员造成不利影响时,就必须对其做出改变。成不利影响时,就必须对其做出改变。w 例如,如果某些过程步骤对团队人员来说是例如,如果某些过程步骤对团队人员来说是个障碍,那么过程就必须改变。个障碍,那么过程就必须改变。现在学习的是第18页,共40页(6)在团队内部,最有效率和最有效果的信息传达方在团队内部,最有效率和最有效果的信息传达方式就是面对面的交流。式就是面对面的交流。w 在敏捷项目中,主要的交流方式就是交谈。在敏捷项目中,主要的交流方式就是交谈。文档在必要的时候会被创建,但不会试图用文档在必要的时候会被创建,

14、但不会试图用文档来捕获所有项目信息。文档来捕获所有项目信息。w 在敏捷项目组中,默认的交流方式是交谈,在敏捷项目组中,默认的交流方式是交谈,而不是文档。而不是文档。现在学习的是第19页,共40页(7)可以工作的软件是进度的主要度量标准。可以工作的软件是进度的主要度量标准。w 对于敏捷项目来说,进度的度量标准是当前对于敏捷项目来说,进度的度量标准是当前可满足用户需求的软件的量,而不是当前项可满足用户需求的软件的量,而不是当前项目所处的阶段、文档数量或基础代码的数量目所处的阶段、文档数量或基础代码的数量。w 项目完成了项目完成了30%的含义是的含义是30%的用户所需功的用户所需功能已被实现。能已被

15、实现。现在学习的是第20页,共40页(8)敏捷过程提倡可持续开发。出资人、开发者和敏捷过程提倡可持续开发。出资人、开发者和用户应该共同维持一个稳定的开发速度。用户应该共同维持一个稳定的开发速度。w 敏捷小组会在整个项目开发期间保持一个适敏捷小组会在整个项目开发期间保持一个适当的、可持续的开发速度,从而维持最高的当的、可持续的开发速度,从而维持最高的质量标准。敏捷项目不会使开发者感到疲惫质量标准。敏捷项目不会使开发者感到疲惫不堪。不堪。现在学习的是第21页,共40页(9)对卓越技术和良好设计的不断追求有助于提高敏对卓越技术和良好设计的不断追求有助于提高敏捷性。捷性。w 敏捷开发团队认为提高质量会

16、加快开发进度敏捷开发团队认为提高质量会加快开发进度。因此要保持软件的精简和健壮。因此要保持软件的精简和健壮。w 敏捷开发团队的每个成员都要致力于开发高敏捷开发团队的每个成员都要致力于开发高质量的代码,不能把混乱的、底质量的代码质量的代码,不能把混乱的、底质量的代码留到以后去修改。留到以后去修改。现在学习的是第22页,共40页(10)简单简单尽量减少工作量的艺术是至关重要尽量减少工作量的艺术是至关重要的。的。w 敏捷开发方法总是选择达到目标的最简单途敏捷开发方法总是选择达到目标的最简单途径。径。w 敏捷开发团队并不花费大量精力去预防将来敏捷开发团队并不花费大量精力去预防将来可能出现的问题,而是专

17、注于对当前工作采可能出现的问题,而是专注于对当前工作采用最简单、最高质量的解决方案,并相信将用最简单、最高质量的解决方案,并相信将来如果问题出现,可以很方便地进行修改。来如果问题出现,可以很方便地进行修改。现在学习的是第23页,共40页(11)最好的架构、需求和设计都出自于自组织的最好的架构、需求和设计都出自于自组织的团队。团队。w 敏捷开发团队是自组织的团队。职责并非是敏捷开发团队是自组织的团队。职责并非是从团队外部加给每一个团队成员,而是团队从团队外部加给每一个团队成员,而是团队作为一个整体接受职责并自己决定怎样去完作为一个整体接受职责并自己决定怎样去完成它。成它。w 敏捷开发团队成员在项

18、目的各个方面(架构敏捷开发团队成员在项目的各个方面(架构、需求、测试等)都是共同负责的,不会出、需求、测试等)都是共同负责的,不会出现某一人单独负责一方面任务的情况。现某一人单独负责一方面任务的情况。现在学习的是第24页,共40页(12)每隔一定时间,团队都要总结怎样更有效率每隔一定时间,团队都要总结怎样更有效率地工作,然后相应地调整自己的行为。地工作,然后相应地调整自己的行为。w 敏捷开发团队认识到环境在不断地改变,因敏捷开发团队认识到环境在不断地改变,因此团队也需要不断地对组织、规则、惯例和此团队也需要不断地对组织、规则、惯例和各种关系进行调整,以保持自身的敏捷性。各种关系进行调整,以保持

19、自身的敏捷性。现在学习的是第25页,共40页l敏捷开发方法的核心思想敏捷开发方法的核心思想l敏捷开发方法的原则敏捷开发方法的原则l敏捷开发方法的代表敏捷开发方法的代表极限编程极限编程现在学习的是第26页,共40页l符合敏捷软件开发思想和原则的具体实践方法有符合敏捷软件开发思想和原则的具体实践方法有多种,如极限编程(多种,如极限编程(XP)、)、Scrum、Crystal Methods、FDD等。等。l极限编程极限编程(Extreme Programming,XP)是最著名)是最著名的敏捷开发方法,它由一系列简单的、互相依赖的最的敏捷开发方法,它由一系列简单的、互相依赖的最佳实践组成。佳实践组

20、成。lKent Beck所著所著解析极限编程解析极限编程拥抱变化拥抱变化系系统地介绍了极限编程。统地介绍了极限编程。现在学习的是第27页,共40页l客户作为开发团队的成员,让提出需求的人们与客户作为开发团队的成员,让提出需求的人们与开发这些需求的人们直接沟通,减少浪费。开发这些需求的人们直接沟通,减少浪费。l完整的团队就意味着有客户参与。如果没有客户完整的团队就意味着有客户参与。如果没有客户或真实客户或真实客户“代理代理”的参与,开发的功能可能不的参与,开发的功能可能不被使用,书写的测试也可能不能反映真实的客户被使用,书写的测试也可能不能反映真实的客户验收标准,这些都将导致浪费。验收标准,这些

21、都将导致浪费。现在学习的是第28页,共40页lXP项目每两周向客户交付一次软件,所交付的软件涉项目每两周向客户交付一次软件,所交付的软件涉及客户的一部分需求,客户要及时作出反馈。及客户的一部分需求,客户要及时作出反馈。l为了实现短交付周期,项目组需要制定迭代计划和发为了实现短交付周期,项目组需要制定迭代计划和发布计划。布计划。l两周为一个迭代周期,迭代代表向用户的一次产品两周为一个迭代周期,迭代代表向用户的一次产品交付,是用户所需功能的一个集合。六个迭代(约交付,是用户所需功能的一个集合。六个迭代(约三个月时间)形成一个发布(三个月时间)形成一个发布(Release),发布是),发布是一个主要

22、的产品交付,会被集成到最终产品中。一个主要的产品交付,会被集成到最终产品中。现在学习的是第29页,共40页l项目组必须为每次迭代和发布制定预算。用户根据预项目组必须为每次迭代和发布制定预算。用户根据预算来选择迭代和发布中所包含的功能。算来选择迭代和发布中所包含的功能。现在学习的是第30页,共40页l两个程序员用一台电脑一起工作,其中一人操作两个程序员用一台电脑一起工作,其中一人操作键盘,输入程序,另一人与他密切交流,检查错键盘,输入程序,另一人与他密切交流,检查错误和需要改进的地方。两人的角色频繁互换。误和需要改进的地方。两人的角色频繁互换。l所编写的代码由两人共同负责。所编写的代码由两人共同

23、负责。l经常地更换搭档,每个程序员至少每天更换一次搭档经常地更换搭档,每个程序员至少每天更换一次搭档,这样当一个迭代结束后,每个程序员都与小组中所,这样当一个迭代结束后,每个程序员都与小组中所有其它程序员配过对,工作涉及到本次迭代的所有内有其它程序员配过对,工作涉及到本次迭代的所有内容。容。现在学习的是第31页,共40页l结对编程能够极大地促进知识在团队中的传播,结对编程能够极大地促进知识在团队中的传播,没有任何一个程序模块由单独一人完成,这样就没有任何一个程序模块由单独一人完成,这样就保证了任何人的工作在必要时都可由其他人代替保证了任何人的工作在必要时都可由其他人代替完成。完成。l结对编程使

24、结对的双方都专注于任务,互相启发,理结对编程使结对的双方都专注于任务,互相启发,理清思路,共同讨论解决难题。清思路,共同讨论解决难题。l经验证明,结对编程没有降低开发团队的效率,经验证明,结对编程没有降低开发团队的效率,而且大幅度地减小了缺陷率。而且大幅度地减小了缺陷率。现在学习的是第32页,共40页l代码归集体所有,团队中的所有成员都有权访问代码归集体所有,团队中的所有成员都有权访问和改进项目的所有模块代码。和改进项目的所有模块代码。l没有一个人单独负责某一模块或技术。没有一个人单独负责某一模块或技术。l集体所有权可促进交流,增强团队凝聚力和发挥集体所有权可促进交流,增强团队凝聚力和发挥集体

25、创造力。集体创造力。现在学习的是第33页,共40页l软件项目不是短跑,而是马拉松,它需要一个可持软件项目不是短跑,而是马拉松,它需要一个可持续的速度,能够保持能量和敏锐性。续的速度,能够保持能量和敏锐性。l极限编程的一个原则是极限编程的一个原则是“不要加班不要加班”,但也有例,但也有例外,即在一个发布周期的最后一周加班是允许的外,即在一个发布周期的最后一周加班是允许的,因为这时可能需要加速以达到发布目标。,因为这时可能需要加速以达到发布目标。现在学习的是第34页,共40页l开发小组在一个大的办公区域中一同工作,每个开发小组在一个大的办公区域中一同工作,每个桌子上放两到三台电脑,墙上可以张贴状态

26、图、桌子上放两到三台电脑,墙上可以张贴状态图、任务分解图等各种图表。任务分解图等各种图表。l这样的工作环境便于交流,每个人员都可以及时这样的工作环境便于交流,每个人员都可以及时了解到小组其他人员的工作状态,知道他们是否了解到小组其他人员的工作状态,知道他们是否遇到了麻烦。遇到了麻烦。现在学习的是第35页,共40页lXP项目计划的主导思想是将业务责任和开发责任相项目计划的主导思想是将业务责任和开发责任相分离。业务人员(客户)确定哪些产品特征是重要分离。业务人员(客户)确定哪些产品特征是重要的,开发人员确定实现这些特征需花费多少成本。的,开发人员确定实现这些特征需花费多少成本。l在每个迭代或发布周

27、期的开始,开发人员交给客户在每个迭代或发布周期的开始,开发人员交给客户一个预算,说明在该迭代或发布周期中能够完成多一个预算,说明在该迭代或发布周期中能够完成多少工作,客户根据这个预算选择需实现哪些产品功少工作,客户根据这个预算选择需实现哪些产品功能。能。现在学习的是第36页,共40页l不超过两个小时就对改变的地方进行一次集成和不超过两个小时就对改变的地方进行一次集成和测试。团队编程并不是单纯的分而治之,而是分测试。团队编程并不是单纯的分而治之,而是分散、解决问题然后集成。散、解决问题然后集成。l集成过程是不可预知的,很容易花费比原先编程集成过程是不可预知的,很容易花费比原先编程更多的时间。等待

28、集成的时间越长,代价就越高更多的时间。等待集成的时间越长,代价就越高,集成过程就越不可预知。,集成过程就越不可预知。现在学习的是第37页,共40页l敏捷开发方法是针对传统的重量级开发方法的缺敏捷开发方法是针对传统的重量级开发方法的缺点而提出的,但它并没有全盘否定重量级开发方点而提出的,但它并没有全盘否定重量级开发方法。法。l两种方法不是谁取代谁的关系,它们互相吸取对两种方法不是谁取代谁的关系,它们互相吸取对方的长处,将长期并存。方的长处,将长期并存。l软件组织应根据团队和项目的实际情况从两种方法中软件组织应根据团队和项目的实际情况从两种方法中提取所需要的技术和方法,灵活应用。提取所需要的技术和方法,灵活应用。现在学习的是第38页,共40页l理解敏捷开发方法的核心思想理解敏捷开发方法的核心思想敏捷宣言敏捷宣言l理解敏捷开发方法的原则理解敏捷开发方法的原则l理解极限编程的最佳实践理解极限编程的最佳实践现在学习的是第39页,共40页l请阐述敏捷开发方法的核心思想。请阐述敏捷开发方法的核心思想。l什么是什么是“结对编程结对编程”?使用结对编程有哪些好处?使用结对编程有哪些好处?现在学习的是第40页,共40页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com