对敏捷开发Scrum稍有了解的都知道Scrum来源于橄榄球,但你知道为何要以这项球类运动的术语来命名这个敏捷开发方法论吗?

Scrum与橄榄球对应关系

Scrum 一词源于英式橄榄球运动,是指双方球员对阵争球。双方前锋肩靠肩站成一横排,面对面躬身,肩膀互相抵在一起,形成一个通道。犯规队的球员低手将球抛入通道,此时通道两边的球员们互相抗挤,争取踢球给本方前锋。

比赛分为两支队伍,每个队伍上场的球员为11名。整个队伍中的球员分为进攻、防守和特别三种职能,三者各有优势又互相配合。进攻队员身手敏捷,凭借速度变化和身形穿透对方防线;防守队员身形强壮,阻挡对方球员的进攻;特别队员较为灵活,进可攻退可守,随时可充当前面二者的替补。

与橄榄球比赛对应,在Scrum组织中没有传统组织所强调的岗位、上下级关系、汇报等元素,每个人只有“一起赢得比赛”的目标,而且每个人的工作会有较大的重合覆盖度,角色可因势而变,提高效率的同时,有效避免传统组织可能存在的推诿和不作为。

英式橄榄球比赛中,球是被禁止向前传的:规则并不限制球员将球往前踢,但当踢球员踢球时,他的队友必须在球的后方。那么为了让球有方向地运动起来,球员必须将球往后传。如此显而易见的矛盾凸显了团队合作的重要性,同时创造了绝佳的纪律,因为这不是光靠一名球员就能成功胜利的比赛。球员们必须团队合作,才能带球向前冲过敌队的阵线,赢得最后的胜利。

在Scrum的工作方式下,团队化繁为简,只有三个角色,分别是产品负责人(PO)、Scrum
Master和开发团队。Scrum中的产品负责人,就像橄榄球队的四分卫,对产品的方向负责,对产品的Why和What负责。Scrum
Master,是一个团队的教练,关注人和人的互动质量,并减少外部干扰对团队工作影响。Scrum中的团队成员就是一支橄榄球队,大家共享时空、闭环决策。

此外,橄榄球赛还有一些特殊规则:与美式橄榄球不同,英式橄榄球无需佩戴护具,这使得比赛随时可以开展并更容易推广普及;比赛时间较短,上下场各7分钟;对不持球的球员不可以冲撞和阻挡;有意外或所谓的暴行时,裁判会判犯规,中断比赛来进行Scrum。

读到这里是不是若有所思?没错,Scrum开发模式并不只是简单地借用了英式橄榄球的术语,许多精神也与之一脉相承,二者的许多元素都可一一对应。

Scrum“出道”历程

Scrum的乘风破浪开发产品与橄榄球披荆斩棘赢得比赛有着一脉相承的精神与灵魂,橄榄球是深受全世界球员喜爱的运动,那么Scrum是如何借势乘风破浪“C位出道”成为目前软件开发主流模式的呢?

1986年,竹内弘高和野中郁次郎在《哈佛商业评论》上发表《新新产品开发游戏》的文章,首次提出将Scrum应用于产品开发,文章指出传统的接力式开发模式已不能满足日益激烈的市场竞争,开发模式需转向团队整体前进的橄榄球式。
1993年,进入Easel公司后,Scrum的创始人Jeff

Sutherland借鉴日本精益理念和《新新产品开发游戏》中的知识管理策略,在效率底下的部门中使用了新方法及工具,此时的实践就成了之后系统性Scrum中的各种元素。Jeff

Sutherland拥有空军飞行员经历带来的观察、导向、决定、行动四大要素,攻读生物统计学博士学位时又吸收了生物学生物组织系统和进化论适者生存的理念,在实践中取其精华,形成Scrum的定义。
1995年,Jeff Sutherland和另一位创始人Ken Schwaber规范化Scrum框架,并在OOPSLA 95上公开发布。
2001年,敏捷宣言及原则发布、敏捷联盟成立,Scrum是其中一种敏捷方法。Ken Schwaber和Mike Beedle推出第一本Scrum书籍《Scrum敏捷软件开发》。
2002年,Ken Schwaber 和Mike Cohn共同创办了Scrum联盟。


至今,根据《2020敏捷状态调查报告》,总共有76%的组织采用Scrum,Scrum已成为当之无愧的“C位”开发模式。

