什么是敏捷开发(Scrum)?

article/2025/9/11 10:48:05

什么是敏捷开发(Scrum)?

进入我的博客阅读体验更好哦!博客文章链接:什么是敏捷开发(Scrum) (lxq.icu)

何为Scrum

Scrum是一个轻量级框架,它可以帮助人们、团队和组织通过针对复杂问题的自适应解决方案来产生价值。其作为一种包含迭代和增量开发原则的简单开发方法,越来越多的被用于如今的项目开发管理中。

Scrum为何能脱颖而出?

一个段子看传统管理方法的缺陷

下面是猪和鸡打算合伙开店却不欢而散的一段对话:

🐔:猪猪,咱们合伙开个餐厅吧。
🐷:行,不过餐厅卖什么呢?
🐔:就卖火腿和鸡蛋吧。
🐷:!!!我要割肉你却只要下蛋,我不干。

段子其实体现的就是付出与收益不平等的问题,类比到项目开发中,鸡就是项目经理,猪就是项目成员。项目经理不参与具体的开发却往往掌握较大的权利,可以频繁且随意的更改需求或增加任务,使得需要全力投入的项目成员苦不堪言。不仅项目组达成不了共识,而且组员常常疲于奔命,应付了事。这样开发出的项目或许不会延期,但质量却得不到保证。

Scrum所具有的优势

Scrum不同于传统的开发模式,其主打的就是自组织,是一种能积极调动项目开发人员自主性的同时兼顾项目的透明性和效率的管理模式。Scrum通过在项目经理和项目开发人员间引入一个称为“Scrum Master”的角色,有效地解决了项目经理在项目开发中权利过大的问题,增大了项目开发人员的话语权。同时Scrum还使用迭代的工作方式,一方面在组内进行定期总结,另一方面在组外进行定期汇报使得项目兼具效率、质量以及透明性。

从职位设置看Scrum

在Scrum中,参与项目的主要有三种角色:

  • Product Owner——主要指项目经理,当然也包括一些利益相关方
  • Scrum Master——项目总管,一般从项目开发人员中选择
  • Developers——项目开发人员

三者中项目经理听取客户的需求和建议并对项目开发提出要求;项目总管一方面与项目经理就任务增加与否或需求变更与否进行协调,另一方面在开发组内为项目开发成员设置目标,保证项目推进;而项目开发人员负责按质按量地完成自己的任务并进行周期性的总结。

这样的职位设置避免了项目经理频繁且随意的更改需求和增加任务。项目组可以按照自身的实际情况推进项目,而项目总管的存在又保证了项目的稳步进行。

从流程看Scrum

Scrum的整个流程如下图所示:

image-20220221231931522

下面对图中涉及的概念进行逐一解释:

  • Sprint

    Sprint是Scrum中的一次迭代周期。正如现代神经网络中常常用iteration来表示一次训练,Scrum使用Sprint表示一次的工作流程。一般来说一个Sprint持续1-4周。

  • Product Backlog

    Product Backlog是待办清单或者说任务清单。清单中带有任务的优先级,列出了改进产品所需要的内容。它是Scrum团队承担工作的唯一来源。

  • Sprint Planning

    顾名思义,Sprint Planning就是迭代的,可改进的工作计划。

  • Sprint Backlog

    Sprint Backlog是Product Backlog经由Sprint Planning指导下形成的开发清单,相较Product Backlog其更加具体。

  • Daily Scrum

    Daily Scrum通常是一场15分钟左右的旨在分享工作进度和解决工作障碍的简短会议。

  • Increment

    Increment的中文解释是增量。可以这么说,增量是实现产品目标的基石。每个Increment都是之前所有Increments的补充,并经过彻底验证,既作为项目已完成的一部分又作为项目未完成部分的经验和指导。

  • Sprint Review

    在Sprint Review中Scrum团队向主要利益相关方展示工作成果和讨论产品目标的进展情况以确定未来的调整方向。

  • Sprint Retrospective

    顾名思义,Sprint Retrospective是一种周期性的回顾,目的是改进工作计划以提高质量和效率。

了解完具体的概念后其实整个流程也就不难理解了:

Product Owner(项目经理及利益相关方)通过任务清单对项目组提出要求,项目组根据工作计划形成开发清单,每天通过简短的会议分享工作进度和解决工作障碍。1-4周后验收工作进度,将完成的工作作为增量并通过向Product Owner展示工作成果来确保项目透明性。之后通过回顾会议调整工作计划,以此为一个周期不断循环。

Scrum的价值

