瀑布模型
- 需求分析
- 设计
- 编码
- 实现
- 软件测试
- 完成
- 维护
- 
优点 - 开发的各个阶段比较清晰
- 强调早期计划和需求调查
- 适合需求稳定的产品开发
 
- 
缺点 - 由于开发模型是线性的,增加了开发的风险
- 早期的错误可能要等到开发的后期的阶段才能发现
 
敏捷模型(增量迭代,小步快跑)
- 
XP(极限编程) 
 - 编程方法
- 简单设计:要求用最简单的办法设计实现客户当下的需求
- 结对编程:代码可以由两个人一起完成,一个人主要考虑代码细节,另一个人关注代码整体结构
- 测试驱动开发
- 重构
 
- 小组实践
- 代码集体所有
- 编码标准
- 稳定高速的步伐
- 隐喻:帮助团队里的每一个人理解客户需求
- 持续集成
 
- 交付和管理
- 小规模发布
- 计划游戏:预测在小规模发布的交付日期到来之前我们要完成那些工作
- 完整的团队:项目中所有的成员,包含现场客户
- 现场客户
 
 
- 编程方法
- 
SCRUM 
 - 产品BACKLOG:管理产品需求,按照商业价值将需求作为列表排序
- SPRINT计划会议
- SPRINT BACKLOG
 
DevOps(Development Operations)
- 持续开发
- 持续测试
- 持续集成
- 持续部署
- 持续监控
- DevOps对发布的影响
- 减少变更范围
- 加强发布协调
- 自动化
 