【科普】Scrum——从橄榄球争球到敏捷开发的更多相关文章

  1. 【转】来自《轻松scrum之旅》的敏捷开发总结

    敏捷开发的核心价值观是,软件开发最重要的是给用户提供有价值的.可以工作的软件.如何保证提供有价值的软件,是通过反馈机制来完成的.这一点,我们体会很深.自从采用敏捷开发以后,我们比以前更有意识地希望得到 ...

  2. 敏捷开发之道(四)Scrum概述

    上次的博文敏捷开发之道(二)极限编程XP和敏捷开发之道(三)极限编程XP续中,我们介绍了一下敏捷开发中的XP开发方法,今天咱们来了解另一个比较流行的敏捷开发方法--Scrum. 1.Scrum简介 S ...

  3. [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum

    [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum 1,Scrum概述 上篇中提到敏捷开发有两种主流的方法,一个是XP,另一个是Scrum,本篇简要介绍Scrum方法.Scrum是 ...

  4. 敏捷开发方法-Scrum

    为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中的各个环节,主要目的有两个,一个是进行知识的总结,另外一个是觉得网上很多学习资 ...

  5. 敏捷开发 与 Scrum

    敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视.可集成和可运行使用的特征.换言之,就是把 ...

  6. 敏捷开发(2)-Scrum

    什么是SCRUM Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作:把一个开发流程的名字取名为Scrum,我想你一定能想象出你的开发团队在开发一个项目时,大家像打橄榄球一样迅速.富有 ...

  7. 敏捷开发与Scrum

    敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视.可集成和可运行使用的特征.换言之,就是把 ...

  8. 敏捷开发流程之Scrum:3个角色、5个会议、12原则

    本文主要从Scrum的定义和目的.敏捷宣言.Scrum中的人员角色.Scrum开发流程.敏捷的12原则等几方面帮助大家理解Scrum敏捷开发的全过程. 一.Scrum的定义和目的 Scrum是一个用于 ...

  9. 小谈Scrum敏捷开发流程

    一晃眼,有两年没有写博客了,回顾前两年,各种奔波,各种忙碌,也有不少的收获.从今天开始,我要把这些收获都分享在这里. 其实这两年,对我影响最大的是开发流程.总所周知,一个好的开发流程,对于项目的进行, ...

随机推荐

  1. Java实现 蓝桥杯 算法训练 1的个数

    试题 算法训练 1的个数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输入正整数n,判断从1到n之中,数字1一共要出现几次.例如1123这个数,则出现了两次1.例如15,那么从1 ...

  2. 关于C#委托三种调用的分享

    一.同步调用 1.同步调用会按照代码顺序来执行2.同步调用会阻塞线程,如果是要调用一项繁重的工作(如大量IO操作),可能会让程序停顿很长时间,造成糟糕的用户体验,这时候异步调用就很有必要了. 举个栗子 ...

  3. java正则匹配 指定内容以外的 内容

    今天,遇到一个需要 匹配出 指定内容以外的 内容的需求. 乍一看,需求貌视很简单啊,直接上 非贪婪模式的 双向零宽断言(有的资料上也叫 预搜索.预查.环视lookaround): 比如,我要匹配 串内 ...

  4. 下拉式菜单中的内容堆叠(ul型)

    今天使用ul创建下拉式菜单,菜单中的内容堆在了一起. 这是我的html代码 <!DOCTYPE html> <html lang="en"> <hea ...

  5. web开发网络请求到数据的整合办法

    开发中向服务器请求到的数据是特别复杂的,需要从中抽离出需要展示的数据进行展示个和交互. 思路: 先将请求到的复杂数据传递到一个类A中,从类A里抽离出需要的数据.需要展示数据的地方,面向类A开发,类A关 ...

  6. Rust异步之Future

    对异步的学习,我们先从Future开始,学习异步的实现原理.等理解了异步是怎么实现的后,再学习Rust异步编程涉及的2个库(futures.tokio)的时候就容易理解多了. Future rust中 ...

  7. Jmeter(八) - 从入门到精通 - JMeter配置元件(详解教程)

    1.简介 JMeter配置元件可以用来初始化默认值和变量,读取文件数据,设置公共请求参数,赋予变量值等,以便后续采样器使用.将在其作用域的初始化阶段处理.配置元件(Config Element)提供对 ...

  8. 【leetCode】485. 最大连续1的个数

    给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意: 输入的数组只包含 ...

  9. 线程安全与synchronized

    线程安全性与synchronized 线程安全:多线程访问某个类时,这个类始终都能表现出正确的行为,这个类就是线程安全的. 简单的说,就是多线程执行的结果与单线程执行的结果始终一致,不会因为多线程的执 ...

  10. @codeforces - 594E@ Cutting the Line

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个字符串 s 与正整数 k.现在你需要进行恰好一次操作: ...