迅捷方法
敏捷方法是从20世纪90年代开始逐渐引起广泛关注的一些新型软件开发方法,以应对快速变化的需求。虽然它们的具体名称、理念、过程、术语都不尽相同,但相对于“非敏捷”而言,它们更强调开发团队与用户之间的紧密协作、面对面的沟通、频繁交付新的软件版本、紧凑而自我组织型的团队等,也更注重人的作用。
1、敏捷宣言
2001年,Kent Beck等人组织了敏捷联盟,阐述了敏捷开发的原则,试图强调灵活性在快速且有效地开发软件中所发挥的作用,他们共同签署了敏捷软件开发宣言,该宣言认为,个体和交互胜过过程和工具;可工作的软件胜过大量的文档;客户合作胜过合同谈判;响应变化胜过遵循计划。
敏捷方法强调,让客户满意和软件尽早增量发布;小而高度自主的项目团队;非正式的方法;最小化软件工程工作产品以及整体精简开发。产生这种情况的原因是,在绝大多数软件开发过程中,提前预测哪些需求是稳定的和哪些需求会变化非常困难;对于软件项目构建来说,设计和实现是交错的;从指定计划的角度来看,分析、设计、实现和测试并不容易预测;可执行原型和部分实现的可运行系统是了解用户需求和反馈的有效媒介。
目前,主要的敏捷方法有极限编程、自适应软件开发、水晶方法、特性驱动开发、动态系统开发方法、测试驱动开发、敏捷数据库技术和精益软件开发等。虽然这些过程模型在实践上有差异,但都是遵循了敏捷宣言或者是敏捷联盟所定义的基本原则。这些原则包括客户参与、增量式移交、简单性、接受变更、强调开发人员的作用和及时反馈等。
2、敏捷方法的特点
敏捷方法是一种以人为核心、迭代、循序渐进的开发方法。在敏捷方法中,软件项目的构建被切分成多个子项目,各个子项目成果都经过测试,具备集成和可运行的特征。在敏捷方法中,从开发者的角度来看,主要的关注点有短平快的会议、小版本发布、较少的文档、合作为重、客户直接参与、自动化测试、适应性计划调整和结对编程;从管理者的角度来看,主要的关注点有测试驱动开发、持续集成和重构。
近年来,虽然敏捷方法发展的较快,但在实施的过程中,也暴露出来很多问题,一些敏捷方法的基本原则很难实施,主要体现在以下4个方面:
1)客户参与往往依赖于客户参与的意愿和客户自身的代表性。
2)团队成员的性格可能不适合激烈的投入,可能无法做到与其它成员之间的良好沟通。
3)对系统的变更作出优先级排序可能是极端困难的。
4)维护系统的简洁性往往需要额外的工作,但迫于时间表的压力,可能没有时间执行系统简化过程。
与RUP相比,敏捷方法的周期可能更短。敏捷方法在几周或几个月的时间内完成相对较小的功能,强调的是能尽早将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强,并且更加强调团队中的高度协作。相对而言,敏捷方法主要适用于以下场合:
1)项目团队的人数不能太多,适合于规模较小的项目。
2)项目经常发生变更。敏捷方法适用于需求萌动并且快速改变的情况,如果系统有比较高的关键性、可靠性、安全性方法要求,则可能不完全适合。
3)高风险项目的实施。
4)从组织结构的角度看,组织结构的文化、人员、沟通性决定了敏捷方法是否适用。与这些相关联的关键成功因素有组织文化必须支持谈判、人员彼此信任、人少但是精干、开发人员所作的决定得到认可、环境设施满足团队成员之间快速沟通的需要。
3、XP方法
敏捷方法中最著名的就是XP,XP是一种轻量、高效、低风险、柔性、可预测、科学且充满乐趣的软件开发方式,适用于小型或中型软件开发团队,并且客户的需求模糊或需求多变。与其它方法相比,其最大的不同如下:
1)在更短的周期内、更早地提供具体、持续的反馈信息。
2)迭代地进行计划编制,首先在最开发迅速生成一个总体计划,然后在整个项目开发过程中不断地发展它。
3)依赖于自动测试程序来监控开发进度,并及早地捕获缺陷。
4)依赖于口头交流,测试盒源程序进行沟通。
5)倡导持续的演化式的设计。
6)依赖于开发团队内部的紧密协作。
7)尽可能达到程序员短期利益和项目长期利益的平衡。
XP由价值观、原则、实践和行为4个部分组成,它们彼此相互依赖、关联、并通过行为贯穿于整个生命周期。XP的核心是其总结的四大价值观,即沟通、简单、反馈和勇气。它们是XP的基础,也是XP的灵魂。XP的5个原则是快速反馈、简单性假设、逐步修改和优质工作。而在XP方法中,贯彻的是“小步快走”的开发原则,因此工作质量决不可打折扣,通常采用测试先行的编码方式来提供支持。
在XP中,集成了12个最佳实践,分别是计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作40小时、现场客户和编码标准。当然,这些所谓的“最佳实践”并非对每个项目都是最佳的,需要项目团队根据实际情况决定。而且,XP方法的有些原则在应用中不一定能得到贯彻和执行。因此,在实际工作中,应该“取其精华,去其糟粕”,把XP方法和其它方法结合起来。
- 1楼guwei40373天前 12:29
- 在2012年5月的软考系统分析师论文考试中,第二题就考了敏捷方法。我当时选了敏捷方法中最成熟的XP编程,并以此结合实际项目主要写了3点,1)小型发布、持续集成 2)结对编程 3)沟通、简单、反馈和勇气 ,最终论文顺利通过。