什么是敏捷软件开发方法敏捷软件开发方法其实不是一个具体的过程,而是一个涵盖性术语。用于概括那些应需而生的具有类似价值观的软件开发方式和方法,这些方法一般都具有以人为核心、循环迭代、响应变化等特点,着眼于能高质量地快速交付客户满意的工作软件。敏捷方法产生的背景现代软件的•复杂性–软件越来越复杂•可变性–需求越来越多变•一致性–过程越来越规范敏捷软件开发代表方法•统一开发过程:RationalUnifiedProcess•极限编程:eXtremeProgramming•Scrum方法•敏捷建模:AgileModeling•自适应软件开发:AdaptiveSoftwareDevelopmentetc.一、典型方法:极限编程(XP)极限编程(XP)是一种全新而快捷的软件开发方法。XP团队使用现场客户、特殊计划方法和持续测试来提供快速的反馈和全面的交流。这可以帮助团队最大化地发挥他们的价值。XP诞生于1996年XP是以开发符合客户需要的软件为目标而产生的一种方法论XP是一种以实践为基础的软件工程过程和思想XP认为代码质量的重要程度超出人们一般所认为的程度典型方法:极限编程(XP)XP方法的基础是4个价值观念:沟通——大多数项目的失败源于沟通不畅,所以要进行一些能够推动积极沟通的实践。简单——开发能够满足客户需要的最简单的产品。反馈——开发者必须要获取并且重视来自客户、系统的反馈以及相互之间的反馈。勇气——准备好做出支持其他原则和实践的艰难决定。典型方法:极限编程(XP)XP的适用范围:XP适合规模小、进度紧、需求变化大、质量要求严的项目。它希望以最高的效率和质量来解决用户目前的问题,以最大的灵活性和最小的代价来满足用户未来的需求,XP在平衡短期和长期利益之间做了巧妙的选择。世界500强公司中成功应用XP的公司有:Ford,Daimler-Chrysler,FirstUnionNationalBank,IBM,HP等等。典型方法:极限编程(XP)不宜采用XP的项目:中大型的项目(项目团队超过10人);重构会导致大量开销的应用;需要很长的编译或者测试周期的系统;不容易进行测试的应用;团队人员异地分布的项目;不能接收XP文化的组织和团队。极限编程(eXtremeProgramming)XP在4个价值观之上,又定义了12个的必须遵循的实践:1.完整团队:XP项目的所有参与者(开发人员、客户、测试人员等)一起工作在一个开放的场所中,他们是同一个团队的成员。这个场所的墙壁上随意悬挂着大幅的、显著的图表以及其他一些显示他们进度的东西。每个人都了解对方的工作状态,程序员们都处在适合于激烈地进行讨论的位置上。客户是Team成员,在开发现场和开发人员一起工作。客户是指定义产品的特性并排列这些特性优先级的人或者团体.极限编程(eXtremeProgramming)2.计划游戏:计划是持续的、循序渐进的。每2周,开发人员就为下2周估算候选特性的成本,而客户则根据成本和商务价值来选择要实现的特性。在每次发布和每次迭代的开始,开发人员基于在最近一次迭代或者最近一次发布中他们所完成的工作量,为客户提供一个预算。客户选择那些所需的成本合计起来不超过该预算的用户素材。依据这些简单的规则,采用短周期迭代和频繁的发布,很快客户和开发人员就会适应项目的开发节奏。客户会了解开发人员的开发速度。基于这种了解,客户能够确定项目会持续多长时间,以及会花费多少成本。3.客户测试:作为选择每个所期望的特性的一部分,客户可以根据脚本语言来定义出自动验收测试来表明该特性可以工作。4.简单设计:团队保持设计恰好和当前的系统功能相匹配。它通过了所有的测试,不包含任何重复,表达出了编写者想表达的所有东西,并且包含尽可能少的代码。标准(依重要性):–通过所有测试–可读性高的代码–避免重复–最少数量的类或方法。极限编程(eXtremeProgramming)5.结对编程:所有的产品软件都是由两个程序员、并排坐在一起在同一台机器上构建的,让两个人共同设计和开发代码的实践。结对者是全职合作者,轮流执行键入和监视;这提供了持续的设计和代码评审。XP的必须组成部分,XP中最有争议的规则之一。不是两个人做一个人的事情。极限编程(eXtremeProgramming)6.测试驱...