敏捷方法是一种以人为核心、迭代、循序渐进的开发方法,适用于一开始并没有或不能完整地确定出需求和范围的项目,或者需要应对快速变化的环境,或者需求和范围难以事先确定,或者能够以有利于干系人的方式定义较小的增量改进。
敏捷方法,也叫适应型生命周期、或者变更驱动方法。
在软件项目的敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
敏捷方法的目的在于应对大量变更,获取干系人的持续参与。敏捷方法里迭代很快(通常2~4剧迭代1次),而且所需时间和资源是固定的。虽然早期的迭代更多地聚焦于H。划活动,但通常在每次迭代中都会执行多个过程。
敏捷方法是一系列方法的总称,虽然这些方法的名称、理念、过程、术语都不尽相同,但相对于“非敏捷”而言,它们更强调开发团队与用户之间的紧密协作、面对面
的沟通、频繁交付新的软件版本、紧凑而自我组织型的团队等,也更注重人的作用。
敏捷方法强调,让客户满意和软件尽早增量发布;小而高度自主的项目团队;非
正式的方法;最小化软件工程工作产品以及整体精简开发。产生这种情况的原因是,在绝大多数软件开发过程中,提前预测哪些需求是稳定的和哪些需求会变化非常
困难;对于软件项目构建来说,设计和实现是交错的;从指定计划的角度来看,分析、设计、实现和测试并不容易预测;可执行原型和部分实现的可运行系统是了解
用户需求和反馈的有效媒介。
目前,主要的敏捷方法有极限编程(eXtreme
Programming,XP)、自适应软件开发(Adaptive Software
Development,ASD)、水晶方法(Crystal)、特性驱动开发(Feature Driven
Development,FDD)、动态系统开发方法(Dynamic Systems Development
Method,DSDM)测试驱动开发(Test-Driven Development,TDD)、敏捷数据库技术(Agile
Database Techniques,AD)和精益软件开发(Lean Software
Development)和Scrum等。虽然这些过程模型在实践上有差异,但都是遵循了敏捷宣言或者是敏捷联盟所定义的基本原则。
敏捷方法是一
种以人为核心、迭代、循序渐进的开发方法。在敏捷方法中,软件项目的构建被切分成多个子项目,各个子项目成果都经过测试,具备集成和可运行的特征。在敏捷
方法中,从开发者的角度来看,主要的关注点有短平快的会议、小版本发布、较少的文档、合作为重、
客户直接参与、自动化测试、适应性计划调整和结对编程;从管理者的角度来看,主要的关注点有测试驱动开发、持续集成和重构。
与UP相比,敏捷方法的周期可能更短。敏捷方法在几周或几个月的时间内完成相对较小的功能,强调的是能尽早将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强,并且更加强调团队中的高度协作。相对而言,敏捷方法主要适用于以下场合:
(1)项目团队的人数不能太多,适合于规模较小的项目。
(2)项目经常发生变更。敏捷方法适用于需求萌动并且快速改变的情况,如果系统有比较高的关键性、可靠性、安全性方面的要求,则可能不完全适合。
(3)高风险项目的实施。
(4)从组织结构的角度看,组织结构的文化、人员、沟通性决定了敏捷方法是否适用。与这些相关联的关键成功因素有组织文化必须支持谈判、人员彼此信任、人少但是精干、开发人员所作的决定得到认可、环境设施满足团队成员之间快速沟通的需要。
敏捷宣言,也叫做敏捷软件开发宣言,正式宣布了对四种核心价值和十二条原则,可以指导迭代的以人为中心的软件开发方法。
敏捷宣言强调的敏捷软件开发的四个核心价值是:
(1)个体和互动高于流程和工具
(2)工作的软件高于详尽的文档
(3)客户合作高于合同谈判
(4)响应变化高于遵循计划 敏捷选择提出的12条原则已经应用于管理大量的业务以及与IT相关项目中,包括商业智能(BI)。
12原则包括:
(1)通过早期和连续型的高价值工作交付满足“客户”。
(2)大工作分成可以迅速完成的较小组成部门。
(3)识别最好的工作是从自我组织的团队中出现的,
(4)为积极员工提供他们需要的环境和支持,并相信他们可以完成工作。
(5)创建可以改善可持续工作的流程。
(6)维持完整工作的不变的步调。
(7)欢迎改变的需求,即使是在项目后期。
(8)在项目期间每天与项目团队和业务所有者开会。
(9)在定期修正期,让团队反映如何能高效,然后进行相应地行为调整。
(10)通过完车的工作量计量工作进度。
(11)不断地追求完善。
(12)利用调整获得竞争优势。
posted @
2017-10-23 18:51
简练
阅读(
641)
评论()
编辑
收藏
举报