Scrum敏捷开发简介

article/2025/9/11 8:48:32

       Scrum是一种灵活的敏捷软件开发管理过程。这个名词来源于英式橄榄球。Scrum方法由Ken Schwaber和 Jeff Sutherland 提出,它将软件开发团队比作橄榄球队,全队有明确的最高目标:发布产品的重要性高于一切。团队高度自治,队员们熟悉开发过程中涉及到的各种技术,紧密合作,确保每个迭代都朝着最高目标推进。而且每隔2至6周,每个人都能看到能实际工作的软件,并且据此决定是发布这个版本还是继续开发以加强它的功能。


       对于功能需求可能经常发生变化的项目来说,Scrum是它们最为理想的选择之一。在一个采用Scrum的项目中,首先要将所有需要完成的工作列在一个产品待开发项(Product Backlog)中,项目开发过程中需求的改变也要写进去。在每个迭代(Sprint)开始之前,要开一个迭代计划会议(Sprint Planning Meetting)。在会上,产品责任人(Product Owner)为 Product Backlog中的各功能需求确定优先级(或者是在会前完成),随后Scrum开发团队按照优先级,从Product Backlog中挑选出他们认为能在本次迭代中完成的任务,把它们从Product Backlog中挪到Sprint Backlog中来。在Sprint进行过程中,Scrum团队每一天都要举行一个简短的每日立会(Daily Stand-up Meeting),以便团队成员了解开发进度。Sprint结束之后,需要开评审会(Review Meeting)和反思会(Restrospective Meeting)。开发团队在评审会上把这个Sprint的开发成果展示给大家看;而在反思会上,团队成员们会回顾过去的这个Sprint,从中总结经验和教训。



       那么什么是Product Backlog?什么是Sprint Backlog?

       产品待开发项(Product Backlog):根据初始需求分解出的任务列表,包括功能性的和非功能性的所有功能; 由Product Owner为Product Backlog中的任务确定优先级别;当开发团队开始做某个任务的时候,再精确定义和分解这个任务。

       Product Backlog是产品所要具备的所有功能的总纲。当一个项目刚刚开始时,没人能够事先预见到所有的任务和需求,并为之做一个充分、详细而又包罗万象的计划。可行的方式是,先为一个项目写下所有它应该具备的显著特征和功能,数量不必很多,最好够让团队的第一个Sprint有活可干。随着Sprint的进行,生产出可发布的产品增量,客户对产品的直观认识也随之加深,他们可以据此建议更改或者添加产品Backlog中的任务。

       在Sprint计划会议上,产品负责人人为产品Backlog中的任务确定优先级,并向Scrum团队描述这些任务。Scrum团队随后根据团队整体情况,确定他们能在这个即将到来的Sprint中完成哪些功能,并把它们挪到Sprint Backlog中去。


       迭代计划会(Sprint Planning Meeting) :在每个Sprint开始之前,需要召开Sprint计划会议,一般为4至8个小时。参加人员有产品责任人、Scrum Master、Scrum团队和其他感兴趣的人,比如管理层人员和客户代表。Product Owner从产品Backlog中挑选优先度高的任务,并与Scrum团队一起决定在这个Sprint中需要完成多少功能;Scrum团队将这些任务分解成小的功能模块; Scrum团队成员详细讨论如何能按需求完成这些功能模块,并估计完成每个功能模块所需的大概时间。


       每日立会(Daily Stand-up Meeting):既团队每日例会,条件允许的话,每天都应该在同样的时间和地点,所有成员站立着举行。由于是站立的状态开会,因此时间比较短,一般为15分钟左右。这个会议最好是在每天的早晨开,有利于团队成员们安排好当天的工作计划。只有团队成员可以在每日Scrum会议上发言,其他人员如果对项目进度有兴趣也可以参加,但只能旁听而不能发言。

       会议由Scrum Master主持,Scrum团队的所有成员轮流回答上图中的三个问题,即:

    1. 昨天我完成了什么工作;
    2. 今天我打算做什么;
    3. 我遇到了什么障碍。
      通过这三个问题,团队成员之间可以彼此相互熟悉工作内容,充分了解项目进度,相互帮助解决问题。Scrum Master除了倾听团队成员的发言外,他还有责任设法解决团队成员在会上提出的困难,尽快扫除阻碍他们工作的障碍。即使有的问题Scrum Master没有能力解决,例如某些技术细节问题等,他也应该找到团队中或其他团队的来帮助快速的解决问题。另外,还有两点需要注意的地方:其一,这是团队成员之间的交流,也是相互的承诺,并不是用来向老板汇报工作进度的;其二,这也不是一个专门用于解决各种问题的会议,成员们遇到的问题可以在会上提出来,而有能力解决这些问题的人可以在会后帮助他们解决问题。

       Sprint评审会(Review Meeting):Sprint结束时召开;由开发团队展示这个Sprint中完成的功能;长度为两个小时左右;不需要PPT;一般是已完成的功能的Demo; 谁都可以参加:客户、管理层、Product Owner、其他开发人员等等。
       在每个Sprint结束时,应该组织一个Sprint评审会议。Scrum开发团队将在会上展示他们在这个Sprint中所做的工作。一般采用向大家演示产品新功能的方式来展示。
       相对来说,Sprint评审会议不必很正式。通常不需要用到PPT幻灯片,而且长度最好控制在两个小时之内。也就是说,不要让Sprint评审会议成为Scrum团队的负担,他们不必花太多时间来准备这个会议。
       Sprint评审会议的参与者,可以包括所有对该产品感兴趣的人:产品责任人,Scrum团队,利益相关者,管理层人员,客户,甚至来自其他项目的开发人员等等。

       在Sprint评审会议上,Scrum团队用Demo的形式展示产品的新功能之后,与会人员依据在Sprint计划会议上确定的本Sprint的目标来评审具备了这些新功能的产品。


       为什么一定要用Demo的形式来展示产品的新功能呢?因为这种方式有很多好处:
       首先,参与会议的人都能直观的看到Scrum团队的工作成果;其次,利益相关者们可以据此提出更切合实际的反馈意见;第三,为了完成Demo,团队会努力完成并发布那些功能,即使只是发布在测试环境下,也比没完成的好。如果不做Demo,也许不少功能会停留在“已完成99%”的阶段。相比较起来,在有Demo的情况下,也许“已完成”的功能数量会相对少一些,但它们是确确实实完成了的,否则,那些“99%”的貌似完成的功能势必还要拖到下个Sprint来解决。
       假如有一个刚从传统的开发模式转而采用Scrum的团队,由于不习惯这种自我约束、自组织的方式,在Sprint中并没做多少工作,那么在会上演示的时候,他们会觉得很尴尬。没准老板看到他们花了这么多时间只做了这么少的工作而感到很生气。发生这种情况当然是大家都不想看到的,但良药苦口,在下一个Sprint中,这个团队肯定会吸取教训,他们会明白无论什么情况下都必须Demo,那么他们必然会很好的完成这个Sprint并演示给大家看。


