Scrum 简介 1 Scrum概述 1.1 什么是Scrum? Scrum (英式橄榄球争球队), 软件开发模型是敏捷开发的一种,在最近的一两年内逐渐流行起来。Scrum是一种灵活的软件管理过程。这一过程是迅速、有适应性、自组织的,它发现了软件工程的社会意义,使得团队成员能够独立地集中在创造性的协作环境下工作。Scrum才用了经验方法,承认问题无法完全理解或定义,关注于如何使得开发团队快速推出和响应需求能力的最大化。因此,Scrum的一个关键原则就是承认客户可以在项目过程中改变主意,变更他们的需求,而预测式和计划式的方法并不能轻易解决这些不可预见的需求变化。 1.2 Scrum 的基本假设 开发软件就像开发新产品,无法一开始就能定义软件产品最终的规程,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证专案成功。Scrum 将软件开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具备的最佳典范与技术,具有高度自主权,紧密地沟通合作,以高度弹性解决各种挑战,确保每天、每个阶段都朝向目标有明确的推进。 Scrum 开发流程通常以 30 天(或者更短的一段时间)为一个阶段,由客户提供新产品的需求规格开始,开发团队与客户于每一个阶段开始时挑选该完成的规格部分,开发团队必须尽力于 30 天后交付成果,团队每天用 15 分钟开会检查每个成员的进度与计划,了解所遭遇的困难并设法排除。 1.3 Scrum 的基本思想是: 迭代式软件开发:通过将整个软件交付过程分成多个迭代周期,帮助团队更好地应对变更、风险,实现增量交付、快速反馈。 两层项目规划:基于远粗近细、渐进明细的特点,通过将概要的项目整体规划和详细的近期迭代计划有机结合,帮助团队有效提高计划的准确度、资源管理能力和项目的按时交付能力。 整体团队协作:通过关注保持整个团队可持续发展的工作节奏、每日站立会议和自组织的工作分配,实现团队的高效协作和工作,实现提高整个团队生产力的目的。 持续集成:通过进行更频繁的软件集成,实现更早的发现和反馈错误,降低风险,并使整个软件交付过程变得更加可预测和可控,以交付更高质量的软件。 1.4 Scrum 较传统开发模型的优点 Scrum模型的一个显著特点就是响应变化,它能够尽快地响应变化。 下面的图片使用传统的软件开发模型(瀑布模型、螺旋模型或迭代模型)。随着系统因素(内部和外部因素)的复杂度增加,项目成功的可能性就迅速降低。 下图是Scrum模型和传统模型的对比:...