Scrum (橄榄球队),一种软件开发模式,是一种敏捷开发,近十年来逐渐流行起来。
Scrum 的基本假设
开发软件就像开发新产品。软件产品的最终过程不能从一开始就定义。这个过程需要研发、创造力、反复试验,所以没有固定的过程可以保证项目的成功。
Scrum 将软件开发团队比作足球队。目标明确且最高,熟悉开发过程中所需的最佳模型和技术,具有高度的自主性,密切的沟通与合作,确保每天以高度的灵活性解决各种挑战;每个阶段都有明确的目标进展。
Scrum 过程
Scrum 开发过程通常从 30 天(或更短)的阶段开始,从客户的新产品需求规范开始,开发团队和客户在每个阶段开始时选择要完成的规范的哪些部分,开发团队必须尽最大努力在 30 天后交付成果,团队每天开会 15 分钟,审查每个成员的进度和日程安排,了解遇到的困难,并尝试排除故障。
敏捷方法的优势
Scrum 相对于传统的开发模式有什么优势 。 Scrum 模型的一个显着特点是它响应变化。它可以尽快响应变化。
当传统系统专注于前期计划时,成本、范围和时间等因素被重视,敏捷方法突出团队合作、客户协作和灵活性。随着需求规范的变化,敏捷团队可以保持移动并能够响应这些变化。然而,这并不一定意味着自适应规划策略总是比预测规划策略更好。让我们更详细地比较这两种项目开发策略。
因此,传统的开发(瀑布,也称为计划驱动)方法是线性的,过程的所有阶段都是按顺序发生的。这种方法依赖于可预测的工具和可预测的经验。每个项目都遵循相同的生命周期,包括可行性、规划、设计、施工、测试、生产、支持等,如下所示。
整个项目都是提前规划好的,没有任何改变要求的余地,比如PMI的PMBOK和PRINCE2都是严格的,高度控制的。他们概述了项目规划从开始到结束的不同阶段,并假设您已经预先拥有所需的所有要求和信息。
敏捷被认为是一种更现代的软件开发策略,因为它主要旨在克服更具预测性的瀑布方法的一些缺点。它是一种软件开发模型,鼓励在项目的整个软件开发生命周期中进行迭代开发和测试。
Scrum 流程概述
Scrum 是一个框架,它规定了 角色、 事件、 工件和规则/指南来实现这种心态。换句话说,敏捷是一种心态,而 Scrum 是规定实施敏捷哲学的过程的框架。
Scrum 和敏捷并不相同,但 Scrum 是敏捷过程之一。它们基于迭代开发。通过跨职能团队和自组织团队之间的关联获得敏捷的需求和解决方案,如果实施得当,可以帮助团队通过逐步交付最高价值的产品来解决复杂的问题,同时降低风险。
Scrum 涉及及时检查和适应,领导理念、责任感和自组织增强了团队合作,以及有助于及时交付高质量软件的工程最佳实践。
Scrum 的关键术语
Backlog: 所有可以预测的任务,包括所有功能性和非功能性任务。
Sprint: 一个世代发展的时间段,一般最多30天为一个周期。在此期间,开发团队需要完成一个制定的积压工作,最终的结果是一个增量的、可交付的产品。
Sprint backlog: 需要在一个 sprint 周期内完成的任务。
时间框: 会议的时间段。例如,每个每日 Scrum 会议的时间框是 15 分钟。
Sprint 计划会议: 在每个 sprint 开始之前举行。通常一天(8 小时)。本次会议拟定的任务是:产品负责人和团队成员将待办事项列表分解为小功能模块,决定在即将到来的冲刺中需要完成多少小功能模块,并确定本次产品待办事项列表的任务优先级。此外,会议还需要详细讨论如何按要求完成这些小功能模块。这些模块的工作量以小时计算。
每日 Scrum 会议: 由开发团队成员召开,通常为 15 分钟。每个开发成员需要向 Scrum Master 报告三个项目:今天完成了什么?你遇到过障碍吗?你会怎样做?通过这次会议,团队成员可以相互了解项目的进展情况。
Sprint 评审会议: 每个 Sprint 结束后,团队将 Sprint 的结果呈现给 Product Owner 和其他相关人员。通常,本次会议持续 4 小时。
Sprint Retrospective 发生在 Sprint 评审之后 和下一个 Sprint 计划之前。对于一个月的 Sprint来说,这最多是三个小时的会议。回顾会议基本上是一个“改进”会议,目的是寻找方法和手段来识别潜在的陷阱、过去的错误,并寻找新的方法来避免这些错误,所有的人—— 产品负责人、 Scrum Master、开发团队成员都会参加。 ,并可选择与利益相关者。
Scrum Master: 负责监督整个 Scrum 流程并修改计划的团队成员。
代表公司拥有产品的 产品负责人是Scrum 团队的一部分。但是,产品负责人对团队的其他成员没有权限,就像 Scrum Master一样。产品负责人负责长时间维护产品,并负责实现产品的成功。作为产品负责人,您应该直接与客户和用户、开发团队和其他关键利益相关者进行互动,如下图所示。
Scrum 团队是由个人(通常在 5 到 9 名成员之间)组成的 集合,他们一起工作以交付所需的产品增量。Scrum 框架鼓励团队成员之间进行高水平的沟通,以便团队能够:
- 遵循共同的目标
- 遵守相同的规范和规则
- 互相尊重
Scrum 是如何工作的?
Scrum 过程通过特定的概念和实践区别于其他敏捷过程,分为角色(产品负责人、 Scrum 主管、开发团队和其他利益相关者)、事件、工件和规则三类。
要启动 Scrum 流程,产品负责人会创建一个优先的愿望清单,称为 产品待办列表。在 sprint 计划期间 ,积压工作根据复杂性和业务价值(优先级)进行调整。产品负责人(客户)和开发团队决定将哪些积压项目添加到冲刺中。团队有一定的时间(称为 sprint,通常为两到四个星期)来完成其工作,但它每天开会以评估其进度(每日 Scrum)。在此过程中,Scrum Master 让团队专注于其目标。在冲刺结束时,团队回顾他们的进展,向客户展示工作产品,并回顾哪些进展顺利或他们需要在下一个冲刺中改进哪些方面。然后循环重复。