- 在合作环境下由自组织的团队进行产品迭代开发的过程
- 敏捷软件开发宣言
- 个体和交互胜过过程和工具;
- 可运行的软件胜过面面俱到的文档;
- 客户合作胜过合同谈判;
- 响应变化胜过遵循计划。
- 敏捷产品开发过程的关键要素
- 产品待办列表(Product Backlog); 按优先次序排列系统所需事项清单。
- 敏捷流程(Scrum)); 最流行的敏捷实施框架,按规律步调、固定长度迭代开发软件
- 冲刺(Sprint); 指定完成特定任务,使开发阶段得以进入审查环节的一段时期。
- 产品主管(Product Owner); 代表客户利益,决定代办列表最终内容的那个人。
- 敏捷教练(Scrum Master); 是团队和主管之间的协调者;激发团队的创造力,给团队授权;提升工具生成率;改进工程工具和实践;确保团队取得进展的信息实时更新,让各方成员均可见。
- 敏捷团队(Scrum Team)。 通常由7个人组成,也可增加或减少2个人
- 敏捷产品开发的关键原则
- 我们的首要任务是通过尽早和持续交付有价值的软件来满足客户;
- 即使在开发后期,我们也欢迎需求变更。敏捷流程将这些变更转化为客户的竞争优势;
- 频繁地交付可运行的软件,数周或者数月交付一次,时间间隔越短越好;
- 项目期间,业务人员与开发者共同工作;
- 招揽积极主动的人员来开发项目,为他们提供所需的环境和支持,相信他们做好自己的工作;
- 开发团队里最省时有效的信息传递方式是面对面交流;
- 可运行的软件是衡量进展的主要标准;
- 敏捷流程有利于可持续开发。发起人、开发人员和用户应始终保持一个固定的前进步伐;
- 持续关注先进的技术和优秀的设计,提高敏捷性;
- 简洁————令待办工作最少化的艺术是一切的基础;
- 只有自组织团队才能做出最好的架构和设计;
- 团队定期反思如何提高效率并调整工作流程。
优势
- 快速应对变化、迅速解决问题、运营成本最小
局限性
- 出现范围蔓延、成本和实践预估不准、受人员因素影响较大、适用于快速变化的小型项目