敏捷方法论






4.60/5 (8投票s)
敏捷方法
引言
瀑布模型遵循以阶段为单位的应用程序开发,每个阶段都有检查点和交付文档。它提倡严格的项目管理、策略和流程来跟踪状态。主要缺点是它需要在启动项目之前对项目有 80% 以上的了解,这在大多数情况下是不可能的。由于需求不稳定和对业务理解的感受,使用这种方法的软件项目中有 80% 无法达到其目标。
典型的瀑布模型
敏捷方法论
敏捷方法论有小的迭代盒子而不是阶段。每次迭代的输出将是生产发布的可交付成果,并且可以进行评估并获得早期反馈。
敏捷方法是对当时普遍使用的重量级文档驱动的软件开发方法(例如瀑布模型)的重大突破。
敏捷方法指的是企业层面不同部门之间更多的协作和互动,并通过个人贡献交付成功的产品。
敏捷方法拥抱迭代。小团队与利益相关者一起工作,定义快速原型、概念验证或其他视觉手段来描述要解决的问题。团队定义迭代的需求,开发代码,并定义和运行集成测试脚本,用户验证结果。验证发生在开发过程的早期,早于瀑布模型,这使得利益相关者可以在需求仍然相对容易更改时对其进行微调。
它提倡自适应规划、进化开发和交付、时间盒迭代方法,并鼓励对变化的快速和灵活的响应。
XP (极限编程)
它提倡在短开发周期内频繁“发布”,每次发布后都会进行多次迭代。当产品发布有足够的功能来满足用户时,团队终止迭代周期并发布软件。
极限编程的其他要素包括:结对编程、持续集成、仅添加特定版本所需的特性。
用户编写一个故事,这有助于团队估计构建发布所需的时间并定义验收测试。用户是 XP 团队的一部分,并在构建软件时添加详细的需求。这使得需求能够随着用户和开发人员定义产品外观而演变。
- 持续集成: 经常集成,每天至少一次,使用自动化持续集成工具
- 结对编程: 结对编程以便在编码时进行广泛的代码审查
- 项目速度: 速度是衡量项目完成工作量的指标。此重要指标驱动发布规划和进度更新。
Scrum
Scrum 是一种团队合作开发产品的方法,其中需求在开发过程中快速变化。使用 Scrum 进行的产品开发以小块进行,每个块都建立在先前创建的块之上。一次构建一个小的产品块鼓励创造力,并使团队能够响应反馈和变化,从而准确地构建所需的内容。与 XP 不同,Scrum 方法包括管理和开发流程。
- 冲刺: 短开发过程
- 站立会议: 每日 10 分钟的会议,讨论当天要完成的工作状态、前一天的进展以及必须清除的障碍
- Scrum Master: ScrumMaster 是负责管理 Scrum 项目的人
- 冲刺待办事项列表: 冲刺待办事项列表是分配给冲刺但尚未完成的待办事项列表。
- 燃尽图: 此图表每天更新,显示冲刺中剩余的工作量。燃尽图用于跟踪冲刺进度,并决定何时必须从冲刺待办事项列表中删除项目并推迟到下一个冲刺。
- 产品待办事项列表: 产品待办事项列表是完整的需求列表
参考文献
- http://en.wikipedia.org/wiki/Extreme_programming
- http://en.wikipedia.org/wiki/Scrum_%28development%29
- http://www.scrum.org/
- https://codeproject.org.cn/Articles/4798/What-is-SCRUM