http://chatgpt.dhexx.cn/article/Kw4Br9l9.shtml

相关文章

敏捷方法论—scrum

敏捷方法论—scrum 敏捷方法scrum,相对于传统的瀑布式开发,的核心观念除了增量和迭代两个核心词外,核心的观念差异基本就是敏捷宣言的理念: 1.通过迭代式增量应对产品需求变化和开发技术变化。 2.注重个体和互动,以团队个体的主观…

软件工程实践: 敏捷开发流程图(scrum)

软件开发模式之敏捷开发(scrum) [原文]https://blog.csdn.net/xiajun2356033/article/details/81513957 [RbY本文转发时已对原文适当整理并纠错;] 转载说明: 敏捷开发(scrum), 从上世纪90年代开始在国外提出, 2010年以后逐渐引…

敏捷开发框架—Scrum

Scrum 1 什么是Scrum?2 Scrum的3种角色3 Scrum 敏捷开发流程 1 什么是Scrum? Scrum是一个敏捷开发框架,是一个增量的,迭代的开发过程。在这个开发框架中,整个开发周期包括若干个小的迭代周期,每个小的迭代…

敏捷开发scrum详解 敏捷项目管理流程

随着互联网的兴起,用户对线上软件的依赖度越来越高,从而导致用户对软件的需求越来越多,所以软件的更新迭代速度越来越快。对于互联网公司来说,速度成了企业竞争制胜的关键因素,一方面用户的需求在不断变化,另一方面采用传统开发模式的互联网哦你公司难以满足这些需求,所…

什么是敏捷管理及scrum方法

敏捷管理是规划和指导项目流程的迭代方法。现实的感受就是产品交付周期变快了,每个项目迭代通常是安排在两周内。 Scrum是敏捷项目管理方法中的一种方法。是一种迭代式增量软件开发过程。 Scrum主要角色包括主管、产品负责人、开发团队。主管的职责与项目经理类似&a…

