• 敏捷方法是一类软件开发流程的泛称;
• 敏捷方法是相对于传统的瀑布式软件过程提出的;
• 敏捷方法可以用敏捷宣言(4条)、敏捷原则(12条)来概括;
• 敏捷原则通过一系列的敏捷实践来体现出来;
• 敏捷方法有很多种。
敏捷的方法:
• Extreme Programming (XP)极限编程
• Scrum
• Adaptive Software Development (ASD)自适应软件开发
• Crystal Clear and Other Crystal Methodologies水晶方法
• Dynamic Systems Development Method (DSDM)动态系统开发方法
Scrum的定义:
Scrum是一个敏捷开发框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发周期包括若干个小的迭代周期,每个小的迭代周期称为Sprint,每个Sprint的建议长度2到4周。在Scrum中,使用产品Backlog来管理产品或项目的需求,产品Backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum的开发团队总是先开发的是对客户具有较高价值的需求。在每个Sprint中,Scrum开发团队从产品Backlog中挑选最有价值的需求进行开发。Sprint中挑选的需求经过Sprint计划会议上的分析、讨论和估算得到一个Sprint的任务列表,我们称为Sprint Backlog。在每个迭代结束时,Scrum团队将交付潜在可交付的产品增量。
采用敏捷方法得当的话,可以:
• 更加透明; 随时跟踪项目的状态和进展情况,及早发现问题和风险 .
• 快速交付, 每次迭代都能交付可运行的软件.
• 最高风险和最高优先级的需求,最优先进行开发.
• 改善应对变更能力, 减少大量的重计划.
• 改善项目沟通.
• 更好的客户参与, 避免错误的假设.
总之:
• 提高了生产率; 减少“浪费” (不需要的文档,重复工作等) ,项目的每次迭代都有明确的目标.
• 提高客户满意度; 短期内产生成效, 按预期交付软件, 每次迭代结束产生可以运行的软件.
• 改善员工的满意度; 团队精神,减少官僚,能够规划和管理自己的工作,减少“恐慌“,稳定的工作量(可持续的步伐).
采用scrum注意事项:
• 公司和客户一致认为应当使用敏捷方法,双方都能理解敏捷方法.
• 敏捷方法对需求不完整以及经常变换的项目比较有效.
• 项目可以划分成固定时间间隔的迭代, 并且可以冻结正在进行的迭代的范围
• 公司和客户都有能力担当角色尤其是Product Owner 和 Scrum Master.
• 项目的人员结构能够分成6到10人的团队,最好每个工作地点一个小组.(Scrum of Scrums,Scrum的扩展)
• 团队成员能够以自组织的方式工作.
• 项目的合同允许变更.
固定价格的项目可以使用敏捷,但应当尽量避免。
最好在按时间和材料付费或者按月付费的项目中进行使用。
变更项目的范围不需要高级管理层的批准。
敏捷scrum可以汇总为以下要点: