敏捷开发是一种面临迅速变化的需求快速开发软件的能力
敏捷实践
敏捷软件开发誓言:
1:个体和交互 胜过 过程和文档 2:可以工作的软件 胜过 面面俱到的文档
3:客户合作 胜过 合同谈判 4:响应变化 胜过 遵循计划
原则:(12条)
1 最优先要做的是通过尽早的,持续的交付有价值的软件来使客户满意
2 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。
3 经常性的交付可以工作的软件,交付的间隔可以从几周到几个月,交互的时间间隔越短越好
4 在整个项目开发期间,业务人员和开发人员必须天天都在一起工作
5 围绕被激励起来的个人来构建项目。给他们提供所需要的环境和支持,并且信任他们能够完成工作
6 在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈
7 工作的软件是首要的进度度量标准
8 敏捷过程提倡可持续的开发速度。责任人,开发者和用户应该能够保持一个长期的,恒定的开发速度
9 不断地关注优秀的技能和好的设计会增强敏捷能力
10 简单———使未完成的工作最大化的艺术———是根本的。
11 最好的框架,需求和设计出自于自组织的团队
12 每隔一定时间,团队会在如何才能更有效的工作方面进行反省,然后相应地对自己的行为进行调整
极限编程(eXtreme Programming)
极限编程是敏捷方法中最著名的一个。由一系列简单却相互依赖的实践组成,这些实践结合在一起形成了一个敏捷开发过程。
极限编程实践包括
客户作为团队成员,用户素材,短交付周期,验收测试,结对编程,,测试驱动的开发方法,集体所有权,持续集成,可持续的开发速度,开放的工作空间,计划游戏,简单的设计,重构,隐喻。其中隐喻比较难理解,它是将整个系统联系在一起的的全局视图,是系统的未来景象。
计划
以下内容是对极限编程中计划部分的描述
初始探索
发布计划
迭代计划
任务计划
迭代
结论
测试
单元测试
验收测试