敏捷软件开发
维基百科,自由的百科全书
敏捷软件开发又稱敏捷开发,是一種從1990年代開始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于「非敏捷」,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用。
目录 |
[编辑] 词源
敏捷一词来源于2001年初美国犹他州雪鸟滑雪胜地的一次敏捷方法发起者和实践者(他们发起组成了敏捷联盟)的聚会。
[编辑] 价值观
雪鸟会议共同起草了敏捷软件开发宣言。其中最重要的部分就是对一些与会者一致同意的软件开发价值观的表述:
- 人和交互重于过程和工具。
- 可以工作的软件重于求全责备的文档。
- 客户协作重于合同谈判。
- 随时应对变化重于循规蹈矩。
其中位于右边的内容虽然也有其价值,但是左边的内容最为重要。
[编辑] 原则
宣言中还包括以下原则:
- 对我们而言,最重要的是通过尽早和不断交付有价值的软件满足客户需要。
- 我们欢迎需求的变化,即使在开发后期。敏捷过程能够驾驭变化,保持客户的竞争优势。
- 经常交付可以工作的软件,从几星期到几个月,时间尺度越短越好。
- 业务人员和开发者应该在整个项目过程中始终朝夕在一起工作。
- 围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。
- 在开发小组中最有效率也最有效果的信息传达方式是面对面的交谈。
- 可以工作的软件是进度的主要度量标准。
- 敏捷过程提倡可持续开发。出资人、开发人员和用户应该总是维持不变的节奏。
- 对卓越技术与良好设计的不断追求将有助于提高敏捷性。
- 简单——尽可能减少工作量的艺术至关重要。
- 最好的架构、需求和设计都源自自我组织的团队。
- 每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。
[编辑] 方法列表
目前列入敏捷方法的有:
- 敏捷数据库技术,AD/Agile Database Techniques
- 敏捷建模,AM/Agile Modeling
- 自适应软件开发,ASD/Adaptive Software Development
- 水晶方法,Crystal
- 特性驱动开发,FDD/Feature Driven Development
- 动态系统开发方法,DSDM/Dynamic Systems Development Method
- 精益软件开发,Lean Software Development
- Scrum
- 测试驱动开发,TDD/Test-Driven Development
- XBreed
- 极限编程,en:XP/en:Extreme Programming