敏捷开发流程【Scrum】

敏捷是项目管理里的一种方法论,适用于“范围和需求都不明确”的项目,采用小步快跑的方式,每1–4周就完成一次迭代并投入使用、收集反馈,然后再次迭代,从而不断逼近真实需求的一种方法论! Scrum是敏捷里最具…

什么是敏捷管理 常用的敏捷Scrum会议有哪些

企业敏捷性的目的是为了快速适应市场变化,如果团队不能针对竞争威胁和客户需要尽快做出调整,从而导致的失败或耽搁对公司来说代价高昂。因此,敏捷理念必然带给了团队切实好处,否则它的应用也不会如此广泛。那么敏捷常用的会议使用…

使用Scrum进行敏捷项目管理

Scrum是一种敏捷方法,旨在指导团队进行产品的迭代和增量交付。通常被称为“敏捷项目管理框架”,其重点是使用经验过程,使团队能够快速,有效,有效地做出改变。传统的项目管理方法确定了需求,以控制时间和成本…

敏捷项目管理Scrum方法实践

敏捷项目管理Scrum方法实践 1.Scrum实践概述 Scrum是迭代式增量软件开发的一种流程,是敏捷方法论中的重要框架之一,通常应用于敏捷软件开发。Scrum团队主要由敏捷教练、产品负责人(代表利益客户)、开发团队组成。 首先产品负责人…

什么是SCRUM敏捷开发

Scrum 是用于开发、交付和持续支持复杂产品的一个框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是一至四周。在Scrum中&#xff…

八分钟敏捷开发(scrum)扫盲

敏捷开发(scrum)是一种软件开发的流程,强调快速反应、快速迭代、价值驱动。 Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;运用该流程,你就能看到你团队高效的工作。 敏捷开发的特点就…

敏捷开发之Scrum扫盲篇

现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中的各个环节&#x…

敏捷开发scrum模型

一、 什么是敏捷? Agile在中文的字面意思是敏捷、灵活、利落。相应的“敏捷开发”也可以通俗地理解成为快速高效地进行开发。但敏捷不是开发的具体方法,它是一套能够指导企业进行高效开发的价值观与原则。 二、产生 瀑布模型 瀑布开发就相当于服务员将…

什么是敏捷开发(Scrum)?

什么是敏捷开发(Scrum)? 进入我的博客阅读体验更好哦!博客文章链接:什么是敏捷开发(Scrum) (lxq.icu) 何为Scrum Scrum是一个轻量级框架,它可以帮助人们、团队和组织通过针对复杂问题的自适…

Scrum 敏捷项目管理

在理解敏捷项目管理之前,我们先看一下它与传统项目管理之间有什么联系和差异。 传统项目管理模式:一般指瀑布模式。它必须完成上一阶段工作并通过检验才能启动下一阶段工作,将整个项目过程划分为五大过程组。 要求在项目建设时,…

scrum 和敏捷介绍(概念、流程、自己的理解)

scrum 和敏捷介绍 背景 本文介绍 scrum 框架,基于自己的理解,有些可能不够准确,请评论反馈 scrum是敏捷中的一种,比较出名的一种,但并不是所有 scrum的规模是比较小的,通常都是小团队10人内的 很多公司…

什么是scrum敏捷项目管理

在项目管理中,不少企业和项目团队也发现传统的项目管理模式已不能很好地适应今天的项目环境的要求。因此,敏捷项目管理应运而生,本文将为大家介绍Scrum敏捷项目管理以及应用方法。 1. 什么是Scrum敏捷项目管理 敏捷项目管理作为新兴的项目管…

敏捷开发(scrum)简介

敏捷开发(scrum)是一种软件开发的流程,强调快速反应、快速迭代、价值驱动。Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;运用该流程,你就能看到你团队高效的工作。 一、四大价值观&am…

Python面试题

1、用一条SQL语句查询出每门课都大于80分的学生姓名。 select name, min(fenshu) from stu; select name, min(fenshu) from stu group by kecheng; select name, min(fenshu) from stu group by kecheng having min(fenshu)>80 select name from(select name, min(fens…

110道Python面试题

作者 | 哈哈 来源 | python爬虫人工智能大数据(ID:pylearn) 1、一行代码实现1--100之和 利用sum()函数求和 2、如何在一个函数内部修改全局变量 函数内部global声明 修改全局变量 3、列出5个python标准库 os:提供了不少与操作系统…