敏捷开发的定义
以用户的需求进化作为核心,采用迭代、循序渐进的方法进行软件开发。
换句话说就是把一个大的项目分为多个相互联系,但也可以独立运行的小项目(story?
),并分别完成,在这个过程中软件一直处于可使用的状态。
应用场景和特点
在软件项目的构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。
开发宣言
个体和交互 胜过过程和工具
可以工作的软件 胜过 面面俱到的文档
客户合作 胜过 合同谈判
响应变化 胜过 遵循计划
注:虽然右项也有价值,但是我们认为左项具有更大的价值。
开发原则
- 快速迭代
- 让测试人员和开发者参与需求讨论
- 编写可测试的需求文档
开始就用“用户故事”(user story)的方法来编写需求文档。 - 多沟通,尽量减少文档
- 做好产品原型
建议使用草图和模型来阐明用户界面,并不是所有人都可以理解一份复杂的文档,但人人都会看图。 - 及早考虑测试。