瀑布模型
- 特点
- 强调文档,每阶段的输出作为下阶段的输入,文档是各个阶段衔接的唯一信息。
- 难以应对客户需求的变化。
- 要到开发的后期,才可以看到软件的“模样”。
敏捷开发
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。
敏捷开发总的流程如下:
- 需求规划和分期
- 需求评审
- 需求讲解
- 方案评审
- 每日晨会
- 性能测试
- CodeReview
- Demo
- 测试阶段
- 线上Bug修改流程
敏捷的核心实践方法:
- 增加迭代式开发
定期增量产出可工作的软件并收集反馈,然后做出相应的调整。 - 自组织团队
根据现实情况调整团队,而不是只是严格的遵照计划和流程来开发。
- 增加迭代式开发
敏捷开发只写有价值(business value)的文档。在敏捷开发中,需求文档、概要设计(改成架构设计)文档通常是不能省略的。