- 敏捷开发
- 敏捷宣言
2001年,Kent Deck等人宣布敏捷联盟,签署敏捷软件开发宣言
目标:软件让客户满意并且尽快发布
敏捷开发方法
极限编程(XP:extreme programming)
自适应软件开发(ASD:Adaptive Software Development)
水晶方法(Crystal)
特性驱动方法(FDD:Feature-Driven Development)
动态系统开发方法(DSDM:Dynamic Systems Development Method)
测试驱动开发(TDD:test-driven development)
敏捷数据库支持(AD:Agile database support)
精益软件开发(LSD:Lean software developmen)
敏捷方法的特点
开发者
短平快的会议
小版本发布
较少的文档
合作为主
客户直接参与
自动化测试
适应性计划
结对编程
管理者
测试驱动开发
持续集成
重构
缺点
客户参与依赖于客户的意愿和客户代表的局限性
敏捷要求频繁和良好的沟通,要求团队每个人都全身心投入
对系统的变更进行优先级排序比较困难
对系统的简洁性执行没有足够的时间和精力
敏捷适用场景
项目团队人数不多
项目规模较小
项目经常发生变更
高风险项目的实施
要求人员的充分沟通、人员彼此信任、人员所做的决定得到认可
XP方法
与其它方法相比,最大的不同
在更短周期内获取更加具体的、持续的反馈信息
先生成一个总体计划,然后在整个项目开发过程中不断地发展它
依赖于自动测试程序监控开发进度、及早发现缺陷.
依赖口头交流和沟通
倡导持续的设计
依赖于开发团队内部紧密协作
尽可能满足程序员短期利益和项目长期利益
4个组成
价值观
原则
实践
行为
5个原则
快速反馈
简单假设
逐步修改
提倡更改
优质工作
12个实践
计划游戏
小型发布
隐喻
简单设计
测试先行
重构
结对编程
集团代码所有制
持续集成
每周工作40小时
现场客户
编码标准