初步了解了Scrum,不难得出:相较传统的管理模式,Scrum在调动成员积极性、透明性和质量等方面表现得确实非常优秀。Scrum社区从五个方面阐述了Scrum的价值:

屏幕截图 2022-02-22 003917

它们分别是:

  1. 迎难而上
  2. 统一目标
  3. 达成共识
  4. 相互尊重
  5. 开放态度

从Scrum理论重新认识Scrum

也许你会认为Scrum过于简单了,但如果你了解Scrum理论你就会知道:

Scrum是一种机制、一种框架而非解决策略。Scrum框架故意不完整,只定义了实现Scrum理论所需的部分,但这也恰恰保持了其灵活性。Scrum是建立在使用它的人的集体智慧之上的。Scrum的规则不是为人们提供详细的说明,而是指导他们的关系和交互。

同时,Scrum用启发式的方法取代了程序化的算法方法,它尊重人和自组织,以处理不可预测性和解决复杂问题。可以这么说,Scrum实现了经验主义的科学方法。

Scrum的风险管理

Scrum作为一个简洁的轻型开发框架并没有明确提出风险管理流程,其风险管理往往是以一种隐性的方式进行的,甚至说Scrum为了保持其轻量的特性特意回避了风险管理——一个对项目管理来说一个至关重要的部分。最典型的就是缺少对风险管理的量化指标。Risk management analysis in Scrum software projects就指出在实际应用中Scrum的风险管理实际和Scrum是分离的,在Scrum中集成传统实践来确保有效的风险管理是十分重要的。

笔者认为Scrum的风险管理很大程度上是依赖每次迭代周期后的review所带来的透明性,虽说Scrum不至于一点风险管理都没有(例如燃尽图(burndown chart)其实就是在跟踪整个项目过程,本身隐含了风险管理的目的),但缺少量化的具体的风险管理也许也是限制Scrum开发规模的主要原因。

燃尽图(Burndown Chart)

在此既然提到了Scrum中为数不多的(当然也是做的非常不错的)图形化管理细节——燃尽图,那么这里就仔细说说何为燃尽图。

首先,燃尽图作为一种Scrum框架追踪项目进度的可视化图表来说非常简单也非常容易理解,但这并不代表其存在就是没有必要的。一图胜千言的例子无时无刻不存在于如今信息化社会之中,用文字、语言沟通来追踪项目进度远不如图表来的直观。也正是因为燃尽图的简洁,Scrum团队可以每天使用它作为工作进度的度量标准。

一般来说,燃尽图应该包括:

  • X轴——时间
  • Y轴——剩余工作量
  • 虚线——计划工作曲线
  • 实线——实际工作曲线

一个典型的燃尽图:

屏幕截图 2022-02-22 161350 (2)

请注意,Y轴可以是不同的计量单位(比如上图就是以一个用户故事[一项任务]为一个单位,还可以以剩余工作需要的时间[例如小时]作为单位)而不同单位也有其相应的优缺点(以上图用户故事为单位举例,用户故事可以直观的看出剩余任务的数量,但是不同任务的难度可能是不一样的,有可能导致对工作进度的错误估计)

除此之外,如何认识燃尽图也是至关重要的。经验丰富的Scrum团队通过燃尽图往往一眼就能看出项目进度如何,下面举几个例子。更多的燃尽图类型可以参考Understanding the Scrum Burndown Chart (methodsandtools.com)

还不错的燃尽图:

image-20220222170511201 image-20220222170645576

糟糕的燃尽图:

image-20220222170812881

Scrum在实践中的改进方向

正如前文所说,Scrum是一种机制、一种框架而非解决策略。Scrum框架故意不完整,只定义了实现Scrum理论所需的部分,但这也恰恰保持了其灵活性。具体到实践中Scrum是如何被改良以适应多变的应用场景的呢?Why and how is Scrum being adapted in practice: A systematic review一文分析了925个实践样本从九个方面阐述了Scrum的改进方向:

  1. Performance——更高的项目要求
  2. Context——灵活性
  3. Architecting——调整架构设计
  4. Juxtaposition——并置(与其他框架组合[例如与CMMI组合])
  5. Distributed Development——分布式开发
  6. Managerial Extensions——管理扩展(在项目中加入公司总体战略,集成协调管理工具)
  7. User Experience——用户参与
  8. Size Scaling——规模扩展
  9. Security——安全性(风险管理)

笔者认为,若要探寻下一个或下一代的框架,经由实践改进的Scrum或许会给我们一些启发。

