Agile Process (敏捷的开发流程) 是一种软件开发流程的泛称,几项共通的特性 :
- 客户与开发人员形成密切合作的团队,因为客户无法于初期定义完整的规格,而开发人员于开发过程中也常常无法知悉外在环境或业务的变动,所以需要两者密切合作方能开发适用的软件。
- 项目最终的目标是可执行的程序,因此所有的中间产品必须经过审慎评估,确认有助于最终目标,才需要制作中间产品。
- 采用 Iterative 与 Incremental 方式分阶段进行,密集 review 是否符合需求。
- 流程可以简单,但规划与执行必须严谨。
- 强调团队合作,赋予高度的责任,团队有自主权得以因应变化做调整
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法 。在敏捷开发中,项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征
敏捷开发原则(Principles)
- 最高目标是通过快速的和经常的发布软件满足客户的需要
- 提交软件的周期为几个星期到几个月
- 产生正确的软件是衡量进度的首要标准
- 主动接受需求的改变而不是拒绝
- 商务人员和开发人员工作在一起
- 个人必须有动力,要创造环境支持他们的要求,信任他们
- 最有效的交流方法是面对面的交流
- 最好的结构,需求和设计来自于自组织的团队(self-organizing team),允许任何人提出想法和建议
- 持续改进设计和编码
- 鼓励正常工作,减少长时间加班
- 保持简单,减少不必要的部分,认识到简单的设计比复杂的设计更难(simple design is harder to produce)
- 定期调整过程,获得更高效率