敏捷开发
简介:敏捷开发是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于"非敏捷",更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用。
组成方法:敏捷开发由几种轻量级的软件开发方法组成,它们包括:极限编程(XP),Scrum,精益开发(Lean Development),动态系统开发方法(DSDM),特征驱动开发(Feature Driver Development),水晶开发(Cristal Clear)等等。
敏捷开发介绍—极限编程XP:
(1)主要目的是降低需求变化的成本
(2)定义了一套简单的开发流程
(3)核心做法:
小规模,频繁的版本发布,短迭代周期。
测试驱动开发(Test-driven development)
结对编程(Pair programming)
持续集成(Continuous integration)
每日站立会议(Daily stand-up meeting)
敏捷开发原则和方法:
(1)迭代式开发:即整个开发过程被分成几个迭代周期,每个迭代周期是一个定长或不定长的时间块,每个迭代周期持续的时间一般较短,通常为一到六周。
(2)增量交付:产品是在每个迭代中欧其结束时被逐步交付使用,而不是在整个开发过程结束的时候一次性交付使用。
(3)开发团队和用户反馈推动产品开发:敏捷开发方法主张用户能够全程参与到整个开发过程中。这使需求变化和用户反馈能被动态管理并及时集成到产品中。同时,团队对于用户的需求也能及时提供反馈意见。
(4)持续集成:新的功能或需求变化总是尽可能频繁地被整合到产品中。一些项目是在每个迭代周期结束的时候集成,有些项目则每天都在这么做。
(5)开发团队自我管理:拥有一个积极的、自我管理的、具备自由交流风格的开发团队,是每个敏捷项目必不可少的条件。人是敏捷开发的核心。敏捷开发总是以人为中心建立开发的过程和机制,而非把过程和机制强加给人。