Reference

  • Scrum Guide | Scrum Guides
  • Risk management analysis in Scrum software projects - Tavares - 2019 - International Transactions in Operational Research - Wiley Online Library
  • Understanding the Scrum Burndown Chart (methodsandtools.com)
  • Why and how is Scrum being adapted in practice: A systematic review - ScienceDirect

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

相关文章

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:提供了不少与操作系统…

吐血总结!100个Python面试问题集锦(下)

来源 | Python语音识别 作者 | 深度学习与python(ID:PythonDC) Python是目前编程领域最受欢迎的语言。在本文中,我将总结Python面试中最常见的100个问题。每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出&#…

吐血总结!100个Python面试问题集锦

Python是目前编程领域最受欢迎的语言。在本文中,我将总结Python面试中最常见的100个问题。每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出,找到一份高薪工作。这100道面试题涉及Python基础知识、Python编程、数据分析以及Py…

这就是2022年最常用的Python面试题答案吗?也太详细了吧

Python新手在谋求一份Python编程工作前,必须熟知Python的基础知识。编程网站DataFlair的技术团队分享了一份2022年最常见Python面试题合集,既有基本的Python面试题,也有高阶版试题来指导你准备面试,试题均附有答案。面试题内容包括…

最常见的Python面试题答案(上篇)

Python新手在谋求一份Python编程工作前,必须熟知Python的基础知识。编程网站DataFlair的技术团队分享了一份最常见Python面试题合集,既有基本的Python面试题,也有高阶版试题来指导你准备面试,试题均附有答案。面试题内容包括编码、…

Python面试题大全总结

一、前言 有很多时候,你可能python使用的很熟练,但在面试的时候可能就过不了, 毕竟常说的面试造火箭,入职拧螺丝的情况是真实存在的。所以背八股文也是极其重要的! 这里分享一些常见和高频的面试题(300道&…

吐血总结!100个Python面试问题集锦(上)

作者 | Python语音识别 来源 | 深度学习与python(ID:PythonDC) Python是目前编程领域最受欢迎的语言。在本文中,我将总结Python面试中最常见的100个问题。每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出&#…

Python面试必看!53个经典面试题详解

本文列出53个Python面试问题,并且提供了答案,供数科学家和软件工程师们参考。 不久前,我作为“数据科学家”开始担任一个新的角色,实际上就是一位“Python工程师”。 如果我在面试前提前了解一下Python的线程生命周期&#xff0…

2022年python面试题大全(50题附答案)

前言: 哈喽,哈喽,都说即将到来的金三银四是一年中找工作的高峰期。在这里小编先祝大家都能找到自己心仪的工作! 正文: 这里呢小编整理了一份Python面试题,还有一些招聘信息,今天就分享给大家&…

2022年面试必问的Python面试题答案

Python新手在谋求一份Python编程工作前,必须熟知Python的基础知识。这里我为大家准备了一份2022年最常见Python面试题合集,既有基本的Python面试题,也有高阶版试题来指导你准备面试,试题均附有答案。面试题内容包括编码、数据结构…

Python常考面试题汇总(附答案)(持续更新)

写在前面 本文面向中高级Python开发,太基本的题目不收录。本文只涉及Python相关的面试题,关于网络、MySQL、算法等其他面试必考题会另外开专题整理。不是单纯的提供答案,抵制八股文!! 更希望通过代码演示,…

吐血总结!50道Python面试题集锦(附答案)

Python是目前编程领域最受欢迎的语言。在本文中,我将总结Python面试中最常见的50个问题。每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出,找到一份高薪工作。这些面试题涉及Python基础知识、Python编程、数据分析以及Python…

【Python】面试官喜欢问的100个面试问题

前言 毕业季又到了,相信有很多的小伙伴都在找工作。如果你在寻找python工作,那你的面试可能会涉及Python相关的问题。 通过对网络资料的收集整理,本文列出了100道python的面试题以及答案,你可以根据需求阅读测试。 python基础 …

Python基础---面试题汇总

前言 本文只涉及Python相关的面试题,面向中高级Python开发,太基本的题目不收录。 更希望通过代码演示,原理探究等来深入讲解某一知识点,做到融会贯通。 另外部分演示代码有兴趣的可以找我拿。 语言基础篇 Python的基本数据类…

python面试题汇总(史上最全)

python面试题 ✅作者简介:大家好我是编程ID 📃个人主页:编程ID的csdn博客 系列专栏:python 💬推荐一款模拟面试、刷题神器👉点击跳转进入网站 对于机器学习算法工程师而言,Python是不可或缺的语…